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

利用ssh隧道搞定内网穿透

作者: 倚樓聽風雨 | 来源:发表于2023-04-13 13:55 被阅读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
    
    sshd 相关配置

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

    service sshd restart
    
    重启sshd命令

    如果不修改,转发端口永远绑定到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/wlnnddtx.html