我们常常面临一个困境:办公室或家中的电脑、NAS、智能设备等拥有强大的功能和丰富的资源,但一旦离开本地网络(即内网),就无法直接访问它们。这是因为我们通常处于运营商的NAT网络之后,没有独立的公网IP地址。
1. 问题的根源:NAT与动态公网IP
NAT(网络地址转换): 由于IPv4地址枯竭,运营商不会为每个家庭或公司分配一个固定的公网IP。相反,一个公网IP会被一个区域内的许多用户共享。你的路由器会创建一个内网(如192.168.1.x),并通过NAT技术,将你内网设备的请求“转换”到公网IP上,并将返回的数据“翻译”回给你的设备。这意味着,从外网发起的、未经请求的连接请求会被路由器直接丢弃,因为它不知道这个数据包该交给内网的哪台设备。
动态公网IP: 即便少数用户拥有公网IP,也通常是动态变化的,不便于长期稳定的访问。
既然外部无法主动“敲门”,那就让内部主动“报信”。内网穿透技术的核心在于一个拥有固定公网IP的中转服务器。
工作流程可以概括为以下几步:
1. 主动连接: 你在内网中安装的客户端软件,会主动与部署在公网上的服务端(中转服务器)建立一个持久的、安全的控制连接通道。因为这个连接是从内网向外发起的,所以可以轻松穿透NAT设备。
2. 注册服务: 客户端告诉服务端:“你好,我是内网里的一台设备,我这里有Web服务(端口80)和SSH服务(端口22),如果你想访问它们,请通过你来进行中转。”
3. 请求中转: 当外部用户想要访问你的内网服务时,它不再直接连接你的内网IP,而是去访问中转服务器的指定地址和端口。
4. 数据转发: 中转服务器收到请求后,通过之前建立好的控制通道,通知内网客户端:“有客人来了,请准备好数据。” 随后,客户端与服务端之间会再建立起一条或多条数据通道。服务端将外部用户的请求通过数据通道转发给内网客户端,客户端再从内网设备获取数据,原路返回给服务端,最终送达外部用户。
整个过程中,所有的连接都是由内网客户端主动发起或响应的,完美地规避了NAT的限制。
二、下载ZeroNews软件www.zeronews.cc官网下载
本文讲解的是在linux系统下部署,下载以下版本:

登录zeronews平台,在 "Token" 页面中复制一个 Token 备用。

通过 curl 工具 下载安装 ZeroNews
curl -SLk https://download.zeronews.cc/linux/zeronews-install.sh | sh -s install
第 3 步:启动 ZeroNews Agent执行 Token 认证
zeronews set token <YOUR_TOEKN>
启动 ZeroNews Agent
systemctl start zeronews
设置 ZeroNews 开机自启动
systemctl enable zeronews
ZeroNews 启动后,您可以在 ZeroNews 平台上查看设备(Agent)状态,确认其已成功上线。
接下来,您可以在 ZeroNews 平台上生成域名、创建应用服务,并根据需要进行访问配置。

通过本文,您不仅理解了内网穿透“由内向外”建立隧道的核心原理,还成功使用ZeroNews工具简单几步完成了从服务端到客户端的完整部署。内网穿透的应用远不止于此,你还可以用它来暴露开发中的网站、远程桌面连接、访问监控摄像头等。