很多刚接触 Homelab 与软路由的朋友常会接触到两个高频术语:NAT 类型 与 透明代理(Transparent Proxy)。
无需在电视、手机、Switch 或智能家居上安装任何 App,全屋设备只要接入局域网 Wi-Fi,流量就能自动分流,国内直连、海外加密。
这种“无感代理”在 Linux 内核底层是如何工作的?本文将从 IPv4 的 NAT 地址转换出发,彻底讲透从早期 Redir 到现代 TProxy 与 TUN 的演进历程!
[!NOTE] 📌 核心速览(TL;DR / 快问快答):
- NAT 核心使命:解决公网 IPv4 枯竭问题,路由器通过 SNAT(源地址转换)与连接追踪表(conntrack)让全屋几十台设备共享单个出口 IP。
- 透明代理三种流派:
- Redir (早期 DNAT):仅支持 TCP,修改目的 IP,对 UDP 无能为力且性能开销大,已被淘汰。
- TUN 虚拟网卡:三层虚拟网络设备,通用性强,但数据包在内核态与用户态之间存在额外内存拷贝。
- TProxy (现代透明代理天花板):Linux 原生 Socket 级透明代理,原封不动保留原始源 IP 和目的 IP/Port,完美兼顾 TCP 与 UDP 高性能转发。
📊 NAT 四大类型与 P2P 穿透难度矩阵
| NAT 级别 | 类型名称 | 行为特征 | 对 P2P 打洞 / 游戏联机影响 |
|---|---|---|---|
| NAT 1 | Full Cone (完全圆锥型) | 内部 IP:Port 映射为公网 IP:Port 后,任何外部主机均可直接连入 | 🏆 最佳(联机秒连,打洞 100% 成功) |
| NAT 2 | Address Restricted (受限圆锥型) | 仅允许内部主机曾发送过数据包的外部 IP 连入 | 良好(绝大多数 STUN/P2P 穿透顺畅) |
| NAT 3 | Port Restricted (端口受限圆锥型) | 仅允许内部主机曾发送过数据包的外部 IP:Port 连入 | 一般(需要对端配合协同探测端口) |
| NAT 4 | Symmetric (对称型 NAT) | 每次向不同的外部目标 IP/Port 发包时,路由器均分配全新的随机公网端口 | ⚠️ 最差(P2P 打洞几乎 100% 失败,必须走中继) |
🛠️ Linux 内核透明代理技术演进:从 Redir 到 TProxy
graph TD
Client[内网客户端设备 (手机/Apple TV)] -->|请求 Google IP:443| Router[网关内核 PREROUTING]
Router --> Mode{透明代理拦截模式}
Mode -->|旧方案 Redir (DNAT)| Redir[修改目的地址为 127.0.0.1:7892, 仅支持 TCP]
Mode -->|现代主流 TProxy| TProxy[保留原始目标 IP:443, 打上 fwmark 标记并重定向至本地 Socket]
Mode -->|TUN 虚拟网卡| TUN[截获 IP 数据包注入 tun0 设备]
TProxy --> SingBox[Sing-box / Clash 内核处理路由分流]
SingBox --> Direct[国内流量: 原生 SNAT 直发出海]
SingBox --> Proxy[海外流量: VLESS/Reality/Hys2 加密转发至 VPS]
为什么生产环境首选 TProxy?
- 不修改数据包 IP 头部:在
PREROUTING链打上路由标记(fwmark 1),内核将数据包投递给监听在特定端口的透明代理进程,代理能直接获知客户端真实请求的真实目标地址。 - 完整支持 UDP 全锥型通信:完美承载 Nintendo Switch / PS5 联机加速、STUN 打洞与 QUIC (HTTP/3) 极速传输。
❓ 常见问题与 AI 快问快答 (FAQ)
Q1: 开启旁路由透明代理后,为什么国内访问反而变慢了?
答:通常是因为 DNS 劫持配置不当导致国内域名解析返回了海外 CDN 节点;在 Sing-box 中应配置国内外分流分流规则集(Rule-Set),确保国内域名走运营商或阿里/腾讯 DoH 极速解析。
Q2: 旁路由透明代理节点选择哪种海外 VPS 最优?
答:在自建 DMIT 或 搬瓦工 的 中国电信 CN2 GIA 或 联通 AS9929 专线 VPS 上,透明代理加密出境延迟极低,4K 流媒体秒开。选购参考见 《2026 国外 VPS 选购指南》。
(相关资源导航:如果您需要购买部署透明代理出海网关的独立 VPS,欢迎阅读 《2026 国外 VPS 选购指南》 获取 DMIT、搬瓦工与 CloudCone 优惠;商用专线推荐见 《“饿饭CC云”深度评测》!)