导航:首页 > 配服务器 > 服务器穿透是什么意思

服务器穿透是什么意思

发布时间:2023-03-09 12:04:31

1. 内网穿透|FRP|NGROK|一步搞定

内网穿透从字面上来说就是将本地的服务器映射到外网可访问

设想下

    如果有已知的公网服务器,那内网的本地服务就可以映射到外网了。

    如果没有已知的公网服务器,那只能代理到外网的服务器访问即可。

    ps: 公网服务器与可访问外网的服务器是有区别的。区别在于用户访问某宝服务,先是到公网服务器然后再转发的淘宝服务。所以可访问外网的服务器不等于公网服务器。

换句话说直接将服务器部署在与公网服务器相通的机器上不就可以了,我也是这样想的。所以就有生产环境与测试环境,其实内网穿透还是存在安全隐患的,内网穿透大部分应用于测试环境,比如常用的微信相关开发。

最后我们来聊聊FRP与NGROK

        两者的原理都一样,通过解析过的域名做本地服务端口映射。

        Ngrok相对比较简单,只需要能访问外网的机器即可。可参考 http://ngrok.cc 里面有教程, 但是唯一不足的是免费分配的域名容易被微信限制,如果不是做微信相关的服务可忽略。

        接下来就是FRP,不仅仅需要能访问外网的机器,还需要一台公网服务器。如果需要做域名相关的测试,就需要申请域名解析到公网服务器。可参考 https://gofrp.org/ 里面有文档。强调下服务端必须部署在公网服务器上才行。个人感觉功能也比Ngrok强大些,稳定些。

2. 去中心化 P2P 网络穿透

由于我对一些奇奇怪怪的技术比较感兴趣,就特别想去了解它的原理。
最近看到两个关键词——去中心化,网络穿透。
了解了相关技术我终于明白,为什么当年王欣说:“技术无罪”。
用到这类技术的有:kuaibo (王欣),TeamViewer

简单来说,去中心化之后就是点对点通信。没有服务器作为中介,两个节点直接通信而不通过服务器。

为了更好地理解什么是去中心化网络,先要了解传统的中心化网络。中心化的节点必须是服务器,客户端只能和服务器通信,而不能单独地与另一个客户端直接通信。若客户端想发送信息给另一个客户端,必须通过服务器。在这种模型中,服务器扮演提供服务的角色,而客户端则是被服务的。这样的通信网络,就是传说中的中心化网络。

在去中心化的网络中,实际上是没有客户端和服务器的说法,客户端之间相互地提供服务。客户端之间相互连接,每个客户端同时对外提供相应的服务,同时也使用其他客户端提供的服务。在这种情况下,就没有客户端的说法了,我们可以称它为节点。这样的通信网络,就是传说中的去中心化网络。这种通信网络去除了中心服务器的绝对控制,也提高的网络传输效率,同时中心服务器的压力也变小了。

NAT(Network Address Translation,网络地址映射)是将公网地址映射为子网地址。能够进行映射的网络装置被称为 NAT 路由器。
在子网与外网通信的过程中,子网和公网连接的节点称为路由器。假设子网在192.168.1.0网段。路由器的公网IP为112.93.114.32,服务器的公网IP地址为120.93.24.180。当服务器给子网机器发送数据时,实际上是发送到路由器上,路由器能够通过路由器上记录的映射表,将数据映射到子网的机器中;相对的,当子网机器给服务器发送数据时,先将数据发送到路由器,再由路由器发送给服务器。

2019年11月25日,世界互联网组织宣布,最后一个IPv4地址已经分配完毕。现在,我们已经用完了IPv4地址。
在更早之前,由于 IPv4 地址紧缺,提出了NAT理论,通过公网IP地址与端口的组合,映射到子网机器的IP和端口。这样就可以用少量的公网IP来表示更多的子网IP,可以减缓IPv4地址耗尽。

NAT 实现方案有三种:静态转换,动态转换,端口地址映射。
1. 静态转换
一个子网IP对应一个公网IP,且配置后不能更改,这并不能节省公网IP。
2. 动态转换
公网IP数量大于子网IP数量,公网IP组成一个IP地址池。当子网IP需要转换时,NAT路由器就从地址池中取出一个空闲的公网IP,分配给子网机器,使得子网机器可以和公网进行通信。当数据传输完后,就回收此公网IP到地址池中。
3.端口地址映射
通过改变子网机器发送到公网的源端口号(对外的公网IP为路由器的公网IP,修改后的端口号为路由器上的端口号),最大限度地节省IPv4地址。

从NAT功能上做区分,可以将NAT分为四种: 对称NAT 完全锥形NAT IP限制锥形NAT 端口限制锥形NAT

在区分之前,必须先明白一点:NAT 会为子网机器的每一个网络进程都分配一个地址和端口,从而能够将子网网络进程与公网地址做映射。

准备一个子网客户端,两台公网服务器。

准备一个子网客户端,两台公网服务器。

准备一个子网客户端,一台公网服务器。

网络穿透,就是能够让公网的机器(多数指的是网关)找到子网的机器。
穿透下图中的两个网关,使得在两个在不同子网下的机器可以相互通信。网络穿透的本质就是一个子网的机器给另一个网关的公网IP地址和端口发送数据,利用其记录的映射表,使得另一个子网的机器可以接收到数据。
举个栗子,子网机器192.168.1.3:2341给公网机器180.93.45.46:8888发送数据的过程中,在网关(NAT1)会产生一条映射记录。后续其他公网或者子网的机器发送数据到112.93.13.56:43891,就可以让子网机器192.168.1.3:2341收到数据。

两端的NAT,只要有一方是完全锥形NAT,就可以穿透。

下面以限制锥形NAT(NAT1),穿透对称NAT为例

(图片均来自网络)

感谢King老师

2020.3.26 23:37 广州

阅读全文

与服务器穿透是什么意思相关的资料

热点内容
创维冰箱压缩机 浏览:869
nginxopenssl交叉编译 浏览:750
相机卡无法创建新文件夹 浏览:225
单片机照明控制系统程序代码 浏览:10
服务编程一体化 浏览:471
tx小霸王服务器是什么意思 浏览:545
计算机编程工龄工资怎么算 浏览:491
macandroid配置环境变量 浏览:854
做项目文件夹的图标 浏览:327
数控车床车轴编程教程 浏览:728
怎么解压截图软件 浏览:885
算法符号椭圆 浏览:174
网络蚂蚁app是什么 浏览:273
php面向对象编程开发 浏览:798
唱吧如何解绑其他app 浏览:318
程序员去工厂好吗 浏览:497
阿里云租服务器企业要实名认证吗 浏览:928
mfc图形怎么输入命令 浏览:653
为什么开机画面有安卓标志呢 浏览:317
java数据结构和算法分析 浏览:400