美文网首页
利用ssh隧道搞定内网穿透

利用ssh隧道搞定内网穿透

作者: 倚樓聽風雨 | 来源:发表于2021-01-22 14:47 被阅读0次

实验步骤:

以公网IP:116.51.1.** 为例,公网端口:6060,内网服务端口:8080

1.配置 116.51.1.**  防火墙端口:

firewall-cmd --zone=public --add-port=6060/tcp --permanent

firewall-cmd --reload

2.用的是Xshell 所以需要开启116.51.1.**机器上的 sshd 相关配置:

配置文件:/etc/ssh/sshd_config

需要修改sshd_config配置文件的配置项,增加以下两项配置:

GatewayPorts yes

AllowTcpForwarding yes

增加以上两项配置后,需要重启ssh后才可以生效:

重启sshd命令:

service sshd restart

如果不修改,转发端口永远绑定到loopback网络接口,配置成功后,只能在 116.51.1.** 机器上用  localhost:6060访问,无法在其他机器上用 116.51.1.**:6060访问

3.win10机器上,打开PowerShell  ,输入以下命令建立隧道:

 ssh -p 22 -qngfNTR  "[::]:6060:localhost:8080" root@116.51.1.**

参数说明:

-p: 是 116.51.1.** 是ssh 端口

-qngfNTR: 建立隧道相关参数,固定的

"[::]:6060:localhost:8080": [::]:6060 表示把6060端口绑定到所有的网络接口上;localhost:8060表示需要被转发的内网服务器端口,本例中是localhost:8080

6060:公网IP的端口,8080:本机(内网主机)的要映射到公网的端口

root@116.51.1.** :公网机器 用户名 IP 。

执行以上命令后,输入yes回车

执行上面的的命令后需要输入公网机器(116.51.1.**)的密码,

输入正确的密码即可。

4.大功告成:

在任意一台机器上就可以通过

http://116.51.1.**:6060/访问 win10机器上的web服务了。

实验过程中踩过的坑:

1.win10  PowerShell中 关闭 ssh 连接窗口后,ssh 隧道没有关闭的问题:

查看已经建立的ssh连接:

Get-Process -Name ssh

杀死ssh连接:

Get-Process -Name ssh | Stop-Process

其他ssh客户端需要注意类似的问题,否则多次执行 ssh -p 22 -qngfNTR  "[::]:6060:localhost:8080" root@116.51.1.** 会建立多个隧道

2.请注意 绑定都所有网络接口 "[::]:6060:localhost:8080"  ,[::] 不能少,否则 只会绑定到 loopback  接口。

相关文章

网友评论

      本文标题:利用ssh隧道搞定内网穿透

      本文链接:https://www.haomeiwen.com/subject/qgwszktx.html