如何在OpenWrt固件中为快连配置透明代理规则?
OpenWrt下用快连做透明代理,零配置分流国内外流量,游戏4K不卡顿。

功能定位:透明代理到底解决什么
在运营者视角,透明代理的核心价值只有一句话:让局域网设备“无感”走快连,既不用每台终端装客户端,也能把国内流量留在直连通道,国外流量自动进快连。对日更 200 条 4K 素材的自媒体团队来说,这意味着剪辑台、NAS、Vision Pro 同时上线,再也见不到“版权地域限制”红屏,而带宽账单不会翻倍。
OpenWrt 的 nftables + TPROXY 方案,比传统 redsocks 性能损耗更低,经验性观察在千兆下行环境可让 CPU 占用再降 5–8 个百分点;代价是初次配置门槛略高,需要动手写分流规则。下文给出“复制即可用”的最小化模板,并标注哪些行绝对不能改。
前置检查:你的固件与硬件是否达标
固件版本
截至当前的最新版本,官方主线 OpenWrt 23.05 已默认启用 nftables;如果你还在用 19.07 及更早的 iptables 时代,请先升级或单独安装 iptables-nft 兼容层,否则下文脚本无法生效。
硬件性能底线
透明代理需要整机转发 1 Gbps 以上时,建议 ARM Cortex-A53 四核 1 GHz 起步,RAM ≥ 512 MB;若只是 200 Mbps 家用宽带,MT7621 双核也能跑,但高峰期延迟会抬高 10–20 ms,需接受取舍。
方案 A:主路由直挂(性能最优)
步骤 1 安装必要内核模块
opkg update opkg install kmod-nft-tproxy kmod-nft-nat kmod-nft-socket resolveip
安装完成后 reboot 一次,确保 TPROXY 钩子被内核加载。
步骤 2 导入快连订阅
登录快连网页后台 → 订阅中心 → 复制 Shadowsocks/V2Ray 链接;在 OpenWrt 安装passwall2或homeproxy(两者均支持 nftables),粘贴订阅即可生成节点列表。若你偏爱命令行,也可手动写 JSON 放进 /etc/quicklink/,但需自行写脚本刷新。
步骤 3 写最小分流规则
# /etc/nftables.d/tproxy.nft
table inet tproxy {
set china_ip { type ipv4_addr; flags interval; }
chain prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr @china_ip return
meta l4proto { tcp, udp } tproxy to :9888 accept
}
}
把 APNIC 最新 CN 段写进 china_ip 集合,可实现“国内直走、国外进快连”。保存后执行 fw4 reload 立即生效。
方案 B:旁路由(不改现有主路由)
若公司主路由是华为/华三企业级,不方便刷固件,可把 OpenWrt 小主机设为旁路由,仅负责转发海外流量。做法:主路由 DHCP 把默认网关仍指自己,但加一条静态路由——目的 0.0.0.0/1 与 128.0.0.0/1 下一跳指向旁路由。这样只有国外 IP 被引流,国内流量不受影响,单点故障时删掉静态路由即可秒级回退。
警告
旁路由模式下,务必关闭 OpenWrt 的 NAT,否则会出现双重 NAT 导致 Xbox/PS 语音聊天无法建连。
常见分支:IPv6 要不要一起代理?
快连节点已全线支持 IPv6,但国内很多光猫只下发 /64 前缀。若你决定让 IPv6 也走透明代理,需要把 nftables 规则扩展到 ip6 家族,并在 LAN 口开启 DHCPv6 中继,否则 Windows 客户端会优先走原生 IPv6 泄露真实地址。验证办法:访问 test-ipv6.com,若评分低于 10/10 说明仍有泄露。
监控与验收:三条指标就够了
- 延迟:连续 ping 1.1.1.1 100 次,海外节点中转后平均 RTT 应比直连降低 20–60 ms(经验性观察)。
- 带宽:Speedtest 选同一服务器,开启/关闭透明代理各跑 5 次,取中位数,误差应 ≤ 5 %。
- 泄露:dnsleaktest.com 显示 DNS 出口与节点国家一致,且看不到运营商 DNS。
三项全部通过即可交付给团队使用;若有一项不达标,优先检查 nftables 命中计数器是否增长,确认流量真的进了 TPROXY。
故障排查速查表
| 现象 | 最可能原因 | 验证命令 | 处置 |
|---|---|---|---|
| 国外网站打不开 | nft 集合未命中 | nft list counter | 检查 china_ip 是否空集 |
| Switch 下载慢 | UDP 500-65535 未进 TPROXY | tcpdump -i br-lan udp | 把 udp 端口范围写进规则 |
| 国内 CDN 变慢 | 误把国内段当境外 | whois IP | 更新 CN 段列表 |
何时不该用透明代理?
- 公司需要审计员工访问记录,透明代理无法提供 URL 日志,只能看到 IP,合规部门会不满。
- 网络已有 802.1X 认证,旁路由会绕过认证网关,导致 IP 话机无法注册。
- 主路由 CPU 本身跑满 90 %,再加 TPROXY 容易触发 watchdog 重启。
提示
以上场景建议改用客户端分流,让需要翻墙的设备单独装快连,保留审计与认证链路。
版本差异与迁移建议
OpenWrt 22.03 之前默认防火墙是 iptables,23.05 以后改为 nftables。若你曾用旧版 passwall 写过大量 iptables 自定义规则,升级后会被清空。迁移步骤:先用 iptables-save > backup.txt 导出,再对照 nft 语法逐条改写,或直接使用 passwall2 的“自动迁移”按钮,经验性观察可节省 70 % 手工时间。
最佳实践 10 秒检查表
- china_ip 列表每周自动更新
- TPROXY 端口与快连客户端端口保持一致
- 关闭 OpenWrt 的 IPv6 源地址校验,防止 PTR 失败
- 每季度用 Speedtest CLI 跑一次 baseline,存档 CSV
- 重大节点变更前,先在测试 VLAN 里灰度 24 h
FAQ(结构化数据)
透明代理后 Netflix 仍提示代理?
快连 4K 专线节点已做 SNAT 对齐,出现提示通常是 IPv6 泄露。关闭客户端 IPv6 或把 nft 规则扩展到 ip6 即可。
游戏主机下载速度反而下降?
任天堂 CDN 部分网段被误识别为境外,流量绕了一圈。把 Nintendo 网段加入 china_ip 列表,或单独写一条 return 规则。
如何确认规则已生效?
执行 nft list chain inet tproxy prerouting,看 counters 是否增长;再访问 ipinfo.io,国家与节点所在地一致即成功。
收尾:下一步行动清单
读完本文,你只需做四件事:1) 确认硬件在支持列表;2) 按方案 A 或 B 复制 nft 规则;3) 跑完三条验收指标;4) 把检查表写进团队 Onboarding 文档。透明代理一旦跑稳,后续几乎零维护——快连节点故障时会自动切换,你的剪辑师只会觉得“今天网速好像又快了”,而再也说不出具体原因,这正是运营者想要的无声体验。
📺 相关视频教程
软路由翻墙全为什么我只用Passwall2?2025年Passwall2 最新全能教程【机场添加节点/单个节点添加/控制模式/全局分流规则等设置)R2S R4S Openwrt科学上网新方法。