通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器

Posted 菜是原罪zm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器相关的知识,希望对你有一定的参考价值。

原文地址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转发

以上是关于通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器的主要内容,如果未能解决你的问题,请参考以下文章

将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是啥?

如何使用反向 SSH 隧道绕过防火墙和 NAT

反向 ssh 隧道不暴露 ec2 上的端口

如何配置系统通过 ssh 反向隧道/代理使用 git?

反向ssh隧道

反向 SSH 隧道监控