跳到主要内容
服务器 · 建站 · AI API

内网穿透是什么?frp 与反向代理发布内网服务应用指南

广告位

内网穿透是通过有公网 IP 的服务器把内网服务发布到公网的技术。本文解释 NAT 限制的成因,对比 frp 隧道与反向代理两种方案的架构差异、配置要点与适用场景,帮助读者为家庭实验室或企业内网服务选择合适的发布方式。

内网穿透是一种帮助没有公网 IP 的内网设备对外提供服务的网络技术,主要解决如何把家庭、办公室或机房内网中的服务安全发布到公网的问题。理解它的工作原理,有助于在租用VPS(虚拟专用服务器)或独立服务器时,判断自己究竟需要一台”中转服务器”,还是只需要一套反向代理配置。

定义

内网穿透(NAT Traversal,也叫 NAT 穿透)是指在外部网络与内网服务之间建立一条受控转发通道,让公网用户能够访问位于 NAT(网络地址转换)设备之后的服务的统称。它的核心矛盾在于:IPv4 公网地址数量有限,绝大多数家庭宽带和企业内网中的设备只有运营商分配的私有地址(如 192.168.x.x、10.x.x.x),外部请求无法直接路由到这些设备。

解决这一矛盾有两条主流路径:一条是在一台有公网 IP 的服务器上部署 frp 这类隧道工具,由内网设备主动向外建立连接并保持会话;另一条是把服务部署在具备公网地址的服务器上,再用 Nginx 等反向代理统一对外发布。两条路径经常组合使用,构成常见的”公网入口 + 内网节点”架构。

NAT 为什么挡住了入站连接

NAT 设备(家用路由器、企业网关)把内网多台设备的私有地址映射成少数公网地址。出站连接时,NAT 会记录”哪台内网设备在什么端口发起了请求”,回程流量据此送回;但入站连接没有这样的映射记录,路由器不知道该把请求转给内网哪台设备,只能丢弃。

运营商层面的 NAT(CGNAT)让情况更复杂:不少宽带用户获得的公网地址本身也是运营商内网地址,即使拿到路由器管理权限做端口映射,流量也到不了自己的设备。这也是许多家庭实验室用户最终选择”租一台有公网 IP 的服务器做中转”的直接原因。评估中转服务器所在机房时,线路质量比硬件配置更重要,可先了解BGP(边界网关协议,用于多运营商智能选路)等多线接入方式,再决定节点位置。

NAT 设备拦截外部入站请求的示意图

frp 的工作原理与配置要点

frp 是目前使用最广泛的内网穿透工具之一,采用”服务端 frps + 客户端 frpc”架构。frps 运行在有公网 IP 的服务器上,监听一个服务端口;frpc 运行在内网设备上,启动后主动向 frps 建立长连接。外部用户访问公网服务器的指定端口时,流量经这条已建立的隧道转发到内网服务,全程不需要内网设备开放任何入站端口。

以把内网 192.168.1.10 的 Web 服务(端口 8080)发布到公网为例,关键配置只有几行:

# frpc.toml(内网设备侧)
serverAddr = "你的公网服务器IP"
serverPort = 7000

[[proxies]]
name = "web"
type = "tcp"
localIP = "192.168.1.10"
localPort = 8080
remotePort = 8080

配置完成后,访问”公网 IP:8080″即可到达内网 Web 服务。生产环境使用时有三点必须补齐:一是 frps 与 frpc 之间要配置 token 认证,防止端口被陌生人占用;二是涉及网页等敏感流量时,应启用 frp 的 TLS 加密或叠加 HTTPS;三是 remotePort 是暴露在公网的真实端口,建议配合防火墙规则限制来源。

反向代理的发布方式

反向代理(Reverse Proxy)是指代表后端服务接收请求、再按规则转发出去的网关角色,Nginx、Caddy 是典型实现。与 frp 的区别在于定位:反向代理本身解决”多个服务如何共用 80/443 端口、如何统一配置证书与缓存”,它假设后端服务是可达的。

当内网服务通过 frp 隧道出现在公网服务器本机的某个端口后,反向代理就有了用武之地。常见组合是:frpc 把内网服务映射到公网服务器的 127.0.0.1:8080(bindAddr 绑定回环地址,避免直接暴露),再由 Nginx 按域名把 example.com 的 443 流量转发到该端口,同时统一挂载 SSL(安全传输协议)证书。这样公网只暴露标准的 443 端口,后端端口、真实拓扑都被隐藏。

frp 隧道与反向代理在架构中的分工可以用下表概括:

维度 frp 隧道 反向代理
解决的核心问题 内网服务如何跨越 NAT 被公网访问 多个服务如何统一对外发布与加密
部署位置 公网服务器(frps)+ 内网设备(frpc) 公网入口服务器
连接方向 内网主动外连,保持长会话 接收公网请求,向可达后端转发
典型代表 frp、nps、rathole Nginx、Caddy、Traefik

frp 隧道与反向代理分工对比示意图

应用场景

家庭实验室是最典型的场景:NAS(网络附属存储)的私有云盘、Home Assistant 智能家居面板、自建 Git 服务等,都只有内网地址,需要借助一台低配置 VPS 做穿透入口。企业场景中,分支机构的内部管理系统、开发环境的联调回调(如微信支付、企业微信OAuth 回调要求公网可达地址)也常通过隧道 + 反向代理的组合暴露测试环境。

远程运维是另一类高频需求。当 SSH(安全远程登录协议)直连不可行时,部分团队会把内网设备的 SSH 端口经 frp 映射出来,再叠加跳板机认证;关于远程登录链路的常见故障,可参考SSH 公私钥登录故障排查一文中的处理思路。

常见误区与边界

第一,内网穿透不等于免认证。隧道只解决”可达性”,把内网服务直接暴露到公网等于把攻击面同步扩大,未加认证的 Redis、数据库管理面板经穿透上线后被扫描入侵的案例并不少见。第二,frp 隧道的速度上限受中转服务器带宽(单位时间内网络链路可传输的数据量)约束,1 Mbps 的小水管 VPS 不会因为穿透工具而变快,对带宽敏感的服务应关注服务器带宽选型。第三,穿透有合规边界,国内提供 Web 服务需完成相应备案流程,隧道不应被用于规避监管或搭建违规服务。

方案选择上可以这样判断:服务本来就能部署在公网服务器上,直接部署加反向代理最简单;服务必须留在内网(依赖本地硬件、本地数据),才需要 frp 一类隧道工具,并把反向代理叠加在入口做统一加密和域名管理。

若需要评估承载穿透入口的服务器选型,可以参考香港 VPS 的带宽、延迟与合规要点,其中对入口节点位置与成本权衡有具体分析。

参考资料

关于作者: Harrison

Harrison_K 是 HostingWiki.cn 的核心编辑与站长,长期专注于服务器、虚拟主机、VPS、独立服务器、高防服务器等领域内容建设与研究。凭借对全球IDC市场的深入理解与丰富实操经验,Harrison_K 致力于为中文用户提供权威、详实且实用的主机购买指南、使用教程与平台测评内容。

为您推荐

广告位

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注