内网穿透的概念

内网穿透,也即NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。

内网穿透是一种技术, 它允许您通过公共互联网访问位于私有网络中的设备或服务。 换句话说,内网穿透能够 打破私有网络与公共网络之间的壁垒 ,使得可以轻松地远程连接到自己的家庭、企业或其他私有网络中的设备。

网络地址转换技术

网络地址转换(Network Address Translation,NAT), NAT是一种将私有(保留)地址转化为合法IP地址的转换技术 ,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。

NAT机制的问题在于,NAT设备自动屏蔽了非内网主机主动发起的连接。 也就是说,从外网发往内网的数据包将被NAT设备丢弃,这使得位于不同NAT设备之后的主机之间无法直接交换信息。 这一方面保护了内网主机免于来自外部网络的攻击,另一方面也为P2P通信带来了一定困难。 Internet上的NAT设备大多是地址限制圆锥形NAT或端口限制圆锥形NAT,外部主机要与内网主机相互通信,必须由内网主机主动发起连接,使NAT设备产生一个映射条目,这就有必要研究一下内网穿透技术。

传统的NAT技术是通过将专用的网络地址(如企业内部网Internet)转换为公用地址(如互联网Internet),从而对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP地址,从而减少了IP地址注册的费用以及节省了越来越缺乏的地址空间。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

实现流程

巧妙地利用NAT原理实现NAT内网穿透技术,就可以使内网服务器接收到外网数据包。内网穿透流程如下:

(1)两个需要通过内网穿透进行通讯的内网客户端,分别将自己的外网收发接口注册给一个具有公网ip的中转服务器;

(2)中转服务器将两个客户端注册的收发接口分别告知给对端;

(3)一个内网客户端使自己的接收端口作为源地址,向对端的发送端口发送一个UDP数据包,这个数据包称为打洞包。发送过这个打洞包后,可以在这个内网的出口路由器上产生一条NAT记录,令后续从对端发送端口发来的数据包都不被丢弃, 而是转发给相应的内网客户端的指定端口;

(4)发送过打洞包后,对端发送至本端路由器指定接收端口的数据包,就会根据NAT记录转发至本端的内网服务器接收端口,从而实现了内网服务器接收外网数据包的功能;

(5)另一个内网服务器同样执行上述步骤(3)、(4),即可实现两端内网服务器相互收发音频数据包的功能。

内网穿透的原理可以简单概括为以下几个步骤:

  1. 首先,您需要在公共网络上搭建一个服务器或中转节点,通常称为内网穿透服务器。

  1. 接下来,您需要在内网中的设备上安装并配置内网穿透工具。

  1. 当您需要远程访问内网中的设备时,内网穿透工具会与内网穿透服务器建立连接,并将请求传递给目标设备。

  1. 目标设备响应请求后,内网穿透工具将结果返回给您,完成整个通信过程。

  1. 通过这种方式,内网穿透技术能够轻松地访问内网中的设备,无论身处何地。

应用场景

内网穿透技术在很多场景下都有着广泛的应用。

1.远程办公

随着互联网的发展,越来越多的人选择在家里工作,但是在家里工作时,常常需要访问公司内部网络中的资源,比如说文件服务器、邮件服务器等。这时,内网穿透技术就可以帮助在家里访问公司内部网络中的资源,从而实现远程办公。

2.云服务器访问

在云计算当中,很多应用都运行在云服务器上。但是,在某些情况下,需要从本地访问云服务器上的应用。这时,内网穿透技术就可以帮助在本地访问云服务器上的应用,从而提高应用的可访问性。

3.IoT设备访问

在物联网应用上面,越来越多的设备都连接到了互联网上,比如说智能家居设备、智能车辆等。但是,在某些情况下,需要从外部网络访问这些设备。这时,内网穿透技术就可以协助在外部网络访问这些设备,从而提高设备的可访问性。

NPS

NPS是一个内网穿透工具,开源。

NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持TCP、UDP流量转发,可支持任何TCP、UDP上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网DNS解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

NPS特点

全面的协议支持 ,与几乎所有常用协议兼容,例如TCP,UDP,http(s),socks5,p2p,http代理等;

全面的平台兼容性(Linux,Windows,MacOS,群晖等) ,仅支持作为系统服务进行安装。全面控制,允许客户端和服务器控制;

Https集成,支持将后端代理和Web服务转换为https,并支持多个证书。只需在WebUI上进行简单配置即可完成大多数要求;

完整的信息显示,例如流量,系统信息,实时带宽,客户端版本等。强大的扩展功能,一切可用(缓存,压缩,加密,流量限制,带宽限制,端口重用等);

域名解析具有诸如自定义标题,404页面配置,主机修改,站点保护,URL路由和全景解析之类的功能。 服务器上的多用户和用户注册支持。

NPS实现功能

1、做微信公众号开发、小程序开发等----域名代理模式;

2、想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射----TCP代理模式;

3、在非内网环境下使用内网DNS,或者需要通过UDP访问内网机器等----UDP代理模式;

4、在外网使用HTTP代理访问内网站点----http代理模式;

5、在外网如同使用内网vpn一样访问内网资源或者设备----socks5代理模式。