文档章节

通过SSH隧道访问局域网机器

suit
 suit
发布于 2015/06/27 15:24
字数 578
阅读 171
收藏 2

背景:

如果局域网有一台机器A,这台机器只能访问外网,但外网不能反向访问这台机器。同时在外网有一台有公网IP的机器B(阿里云,或者腾讯云等VPS),这样就可以通过简单的方法让外网的机器可以访问局域网的机器。我都是基于linux下的机器,原则上如果是windows,将个putty或者crt也能实现。

方案:

  1. 在局域网的机器上利用ssh -R的命令建立一条反向隧道。
    nohup ssh -t -t -R 2266:127.0.0.1:22 user@外网机器B的IP >nohup.out & 

意思是ssh上外网机器B,然后在机器B上打开监听端口2266,访问2266端口就是通过隧道访问局域网机器B的22端口。 由于采用的是nohup运行,设置好ssh免密码登陆,就不用每次都输入密码了。 2. 在外网机器B上,只能执行以下命令,就能反向ssh到局域网B的机器了。

    ssh user@127.0.0.1 -p 2266
  1. 设置外网机器B的SSH心跳 这里存在一个问题,如果不设置SSH发送心跳,这条隧道很快就会超时,断开。所以在外网机器B上设置:经过这样的测试,发现一天了这个隧道还能用。
    # 打开
    sudo vim /etc/ssh/sshd_config
    # 添加
    ClientAliveInterval 30
    ClientAliveCountMax 6
  1. 其他解决方法: 其他这样的设置已能解决我的需求了,我可以在家里上公网的机器然后通过这个隧道ssh回公司内网的机器,就能再跳去其他机器了。其实还有几种其他的方案: 4.1 云风也曾经介绍过类似的方案,参考这里,他也是采用ssh -R,但他多搞了几步,安装了vtund,让内网的机器成为路由,能更进一步自由地访问内网网络。 4.2 用N2N的VPN软件,建立一个VPN网络。 4.3 自己写个UPD的NAT打洞,穿越进来。

参考文档:

© 著作权归作者所有

suit
粉丝 4
博文 24
码字总数 13208
作品 0
广州
程序员
私信 提问
SSH隧道访问内网服务

适用场景描述:我有一台外网服务器a,1台内网服务器b,我想让别人在外网访问b上的网站。b跟a不在同一个局域网。b没有公网ip地址a有 解决方案1:通过花生壳实现 我的解决方案: 两台机器都是l...

逐浪人
2015/12/26
499
0
SSH隧道技术简介:端口转发&SOCKS代理

1、本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影)。 公司为了防止我们用XX软件封锁...

大数据之路
2012/12/07
0
2
调试利器-SSH隧道

在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到源码修改后的运行结果。但当涉及到需要调用...

吴浩麟
2017/11/03
0
0
调试利器-SSH隧道

在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到源码修改后的运行结果。但当涉及到需要调用...

浩麟
2017/11/03
0
0
调试利器:SSH隧道

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文作者:ivweb 吴浩麟 原文出处:IVWEB社区 未经同意,禁止转载 在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分...

腾讯云社区
2017/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
5
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
5
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
8
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部