一分钟实现内网穿透(ngrok服务器搭建)

时间:2022-09-17 15:46:49

简单来说内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点。

最近公司的花生壳到期了,要续费,发现价格一直在涨,都是5年以上的老用户,旗舰版都没有实现内网完全穿透,打算自己动手替换这个服务,中间走了不少的弯路,这里记录一些文字为大家提供参考。

随着开发与运行移动互联网的应用越来越多对打通内外网的需要也更加迫切,如微信开发、IOS与Android开发等。

虽然租用VPS、ECS等服务器可以解决很多问题但高性能的外网服务器价格非常贵还有数据安全问题,我选择的是公网服务器仅做代理与轻量应用,复杂的应用部署到内网服务器再穿透访问。

一、内网穿透概要

为了理解内网穿透我们先来了解几个概念:

1.1、IP地址

网络中唯一定位一台设备的逻辑地址,类似我们的电话号码

在互联网中我们访问一个网站或使用一个网络服务最终都需要通过IP定位到每一台主机,如访问baidu网站:

一分钟实现内网穿透(ngrok服务器搭建)

其中119.75.213.61就是一个公网的IP地址,他最终指向了一台服务器。

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

内网IP可以同时出现在多个不同的局域网络中,如A公司的U1用户获得了192.168.0.5,B公司的U3用户也可以获得192.168.0.5;但公网IP是唯一的,因为我们只有一个Internet。

//局域网可使用的网段(私网地址段)有三大段:
10.0.0.0~10.255.255.255(A类)
172.16.0.0~172.31.255.255(B类)
192.168.0.0~192.168.255.255(C类)

1.2、域名

域名是IP的别名,便于记忆,域名最终通过DNS解析成IP地址。

一分钟实现内网穿透(ngrok服务器搭建)

IP V4是一个32位的数字,IP V6有128位,要记住一串毫无意义的数字非常困难,域名解决了这个问题。

如www.zhangguo.com.cn就是一个域名,cn表示地区,com表示商业机构,zhangguo是公司名称,www是主机名

一分钟实现内网穿透(ngrok服务器搭建)

DNS查询过程如下,最终将域名变成IP地址

一分钟实现内网穿透(ngrok服务器搭建)

1.3、NAT

NAT(Network Address Translation)即网络地址转换,NAT能将其本地地址转换成全球IP地址。

内网的一些主机本来已经分配到了本地IP地址(如局域网DHCP分配的IP),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。

NAT不仅能解决了lP地址不足与共享上网的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

多路由器可完成NAT功能。

NAT的实现方式:

静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一。

动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的。

端口多路复用(Port address Translation,PAT),内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

应用程序级网关技术(Application Level Gateway)ALG:传统的NAT技术只对IP层和传输层头部进行转换处理,ALG它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。

一分钟实现内网穿透(ngrok服务器搭建)

一分钟实现内网穿透(ngrok服务器搭建)

后续文章内容链接地址