主机处于内网中时,因为没有公网IP,所以对公网是不可见的,可以利用公网服务器进行代理连接内网主机
具体过程
- 现在有内网主机A,然后还有一个有公网IP的主机B,
- 在内网服务器A上输入一下命令:
ssh -NfR 8899:localhost:22 root@B地址 -p 22
# -f 后台执行ssh指令
# -C 允许压缩数据
# -N 不执行远程指令
# -R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
# -L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
# -p 指定远程主机的端口
- 然后在B上执行一下命令,可以看到成功监听8899端口:
ss -ant |grep 8899
- 然后在公网服务器B上执行,发现能够登录内网服务器:
ssh root@localhost -p 8899
autossh使用
然而直接使用ssh是不稳定的,可以通过autossh建立一条稳定的连接
- 执行一下命令,其中-M表示监听ssh连接是否稳定的监听端口:
autossh -M 8888 -NfR 8899:localhost:22 root@B地址 -p 22