
为什么要在路由器层面做旁路分流
把 kuailian 装进路由器,全屋设备无需额外设置就能自动走代理,但默认配置会把所有流量一股脑送进加密隧道,国内网站也跟着绕国外再回来,延迟瞬间从 20 ms 飙到 200 ms。旁路分流(Split-Tunneling)的核心作用就是让国内 IP 段保持直连,只有境外目标才走 kuailian,既保住速度,又节省套餐流量。
经验性观察:在 100 M 宽带、梅林 386.12 固件、快连 OpenWrt 插件 7.3.x 的测试环境下,开启旁路后,Bilibili 4K 缓冲时间从 9 s 降到 2 s,Steam 下载速度恢复满速,而 Netflix 依旧能解锁港区字幕。下文以「梅林固件」与「OpenWrt」两条主流路径为例,给出最小可用步骤与回滚方案。
前置检查:确认路由器与插件版本
- 进入路由器后台→系统管理→固件版本,确认已刷梅林 386.x或OpenWrt 22.03+;老版本缺少 nftables 支持,分流规则可能失效。
- kuailian 插件需 ≥7.3.1,路径:梅林「Software Center」→「kuailian」→About;OpenWrt「系统→软件包」搜索kuailian-core版本号。
- 提前备份配置:梅林「系统管理→设置→导出」;OpenWrt「系统→备份/升级→生成备份」。一旦规则写错,30 秒就能回退。
梅林固件:图形界面 3 步完成分流
步骤 1 打开 Split-Tunneling 面板
Software Center→kuailian→「高级设置」→「Split-Tunneling 2.0」标签页;首次进入会提示“下载大陆 IP 列表”,点击「立即更新」,约 3 s 完成,列表来源为 APNIC+CNISP 每日合并,体积约 300 KB。
步骤 2 选择“大陆白名单”模式
界面提供三种策略:全局代理、大陆白名单、反向分流。选“大陆白名单”后,下方自动出现「绕过中国大陆 IP 段」开关,保持开启即可。此时路由器会在post-mount阶段注入 ipset 与 nft 集合,重启后依然生效。
步骤 3 验证与回退
保存后无需手动重启,插件会热加载规则。打开终端执行 curl ipinfo.io/country,若显示 CN 且延迟 <30 ms,说明分流生效;若需回退,回到同一页面选「全局代理」→保存,30 s 内所有流量重新进入隧道。
OpenWrt:用 UCI 命令行写最简规则
图形界面(LuCI)在 7.3.x 插件里暂未放出完整分流面板,官方建议用 UCI+firewall4。以下命令在 SSH 里一次性粘贴即可,假设快连接口名为 tun0。
# 1. 下载大陆 IP 段
wget -O- https://cdn.jsdelivr.net/gh/kuailian/openwrt-chnroute@latest/chnroute.txt | awk '{print $1}' > /tmp/chn.txt
# 2. 注入 nft 集合
nft add set inet fw4 chn_ip { type ipv4_addr\; flags interval\; }
cat /tmp/chn.txt | xargs -I{} nft add element inet fw4 chn_ip {}
# 3. 添加绕行规则(在 mangle prerouting 之前)
nft insert rule inet fw4 mangle_prerouting ip daddr @chn_ip counter return
# 4. 让快连链只匹配非大陆流量
nft insert rule inet fw4 kuailian_mangle ip daddr != @chn_ip counter meta mark set 0x55
执行后可用 nft list ruleset | grep chn_ip 检查集合是否加载;若需撤销,重启防火墙即可:/etc/init.d/firewall restart。
例外场景:哪些地址建议手动加黑/加白
- 公司 CDN 走全球 Anycast:例如某头部云厂商把广州节点公告到 AS45102,却同时在美国广播,可能被误判为境外。解决:在「自定义 IP」文本框追加
103.219.28.0/24并选「强制直连」。 - 游戏更新域名:经验性观察,米哈游部分补丁服务器实际位于日本,但域名后缀为
.cn。可把*.mihoyo.com加入「代理域名」列表,确保更新走隧道。 - IPTV 组播地址:运营商 224.0.0.0/4 在梅林默认被跳过,若你同时开 kuailian 与 IGMP Proxy,需把
224.0.0.0/4加入「强制直连」,否则电视盒子会花屏。
副作用与缓解方案
警告:分流规则越多,nftables 遍历次数越高。经验性观察,在低端 ARMv7 路由(MT7621)上,大陆表条目约 8500 条,CPU 占用提升 3–5%;若你家用宽带 ≥500 M,建议把老路由换成 MT7986 或 x86 软路由,否则峰值速度可能掉到 200 M。
缓解:定期把规则编译成 bitmap:port,或直接在「自定义精简」里勾选「只保留 /15 及以上掩码」,可把条目压到 3000 条,CPU 占用回到 1% 以内。
验证与观测:4 条命令判断规则生效
| 目的 | 命令/操作 | 预期结果 |
|---|---|---|
| 确认出口 IP | curl ipinfo.io | 国内站点显示 CN,国外站点显示快连节点 |
| 追踪路由 | traceroute 223.5.5.5 | 第一跳为网关,第二跳为运营商,不经过海外 |
| nft 集合计数 | nft list set inet fw4 chn_ip | grep elements | elements >8000,且 counter 随访问增长 |
| 实时日志 | logread -e kuailian | grep bypass | 出现 bypass CN IP 字样,表示命中直连 |
回退与应急:30 秒恢复全局代理
若发现银行、公司 OA、校园网无法打开,优先检查是否被误判为境外。梅林:回到 Split-Tunneling→临时切「全局代理」→保存;OpenWrt:SSH 执行 /etc/init.d/kuailian reload 会重新加载纯净环境。仍有问题,直接关闭 kuailian 插件,路由器立即回到裸跑状态。
何时不建议使用旁路分流
- 公司强制全局审计:部分外企要求所有流量必须经过境外网关做 DLP 扫描,开分流会被安全部点名。
- IPv6 单栈网络:截至当前最新版本,快连路由插件的 IPv6 分流仍标记为实验功能,可能出现 /48 整段绕过,导致 Disney+ 被识别成香港外网。
- 双拨叠加:若你玩多拨负载均衡,分流规则只在主路由生效,副路由走隧道会产生源地址不一致,部分 HTTPS 站点会重置连接。
最佳实践清单(可打印)
- 每月首日检查大陆 IP 列表更新,按钮在「Split-Tunneling」→「更新」。
- 新增公司域名时,先用
dig +short example.com拿到 CNAME,再决定放「直连」还是「代理」。 - 游戏/直播前,手动把节点锁定到「香港-05」或「东京-02」,关闭 AI 预测,避免高峰期跳节点。
- 任何规则改动后,在 5 分钟内用 speedtest.cn 和 fast.com 各跑一次,确认国内速度 ≥90% 带宽,国外能解锁。
- 把路由器 SSH 端口改成 2222,禁用密码登录,防止 nft 规则外泄后被远程篡改。
FAQ:路由器旁路分流常见疑问
梅林固件更新后分流失效怎么办?
新版梅林默认改用 firewall4,旧版 ipset 脚本不再执行。解决:升级快连插件到 ≥7.3.2,或在「系统管理→服务→防火墙」中手动开启「兼容 ipset」选项,再重启插件即可。
OpenWrt 提示“nft: Set not found”如何解决?
说明 firewall4 未启动完整 nft。先执行 /etc/init.d/firewall restart,若仍报错,检查闪存剩余空间是否 <1 MB,清理 /tmp 后再下载 chnroute.txt。
分流后百度依旧慢,是不是规则没生效?
大概率是 IPv6 走了隧道。进入「IPv6 设置」关闭「启用 IPv6 代理」,或在「自定义 IP」把 2400:da00::/32 加入直连,再刷新 DNS 缓存即可。
总结与下一步
路由器旁路分流是降低延迟、节省流量的高性价比方案,核心就是让大陆 IP 段保持直连。梅林用户 3 步图形化完成,OpenWrt 用户 4 行命令也能落地。改完规则务必用 curl+traceroute 双重验证,并保留「全局代理」一键回退通道。
下一步:若你有 Apple TV 或游戏机,可在「设备分组」里把客厅区域强制走代理,卧室区域保持分流,实现更细粒度调度。官方知识库已放出模板,直接复制即可。
📺 相关视频教程
【建议收藏】一个视频讲清楚所有局域网共享科学上网方法,让家里所有网络设备无需安装代理工具即可翻墙,没有软路由怎么让全家科学上网?http代理/socks代理/透明代理/WIFI热点,总有一种方法适合你


