科普:公网 IP 与内网穿透那些事儿
很多朋友在家部署了 NAS 或小型服务器后,发现出门在外就访问不了了。这背后涉及到公网 IP、NAT、内网穿透等一系列网络基础概念。
公网 IP vs 内网 IP
公网 IP 是全球唯一的,可以从互联网任何地方直接访问。内网 IP(也叫私有 IP)只在局域网内有效,典型地址段包括:
10.x.x.x172.16.x.x~172.31.x.x192.168.x.x
由于全球 IPv4 地址早已枯竭,运营商普遍使用 NAT(网络地址转换) 技术,让多个用户共享同一个公网 IP。这就是为什么你查到的"公网 IP"实际上可能是运营商级别的大内网。
怎么判断自己有没有公网 IP?
方法很简单:
- 登录路由器管理页面,查看 WAN 口获取到的 IP 地址
- 在浏览器搜索"我的 IP",查看显示的 IP
- 如果两个 IP 一致,说明你有公网 IP;如果不一致,说明你在运营商的大内网中
没有公网 IP 怎么办?内网穿透方案
如果没有公网 IP,可以通过内网穿透(也叫 NAT 穿透)来实现外网访问家中的设备。常见方案:
1. FRP(Fast Reverse Proxy)
需要一个有公网 IP 的云服务器作为中转。在服务器上运行 frps(服务端),在家中设备上运行 frpc(客户端),通过配置端口映射实现穿透。开源免费,是目前最主流的方案。
2. ZeroTier / Tailscale
基于 WireGuard 的虚拟组网工具,不需要公网 IP,通过打洞技术建立 P2P 加密通道。适合个人用户,配置简单,免费版足够日常使用。
3. Cloudflare Tunnel
Cloudflare 提供的免费隧道服务,在家中运行 cloudflared 客户端即可将内网服务暴露到公网,自带 CDN 和 DDoS 防护。适合对外提供 Web 服务。
4. IPv6
现在大部分运营商已经支持 IPv6,IPv6 地址数量近乎无限,每个设备都可以获得公网 IPv6 地址。如果你的设备和访问端都支持 IPv6,可以直接通过 IPv6 访问家中设备,无需任何穿透。
总结
如果你有公网 IP,最简单的方案是路由器做端口转发 + 动态 DNS。如果没有,FRP 或 Tailscale 是不错的选择。追求简单就试试 IPv6 直连。