当你需要连接一台子网或防火墙内的且没有做端口映射的SSH服务器,又刚好你的客户端是有公网地址的,你是怎么怎么做的呢?现在我有一个比较不错的办法,就是SSH的TCP转发功能。
SSH 客户端可以将本地机器上的一个端口M与远程主机上的一个端口N映射起来,这样我们在本地机器访问这个端口M就和在远程主机访问端口N一样了。
对了,这里地要想实现我们的反向连接还有一个条件,就是你的本地机器也得安装 SSH 服务器程序。下面我们说一下具体的操作。
子网主机执行
$ ssh -f -N -R 8000:localhost:22 username@remote_ip |
这是是将本地的 22 号端口与远程主机的 8000 号端口(SSH服务)映射起来。
公网主机执行
$ ssh username@localhost -p 8000 |
Over!