内网穿透 (1) — ssh 反向代理

栏目: 后端 · 发布时间: 5年前

内容简介:因为各种各样奇怪的问题,各大公司学校,甚至一个家庭,都会有一个局域网,在学校和公司内部,甚至还会出现局域网套局域网的情况(毕竟一个路由器就可以组网了) ,形成一个树状结构,底层级的可以访问高层级,高层级却无法直接访问低层级这个时候有两种解决方式端口转发需要硬件支持,而且一个端口最多只能整一台机子……(除非你的交换机支持多个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 允许压缩数据

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UML基础与Rose建模案例

UML基础与Rose建模案例

吴建 / 人民邮电出版社 / 2004-10 / 29.00元

《UML 基础与Rose建模案例》介绍了用UML(统一建模语言)进行软件建模的基础知识以及Rational Rose工具的使用方法,其中,前8章是基础部分,对软件工程思想、UML的相关概念、Rational Rose工具以及RUP软件过程等进行了详细的介绍;后3章是案例部分,通过3个综合实例,对UML建模(以Rose为实现工具)的全过程进行了剖析;最后的附录中给出了UML中常用的术语、标准元素和元......一起来看看 《UML基础与Rose建模案例》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器