SSH 反向隧道 内网穿透,AutoSSH自动重连
1. SSH反向隧道
通常家用的宽带没有公网IP,运营商现在都分配的是内网IP。这样,公网上的机器就无法直接访问到内网的机器。
SSH具有建立反向隧道的能力,进行内网穿透,前提是我们有一台有公网IP的机器,假设机器情况如下:
机器 网络 IP 端口
A 公网 114.114.114.114 80
B 内网 192.168.10.1 7777
1.修改公网机器A的SSH配置文件/etc/ssh/sshd_config
GatewayPorts yes
1
这样可以把监听的端口绑定到任意IP 0.0.0.0上,否则只有本机127.0.0.1可以访问。
2.在内网B的机器上执行命令,建立反向隧道
autossh -M 7281 -fCNR 8888:0.0.0.0:80 root@111.230.144.247 -p 22622
参数解释:
- “-M 7281”意思是使用内网主机 A 的 7281 端口监视 SSH 连接状态,连接出问题了会自动重连
- “ -N”意思是不执行远程命令
- “-R”意思是将远程主机(公网主机 B)的某个端口转发到本地指定机器的指定端口
代码解释:
- “8888:0.0.0.0:80”意思是将内网主机 A 的 80 号端口转发至公网主机 B 的 8888 号端口上
- “username@xxx.xxx.xxx.xxx”意思是公网主机 B 的用户名和 IP
- “-p xxxx”意思是公网主机 B 的 SSH 端口,如果是默认的 22 号端口,则可以不输入.
在公网主机是上查看有监听8888端口
[root@kangcw ~]# netstat -antlp |grep LISTEN
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 30979/sshd: root
直接打开浏览器就可以访问啦
参考
https://blog.csdn.net/upshi/article/details/78630285
https://zhuanlan.zhihu.com/p/112227542
https://blog.csdn.net/weixin_40449300/article/details/90306229
来源:oschina
链接:https://my.oschina.net/kcw/blog/4313815