hello 大家好。想必,HVV
护网期间大家办公效率直线下降吧,其中多数最主要因素是网络环境各种限制,导致原有的网络通信不能访问。
还有场景是多个网络因业务不能双向通信,进行限制网络等等问题...。 总之, 我们的诉求只有一个,那就是将网络打通,可以让网络正常通信。

那么,请各位同学跟随我将本篇文章阅读完,带大家解决手头上的网络限制问题~

本篇文章用到SSH三种隧道模式:
本地转发:
将远程服务器的某个端口映射到本地机器的指定端口上,使得本地应用程序可以通过本地端口访问远程服务器上的服务。远程端口转发:
将本地机器的某个端口映射到远程服务器上,使得远程服务器上的应用程序可以通过远程服务器上的端口访问本地服务。动态转发:
允许通过配置一个本地端口,把通过隧道到数据转发到远端的所有地址。本地的应用程序需要使用socks协议与本地端口通讯。此时SSH充当socks代理服务器的角色。
下面演示的案例中,需要将SSH配置文件 /etc/ssh/sshd_config
更改如下参数
shell
AllowTcpForwarding yes
注意:隧道是采用SSH,所有经过的计算机设备,需要安装SSH。 比如windows需要安装OpenSSH
场景一:双向隧道

环境描述
内网环境和办公网环境之间是无法访问的,这里通过笔记本电脑连接双方网络后,在网络限制的情况下,也是只能实现单向连接。
这时,我们要实现内网设备与办公网设备网络连接,需要借助中间的笔记本电脑网络,下面使用SSH隧道方式,实现内外网打通,双向连接。
步骤中,将两端的22端口映射,通过隧道的方式,进行双向连接:
(1)PC电脑访问服务器建立隧道
笔记本电脑 -> 服务器
shell
ssh -NL 1022:127.0.0.1:22 root@192.168.1.11
笔记本电脑 -> PC电脑
shell
ssh -NR 1022:127.0.0.1:1022 root@192.168.3.33
首先,在笔记本电脑本地监听1022端口映射到192.168.1.11服务器中22端口;
然后,在笔记本电脑通过ssh远程代理方式,将192.168.3.33PC电脑建立1022端口及监听,并映射到本地的1022端口,这样一条单向SSH隧道就建立成功了。
外网PC电脑访问内网192.168.1.11服务器。比如,PC电脑执行 ssh -p 1022 root@127.0.0.1
进行连接,则代表1022映射向了192.168.1.11:22端口。

访问成功。
(2)服务器访问PC电脑建立隧道
笔记本电脑 -> 服务器
shell
ssh -NR 1022:127.0.0.1:1023 root@192.168.1.11
笔记本电脑 -> PC电脑
shell
ssh -NL 1023:127.0.0.1:22 root@192.168.1.33
到此为止,SSH双向隧道就建立完成了, 内网服务器和外网PC电脑可以互相连接了。各自访问1022端口就能连接对方的SSH服务。
场景二:socks代理上网

环境描述
很多时候内网服务器需要下载一些依赖包,但是无法访问互联网非常麻烦。 这里通过SSH隧道动态转发,实现socks5代理上网。
(1)服务器访问PC电脑建立隧道
笔记本 -> PC电脑
shell
ssh -ND 10801 root@192.168.3.33
笔记本 -> 服务器
shell
ssh -NR 10801:127.0.0.1:10801 -p 2222 root@192.168.1.11
(2)在内网192.168.1.11服务器上,验证是否可以访问外网
shell
curl -v http://www.baidu.com -I -x socks5://localhost:10801
测试成功!

技术文章持续更新,请大家多多关注呀~~
搜索微信公众号,关注我【 帽儿山的枪手 】