本笔记记录了如何通过 SSH 隧道(SSH Tunneling)安全地将远程 VPS 的服务端口映射到 Mac 本地。


1. 核心操作命令

使用本地 8081 端口映射远程 81 端口。

# 执行后需保持终端窗口开启
ssh -i /Users/dyplove/.ssh/aliyun_vps -L 8081:localhost:81 root@47.xx.xx.74

访问地址:浏览器输入 http://localhost:8081

私钥路径/Users/dyplove/.ssh/aliyun_vps

远程 IP47.xx.xx.74

2. 常见报错:Host Identification Changed

现象:提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因:VPS 重装了系统或更换了 SSH 密钥,导致本地指纹不匹配。

解决步骤

  1. 清理旧指纹

    Bash

    ssh-keygen -R 47.xx.xx.74
    
  2. 重新连接

    再次执行第 1 节的 SSH 命令,并在提示 Are you sure... (yes/no) 时输入 yes


3. 进阶:一键 Shell 脚本

为了避免每次手动输入长命令,可将以下代码保存为 vps81.sh

Bash

#!/bin/bash
# 自动建立 SSH 隧道脚本

KEY="/Users/dyplove/.ssh/aliyun_vps"
IP="47.xx.xx.74"

echo "正在启动 SSH 隧道..."
# -f: 后台运行, -N: 不执行命令只转发
ssh -f -N -i $KEY -L 8081:localhost:81 root@$IP

if [ $? -eq 0 ]; then
    echo "✅ 成功!请访问 http://localhost:8081"
else
    echo "❌ 失败,请检查网络或密钥权限"
fi

4. 参数速查表

参数 功能描述 备注
-i Identity File 指定私钥文件路径
-L Local Forwarding 本地端口:目标地址:远程端口
-f Background 连接成功后转入后台运行
-N No Command 不打开远程 Shell,仅用于端口转发