本笔记记录了如何通过 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
远程 IP:47.xx.xx.74
2. 常见报错:Host Identification Changed
现象:提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!。
原因:VPS 重装了系统或更换了 SSH 密钥,导致本地指纹不匹配。
解决步骤:
-
清理旧指纹:
Bash
ssh-keygen -R 47.xx.xx.74 -
重新连接:
再次执行第 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,仅用于端口转发 |