前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实战技巧】利用ssh将内网端口反向连接穿透到外网vps

【实战技巧】利用ssh将内网端口反向连接穿透到外网vps

作者头像
用户1631416
发布2020-02-26 13:00:06
5.3K0
发布2020-02-26 13:00:06
举报
文章被收录于专栏:玄魂工作室

内网机器:192.168.1.2 外网vps地址;122.114.250.153

内网机器192.168.1.2执行:

代码语言:javascript
复制
ssh -fCNR 7280:127.0.0.1:8882   root@122.114.250.153

将内网机器的127.0.0.1的8882端口,通过主动连接外网的122.114.250.153的ssh,映射到外网vps的122.114.250.153的7280端口,实现网络穿透.这样访问122.114.250.153的7280就可以相当于直接访问内网的8882端口了.

注意ssh只能够将内网的端口转发到外网,不能够动态的自动内网代理.如果你需要通过互联网代理直接穿透到内网,一般来说有两个方法:

如果你可以在内网的机器上创建一个透明代理端口且可以内网机器使用ssh:

在内网机器可以建立一个透明代理(如Tinyproxy)8882端口,然后再将这个8882端口映射到外网vps的7280.本地浏览器直接将代理服务器设置为122.114.250.153:7280就可以访问到内网的资源了.

如果你不能创建一个代理端口,只可以使用ssh,且知道内网主机的ss用户密码(后面使用的都是root)

先将内网的ssh映射到外网

代码语言:javascript
复制
ssh -fCNR 7280:127.0.0.1:22   root@122.114.250.153

通过ssh主动反向链接外网并将ssh端口映射到122.114.250.153,

这样你链接122.114.250.153的7280就相当于链接到了内网的22(ssh)

客户端主动链接vps的7280(内网的ssh)来创建代理隧道

执行:

代码语言:javascript
复制
ssh -qTfnN -D 7070 root@122.114.250.153  -p 1080

这时候在浏览器中设置代理122.114.250.153:1080.就可以直接输入地址访问内网中的资源了

注意ssh绑定地址到0.0.0.0

vps一般情况下ssh默认转发只会映射到本地的127.0.0.1的端口.如果你需要映射到0.0.0.0让外网访问.修改配置 /etc/ssh/sshd_config中设置GatewayPorts为yes,然后重启ssh服务,再次进行转发即可

关于ssh超时操作断开后代理失效的问题

因为ssh时间未操作会自动断开,所以需要搭建稳定的ssh工具,autossh就是用来解决这个问题的。

代码语言:javascript
复制
apt-get install autossh

在内网客户端机器执行:

代码语言:javascript
复制
autossh -M 5555 -NR  7280:127.0.0.1:8882  root@122.114.250.153
vps端口:内网监听地址:tinproxy端口 远程vps用户名:vpsIP
//输入密码后会站住当前终端

注意-M 5555是指定本地5555来链接到外网的ssh 如果你需要运行多条通道需要指定别的端口,如果占用则autissh无法成功建立连接!

和外网多台主机建立多条通道

例如本机使用autossh和server1和server2建立通道

代码语言:javascript
复制
autossh -M 5555 -NR  7280:127.0.0.1:8882  root@server2

autossh -M 4444 -NR  7280:127.0.0.1:8882  root@server1

这时候你来到外网的vps上面就可以看到,vps监听了7280端口

IP地址切换导致断网

注意,如果和外网通信的内网机器的ip地址改变,会导致整条通道断开。这时候autossh还在后台运行,重新链接需要重新进行建立一条通道,需要在内网机器上杀死autossh进程,然后外网杀掉7280端口。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果你可以在内网的机器上创建一个透明代理端口且可以内网机器使用ssh:
  • 如果你不能创建一个代理端口,只可以使用ssh,且知道内网主机的ss用户密码(后面使用的都是root)
    • 先将内网的ssh映射到外网
      • 客户端主动链接vps的7280(内网的ssh)来创建代理隧道
      • 注意ssh绑定地址到0.0.0.0
      • 关于ssh超时操作断开后代理失效的问题
        • 和外网多台主机建立多条通道
        • IP地址切换导致断网
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档