1.端口转发

我的本地环境为Win10,假设我想转发的本地端口为9006,服务器数据库地址为10.0.0.11:3306,那么只需要在Win10上打开Windows Powershell,输入以下命令:

1
ssh -fNg -L 9006:10.0.0.11:3306 [email protected]
  • -L:代表端口映射
  • -f:让SSH客户端在后台运行。
  • -N:表示不执行远程命令,只进行端口转发。
  • -g:允许远程主机连接到转发的端口。危险!需要给服务器强密码

例子-将远程端口转发到本地

1
2
3
4
5
6
7
8
9
#危险  远程主机连接到转发的端口 **危险!**需要给服务器强密码 或者使用证书认证
ssh -fNg -L 2022:192.168.64.132:22 [email protected]

#使用zerotier+ssh应该可以去掉-g
ssh -fN -L 2022:192.168.64.132:22 [email protected]

#不要后台运行
ssh -N -gL 2022:192.168.64.132:22 [email protected]

2.保持连接

完成了第一个步骤之后,我们还需要通过设置让SSH保持连接,否则的话长时间不使用该端口,SSH连接就会自动关闭。 ssh保持连接这篇文章中介绍了两种方法,一种是通过修改服务器配置的方法,另一种则是通过修改本地配置的方法,我选择了修改本地配置。

我们需要找到本地Win10的ssh_config配置文件,打开后在最后面新增两行配置:

1
2
TCPKeepAlive yes
ServerAliveInterval 300

前一个参数是说要保持连接,后一个参数表示每300秒发一个数据包到服务器表示“我还活着”。

经过上面两个步骤,所有操作就已经完成了。