全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用反向ssh从外网访问内网主机的方法详解

前言

最近遇到一个问题,就是过几天我需要离开学校,而且到时候仍然想登陆校园网里的一台服务器进行工作;但是我又没有校园网网关的操作权限,不能做端口映射,也不能搞到校园网内部主机的外网ip,而且学校自己提供的vpn又根本没法用。研究了半天,总算找到了一个比较不错的利用反向ssh(reverse ssh tunnel)进行内网登陆的解决方案。

工作原理

之所以很多转发的方法无法应用在这里,就是因为内网主机对外网其实是不可见的,也就是说外部主机不能用一般的方法访问到内部主机。那么我们就想了,能不能用内网主机找外网主机,找到之后再把这条内网主机登陆外网的信道转换成外网主机登陆内网的信道呢?辛运的是,这个方法的确是可行的,这也就是所谓反向ssh最通俗的理解,这就像寄信一样,”虽然我不知道你的地址,但是你知道我的地址,那么你就先给我写封信,告诉我你的地址,然后我不就可以回信给你了么?“。

操作步骤

由于我们自己使用的电脑未必有外网ip,因此我们需要一个有固定外网ip的服务器(随便搞个腾讯云阿里云的小机子就行),然后用这台服务器与内网的机子进行通信,我们到时候要先登陆自己的服务器,然后再利用这个服务器去访问内网的主机。

1、准备好有固定ip的服务器A,以及待访问的内网机器B。两者都开着sshd服务,端口号默认都是22。顺便做好ssh免密码登陆。

2、内网主机B主动连接服务器A,执行以下命令:

$ ssh -NfR 1111:localhost:22 username@servername -p 22

这条命令的意思是在后台执行(-f),不实际连接而是做port forwarding(-N),做反向ssh(-R),将远程服务器的1111端口映射成连接本机(B)与该服务器的反向ssh的端口。

附:这里有必要加强一下记忆,这个端口号一不小心就容易搞混。。man文档中的参数命令是这样的:

-R [bind_address:]port:host:hostport

bind_address以及其后面的port是指远程主机的ip以及端口,host以及其后的hostport是指本机的ip和端口。由于ssh命令本身需要远程主机的ip(上上条命令中的servername),因此这个bind_address原则上是可以省略的。

执行完这条命令,我们可以在服务器A上看到他的1111端口已经开始监听:

$ ss -ant |grep 1111
LISTEN  0  128    127.0.0.1:1111      *:*

3、在上面的操作中,这个1111端口就已经映射成了内网主机B的22端口了,现在我们只要ssh到自己的这个端口就行了。在服务器A中执行:

$ ssh username@localhost -p1111

这样就成功的登陆了内网的主机了。

功能优化

上面的做法其实有一个问题,就是反向ssh可能会不稳定,主机B对服务器A的端口映射可能会断掉,那么这时候就需要主机B重新链接,而显然远在外地的我无法登陆B。。。这其实有一个非常简单的解决方案,就是用autossh替代步骤2中的ssh:

$ autossh -M 2222 -NfR 1111:localhost:22 username@servername -p 22

后面的参数跟ssh都一样,只是多了一个-M参数,这个参数的意思就是用本机的2222端口来监听ssh,每当他断了就重新把他连起来。。。不过man文档中也说了,这个端口又叫echo port,他其实是有一对端口的形式出现,第二个端口就是这个端口号加一。因此我们要保证这个端口号和这个端口号加一的端口号不被占用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# 外网ssh访问内网linux  # ssh外网访问内网  # ssh反向连接内网主机  # SSH框架实现表单上传图片实例代码  # SSH在登录服务器后如何显示基础信息  # JSP 开发SSH整合异常解决办法  # SSH 框架简介  # 内网  # 端口号  # 这条  # 自己的  # 本机  # 我不  # 是指  # 信道  # 到时候  # 端口映射  # 有一个  # 的是  # 都是  # 文档  # 是在  # 在这里  # 成了  # 告诉我  # 是有  # 你就 


相关文章: 宝塔Windows建站如何避免显示默认IIS页面?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何通过二级域名建站提升品牌影响力?  Android使用GridView实现日历的简单功能  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  中山网站制作网页,中山新生登记系统登记流程?  定制建站如何定义?其核心优势是什么?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  公司网站制作价格怎么算,公司办个官网需要多少钱?  高端云建站费用究竟需要多少预算?  建站之星CMS五站合一模板配置与SEO优化指南  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何用美橙互联一键搭建多站合一网站?  相册网站制作软件,图片上的网址怎么复制?  网站代码制作软件有哪些,如何生成自己网站的代码?  C#如何使用XPathNavigator高效查询XML  建站10G流量真的够用吗?如何应对访问高峰?  Java解压缩zip - 解压缩多个文件或文件夹实例  建站主机类型有哪些?如何正确选型  建站主机选择指南:服务器配置与SEO优化实战技巧  如何用虚拟主机快速搭建网站?详细步骤解析  香港服务器选型指南:免备案配置与高效建站方案解析  如何在企业微信快速生成手机电脑官网?  建站主机空间推荐 高性价比配置与快速部署方案解析  IOS倒计时设置UIButton标题title的抖动问题  网站制作企业,网站的banner和导航栏是指什么?  已有域名和空间如何搭建网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  C++时间戳转换成日期时间的步骤和示例代码  如何用已有域名快速搭建网站?  建站主机CVM配置优化、SEO策略与性能提升指南  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  建设网站制作价格,怎样建立自己的公司网站?  简单实现Android文件上传  如何快速搭建高效服务器建站系统?  如何确保FTP站点访问权限与数据传输安全?  太平洋网站制作公司,网络用语太平洋是什么意思?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  ,制作一个手机app网站要多少钱?  临沂网站制作企业,临沂第三中学官方网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何安全更换建站之星模板并保留数据? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。