原文地址https://linux.cn/article-5975-1.html

# 需要被访问的NAT内的服务器:homeserver_user@homeserver

# 中继服务器:relayserver_user@relayserver

 

1.根据文章中第一步:在Linux上设置了反向ssh隧道

homeserver_user@homeserver~$ ssh -fN -R 10022:localhost:22 relayserver_user@1.1.1.1
# 1.1.1.1 == (中继服务器公网ip)

 

此时可以从任何其它计算机(客户端计算机)登录到中继服务器,然后再按照下面的方法访问家庭服务器。

relayserver_user@relayserver:~$ ssh -p 10022 homeserver_user@localhost
# homeserver_user == (需要被访问的NAT内的服务器用户名)
# 10022 == (中继服务器上随便一个未占用的端口)

 

 

2.在进行第二步:直接连接到网络地址变换后的服务器

中的重新初始化一个反向ssh隧道时

homeserver_user@homeserver:~$ ssh -fN -R 1.1.1.1:10022:localhost:22 relayserver_user@1.1.1.1
# relayserver_user == (中继服务器用户名)
# 1.1.1.1 == (中继服务器公网ip)

 

出现Warning: remote port forwarding failed for listen port 10022 的错误

在kill了之前设置的反向ssh隧道,即中继服务器上的10022端口的进程后,依然存在此错误

 

最后发现将输入改为

homeserver_user@homeserver:~$ ssh -fN -R 172.16.185.243:10022:localhost:22 relayserver_user@1.1.1.1 
# 1.1.1.1 == (中继服务器公网ip)
# 172.16.185.243 == (中继服务器内网ip)

成功实现中继服务器反向ssh转发

posted on 2020-01-15 18:25  zmbreathing  阅读(360)  评论(0编辑  收藏  举报