安基网 首页 电脑 电脑学堂 查看内容

利用SSH搭建隧道访问公司内网服务

2019-4-29 03:47| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 众所周知,ssh一般用来远程登录服务器,但是其实ssh有几个非常强大的参数可以用来实现隧道代理,有很多应用场景,这里主要说一下其隧道转发应用目前由于ipv4地址枯竭,大部分电脑都是没有公网ip的,于是诞生了NAT技术,也正是因为万恶的NAT技术,不同局域网之间的电脑是无法直接通信的,互联网设计的初 ...

众所周知,ssh一般用来远程登录服务器,但是其实ssh有几个非常强大的参数可以用来实现隧道代理,有很多应用场景,这里主要说一下其隧道转发应用

目前由于ipv4地址枯竭,大部分电脑都是没有公网ip的,于是诞生了NAT技术,也正是因为万恶的NAT技术,不同局域网之间的电脑是无法直接通信的,互联网设计的初意所有设备应该是互通互联的!有人说不是啊,我和别人QQ微信都没问题呢?实际上,我们之间是有腾讯的服务器做了中转,还有可能是使用了p2p,但是p2p涉及到复杂的打洞问题,ipv6的时代马上到来,讲道理应该会好过一点!

ssh

假设有下面的场景:

1.你公司有一台电脑,可以访问外网,但是外部无法访问它

2.你家里有一台电脑,可以访问外网,但是外部无法访问它

3.你还有一台阿里云服务器,能访问外网,也能被外网访问到

你一眼就想到了可以使用阿里云服务器做中转,当然vpn都是这个原理,很多公司都提供了vpn,不过vpn配置麻烦,还不一定有Linux的客户端。。。

下面教你使用2条ssh命令实现vpn代理效果,访问内网服务畅通无阻!

在操作之前,必须先修改中转服务器ssh配置里面的“GatewayPorts yes”,一般默认都是false

在你公司电脑执行

ssh -fNR 443:localhost:22 root@39.97.190.14

简单说明一下这个命令,f是后台运行(不需要的话可以不加),N是不打开终端,因为我们只需要转发,最关键的就是R,表示远程转发

root@39.97.190.14 这个是阿里云中转服务器

443:localhost:22 表示的意思把阿里云服务器的443端口转发到本地的22端口

端口你可以随便改,在这个例子里面,就是把对阿里云服务器443端口的请求转发到了我公司电脑的22端口

第一步完成之后,其实我们就可以在家里通过 ssh -p 443 jwang@39.97.190.14 命令访问我们公司电脑了,这个应该很好理解,就是一个隧道转发。

有人可能心里在想,阿里云又没法直接访问到我公司的电脑,为什么它可以转发呢?

其实这里是在公司电脑执行的命令,相当于公司电脑主动去连接阿里云,这不是http,tcp长连接是可以收发消息的,相当于他们中间打通一条隧道,可以相互发消息

当阿里云服务器的443端口收到一个请求后,它会通过隧道告诉公司的电脑这个请求需要干啥,然后公司的电脑把结果通过隧道返回给阿里云服务器,阿里云再返回给请求的人。

虽然现在我们可以在家里ssh公司的电脑了,但是ssh里面又不能访问网页,我们要求实现的效果是访问公司内网所有服务,比如gitlab、禅道、wiki。。。其实很简单!

在你家里电脑执行

ssh -fND 1080 -p 443 jwang@39.97.190.14

这里最关键的就是D,它的意思是动态端口转发,和上面命令的区别就是,它会把所有的请求都转发到远程服务器!其实就是一个socks代理了

这条命令的意思是监听本地1080端口,把所有通过1080端口的请求全部转发到远程服务器,这里的443是刚才转发到服务器的22端口,是ssh的连接端口,这样就搭建了一条socks隧道,你通过1080端口代理的请求都会被转发到公司内网,socks代理我相信很多人都用过!

你把家里的浏览器代理设置成 127.0.0.1:1080 就可以访问公司内网的所有服务了!

其实这条命令不一定必须在家里电脑执行,其实我们可以在一台具有公网ip的电脑上执行,甚至就是中转服务器,然后把socks代理监听的ip改成0.0.0.0,这样就相当于一个公开的socks代理,虽然可以被多人使用,但是存在安全隐患,不建议这么干!

自动重连

ssh命令时间长了会自动断开,如果想日常用的话可以使用autossh,具体用法这里就不多说了!使用 apt install autossh 安装,然后把原来命令里面ssh替换成autossh就行了,区别就在于autossh断线后会自动重连!

如果想做的更好,可以这条命令放到开机自启命令里面,这样一个长期高可用的vpn就搭建起来了!



小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6684842923474813454/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部