为了理解内网穿透的方式,首先需要了解一些相关概念。NAT(网络地址转换)使得内网中的主机可以共享一个公网 IP 地址访问外部网络,但反过来,外网主机通常无法直接访问内网主机。而内网穿透技术就是为了解决这个问题而产生的。
内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
该技术除了可以访问隐藏在NAT后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。
内网穿透技术现在应用场景越来越多。它允许外网用户访问位于企业或家庭内部网络中的设备和服务,打破了网络限制,提供了更便捷的远程访问和数据共享方式。
内网穿透常见的应用场景有很多,内网穿透技术在多种场景中得到广泛应用。例如,当用户需要随时随地远程访问家中的电脑、NAS(网络附加存储)设备或监控摄像头;或者在公司内部,需要从外网安全地访问公司内部的服务器、办公系统等。
1,内网提供外网连接访问,即外网访问内网,跨网互通。
2,不同地址端口间的互通转换实现。
通过在具有公网 IP 的服务器上搭建反向代理服务,将外部网络的请求转发到内网服务器上。反向代理服务器充当了中间人的角色,隐藏了内网服务器的真实结构,同时也可以实现负载均衡和安全防护等功能。
示例:在自己公网服务器上,开启并配置nginx反射代理实现。
在具有公网 IP 的服务器或路由器上配置端口映射规则。这样,当外网的请求发送到指定的公网端口时,服务器或路由器会将其转发到内网服务器的相应端口上,从而实现对内网服务的访问。
如本地路由器局域网端口映射外网:在具有路由权限且路由器获取到公网 IP 的情况下,可以直接在路由器上进行局域网端口映射到外网的设置。通常在路由后台-虚拟服务器-转发规则的位置添加设置,有的是在高级功能里面。
利用 VPN 技术可以建立一条安全的隧道,将内部网络与外部网络连接起来。外部用户通过连接到 VPN 服务器,就仿佛处于内部网络中,能够访问内部网络的资源。VPN 不仅提供了远程访问的功能,还能保证数据传输的安全性,通常用于企业内部的远程办公等场景。
自己搭建VPN:在自己公网主机上,部署VPN服务器;然后在需要数据互通的不同内网计算机上,使用VPN客户端。
三方VPN工具的使用:在所有服务端和访问端,都下载安装使用VPN工具,建立一个虚拟局域网,并通过虚拟地址进行连接访问,就像是内网直接访问一样。
对于普通用户可以直接采用纯软件方式如 frp或nat123同端口映射的方式,在传输数据的两端部署客户端以建立直接点到点的连接。对于技术开发定制,同样可以结合业务本身内置端对端穿透通信技术。
(1)UDP 打洞技术:常见的实现 P2P 的方式之一。UDP 打洞技术通过中间服务器的协助,在各自的 NAT 网关上建立相关表项,使 P2P 连接的双方发送的报文能够直接穿透对方的 NAT 网关,从而实现双方直接互连。
具体过程为:客户端 A 向集中服务器发送请求,以建立与客户端 B 的 UDP 连接;集中服务器将 B 的外网和内网地址二元组发给 A,同时也将 A 的相关信息发给 B;A 和 B 收到对方信息后,开始向对方的外网和内网地址二元组发送 UDP 数据包,并自动锁定第一个给出响应的地址二元组,从而打开“洞”,实现直接通信。但需注意,UDP 转换协议提供的“洞”并非绝对可靠,NAT 设备内部的 UDP 转换空闲状态计时器可能会关闭一段时间内没有数据通信的“洞”。为避免此问题,可在穿越 NAT 后设定一个穿越有效期。
(2)TCP 打洞技术:基于 TCP 的 P2P 应用相对较少,但在某些情况下也有打洞需求。TCP 连接的建立依赖三次握手交互,NAT 网关处理 TCP 连接时开销较大。不过,TCP 协议完备的状态机机制使其能更精确地获取某个 session 的生命期。
如果拥有自己的公网主机,如云服务器,可通过简单配置实现内网穿透。
例如,在云服务器上通过 SSH 、FRP、或nat123等工具配置端口映射。
我们可以安装内网穿透软件,在软件上添加映射时,配置被访问内网设备的相关信息 ,以及选择用作外网访问该映射的域名。当映射诊断信息提示连接成功时,即可实现内网穿透。常见的内网穿透软件有如nat123、花生壳、快解析等,普通人所有人均可使用,带界面化简单操作,不用专业知识。
以大众化内网穿透nat123使用方法步骤示例:
(1)内网地址确定:明确本地业务,应用本身端口开启正常运行状态,在局域网内可以正常访问。
(2)自定义地址:使用nat123客户端添加映射,结合自己具体应用访问场景,自定义填写好对应的内网地址(本地需要访问的应用固定内网地址)和公网地址(默认生成的二级域名或使用自己注册的域名)。
(3)外网访问:外网的设备通过访问nat123映射自定义设置好的固定域名和外网端口,顺畅地与内网设备进行数据通信。
内网穿透技术为我们打破了网络限制,提供了更多的可能性和便利。了解并选择适合自己需求的内网穿透方式,将有助于更好地利用网络资源,实现各种远程访问和数据共享的需求。但在享受其便利的同时,务必重视安全问题,确保网络环境的稳定和数据的安全。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。