内容简介:因为各种各样奇怪的问题,各大公司学校,甚至一个家庭,都会有一个局域网,在学校和公司内部,甚至还会出现局域网套局域网的情况(毕竟一个路由器就可以组网了) ,形成一个树状结构,底层级的可以访问高层级,高层级却无法直接访问低层级这个时候有两种解决方式端口转发需要硬件支持,而且一个端口最多只能整一台机子……(除非你的交换机支持多个IP你还会配置)
0 说在前面
因为各种各样奇怪的问题,各大公司学校,甚至一个家庭,都会有一个局域网,在学校和公司内部,甚至还会出现局域网套局域网的情况(毕竟一个路由器就可以组网了) ,形成一个树状结构,底层级的可以访问高层级,高层级却无法直接访问低层级
这个时候有两种解决方式
- 端口转发
- 内网穿透
端口转发需要硬件支持,而且一个端口最多只能整一台机子……(除非你的交换机支持多个IP你还会配置)
今天我们就来讲讲内网穿透最基础的实现方法 —— ssh 反向嗲里
1 关于ssh
说起 ssh
并不是一个陌生的话题,在大多数时候,我们都会通过ssh远程控制服务器,以使用命令行,即使是内部的服务器也一样
ssh是一种加密的网络传输协议,在一定程度上避免了明文传输会带来的一系列分限
Warning: ssh 加密算法已经有能力被刺探及干扰,甚至有概率被破解,读取原文
2 故事背景
先让我们假设一个背景
现在有 3 台机子,网络访问情况如下:
-
A
位于a
局域网内 -
B
位于a
b
两个局域网内 -
C
位于 b 局域网内
我们现在想让 C
能够访问 A
我们将以 B
机作为代理机器,使 C
通过 B
访问 A
3 ssh 的反向代理
ssh -R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
我们可以这样理解:
port host hostport
反向代理需要 A 机器 主动连接 B 机器,并需要以 root 身份登陆 B 机器
4 访问
如果是 A 网页需要在 C 上面可以访问,我们可以通过 Apache2 Nginx 等将上文的 port
在转发到 80 / 443等端口上,不需要 C 可以通过 ssh 直接连接 B 来 访问 A
可以通过 ssh 密钥简化过程
如果出现因超时而自动断开的问题,可以在 /etc/ssh/sshd_config
尾部加入以下命令
ClientAliveInterval 30 # B 每隔30秒发送一次请求给 A,然后 A 响应,从而保持连接 ClientAliveCountMax 3 #B 发出请求后,A 没有响应得次数达到3,就自动断开连接,正常情况下,A 不会不响应
5 附加
这里有一些可能有用的参数
-v 调试链接,会显示出详细问题 -f 后台运行 ssh -N 不运行命令,仅转发端口 -C 允许压缩数据
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 反向代理和内网穿透
- 内网穿透与反向代理,浅谈前后台分离
- golang手把手实现tcp内网穿透代理(2)
- golang手把手实现tcp内网穿透代理(3)快速编码测试
- Vertx入门到实战—实现钉钉机器人内网穿透代理
- 一款轻量级、功能强大的内网穿透代理服务器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。