概述
使用ssh隧道穿透NAT访问内网主机(超干货)
一、需求
很多公司内部服务器架设在NAT之后,无公网IP,因为在外地出差或者在家里办公时无法访问,所以很多人使用远程桌面等软件进行连接,效率极低。至于ssh用法本文不做详细讲解,请大家自己百度或者google脑补,直接上一个正在使用的实际用例。本例网络结构如下:
因为公司内部无公网ip,所以使用一个阿里云服务器B作为桥梁。其中:
- 1.A可以通过公网ip:36.36.108.8访问B服务器,但B服务器不能访问A服务器。
- 2.工作电脑C能够访问B服务器,但无法访问A服务器。
- 3.要求C能够通过ssh登录A服务器,并通过端口转发访问A上的HTTP应用。
二、配置方案
####1.修改B服务器的sshd设置
#vi /etc/ssh/sshd_config
把GatewayPorts打开(去掉前面的#号注释):
GatewayPorts yes
存盘后退出,并重新启动sshd
#service sshd restart
2.在A主机上设置到B主机的SSH反向连接,映射到B服务器的6766端口。
#autossh -p 22 -M 6777 -NfR '*:6766:127.0.0.1:22' root@36.36.108.8
为保证开机启动,可以把这行命令写入/etc/rc.d/rc.local文件。
说明:使用autossh是为了防止ssh通道超时中断。autossh可以通过如下命令安装:
#yum install autossh -y
3.现在则在B服务器上可以通过6766端口登录到内网A主机上。
#ssh -p 6766 root@36.36.108.8
4.C客户端到A主机的直接访问
在C主机上使用SecureCRT建立一个连接session
保存后点击连接,输入正确口令后登录到A主机上:
至此,对远程NAT后的对A主机的操作包括用文件传输等就可以如本地局域网操作一样方便。
三.更方便的端口转发功能
除了ssh登录,在A上的应用,如SVN、mysql数据库和HTTP服务,通过端口转发,都可以在C上进行访问,以http为例,在刚才建立的那个36.36.108.8-52连接上,点击右键,点击Preperties,点击左侧功能树Port Forwarding,出现如下窗口
点击Add,出现如下窗口:
上面设置的含义为,在已建立的ssh连接上,增加一个ssh隧道,将对A主机的9090端口的http请求映射到C主机(本地)的127.0.0.1的9292端口上,在IE窗口键入:http://127.0.0.1:9090/home?zkPath=/rtrc/static/jdbc
则出现如下画面:
显示了远程A服务器的HTTP服务页面。
注:增加端口转发隧道的连接要一直保持,才能访问A主机的页面。其他如git、svn等的端口转发设置类似。
最后
以上就是辛勤发箍为你收集整理的使用ssh隧道穿透NAT访问内网主机(超干货)使用ssh隧道穿透NAT访问内网主机(超干货)的全部内容,希望文章能够帮你解决使用ssh隧道穿透NAT访问内网主机(超干货)使用ssh隧道穿透NAT访问内网主机(超干货)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复