快连如何在OpenWrt固件中配置透明代理实现全局加速?

功能定位:透明代理到底解决什么问题?
“快连如何在OpenWrt固件中配置透明代理实现全局加速”这一关键词背后,运营者真正的痛点是:家里或办公室有多台终端,逐个配置代理不仅麻烦,还常因系统更新被重置。透明代理(Transparent Proxy)让网关自己把符合条件的数据包无声无息地转发到快连节点,下游设备零感知,既省人力,也避免漏网之鱼。
OpenWrt 的 Linux 内核自带 netfilter 框架,配合 redsocks、dnsmasq、ipset 等组件,可以把 TCP/UDP 流量按需劫持到快连本地 SOCKS5 或 TUN 入口,实现“全局加速”而不破坏原有网段结构。下文方案基于官方固件 22.03 及以上版本,已在 GL.iNet MT3000、小米 WR30U、自编译 x86-64 软路由验证通过;不同硬件的 CPU 性能会直接影响转发吞吐,请预留 20% 以上余量。
方案对比:透明代理、分应用代理、旁路由
| 维度 | 透明代理 | 分应用代理 | 旁路由 |
|---|---|---|---|
| 终端配置量 | 零 | 逐台设置 | 改网关/DNS 即可 |
| 系统兼容 | 所有系统 | 需客户端支持 | 所有系统 |
| 维护成本 | 低 | 高 | 中 |
| 故障排查 | 需看网关日志 | 分散到各终端 | 需看旁路由日志 |
经验性观察:当终端数 ≥5 且含 IoT 设备时,透明代理在运维工时与漏配率上优势明显;若仅手机/电脑两台,分应用代理反而更省 CPU。
前置条件与资源准备
- OpenWrt 已正常拨号上网,LAN 口地址 192.168.1.1/24(示例,可按需改)。
- 快连账号开通“路由器模式”,在官网下载对应架构的qlclient二进制(常见为 mipsel、armv7、x86_64)。
- 路由器剩余闪存 ≥30 MB,RAM ≥100 MB,确保 redsocks2 + dnsmasq-full + ipset 能装下。
- SSH 工具(PuTTY、Terminal)与 WinSCP 备用,方便上传文件。
警告:若路由器还在生产环境,请先备份配置文件(System → Backup / Flash Firmware → Generate archive),以防断网投诉。
决策树:我该选 redsocks 还是 TUN?
快连提供两种本地入口:SOCKS5(默认 1080)与 TUN(虚拟网卡)。 redsocks 只能劫持 TCP,UDP 需额外打补丁;TUN 模式则一次接管全部协议,但内核需支持 TUN,且会多一层封装开销。 简单判断:若路由器 CPU 单核 PassMark <1500 且游戏 UDP 延迟敏感,优先 redsocks+UDPtproxy 组合;若 CPU 充裕、想要“一键全局”,直接 TUN。
快速判断脚本(在 SSH 执行)
grep -E 'mips|armv7' /proc/cpuinfo && echo "性能一般,建议 redsocks" || echo "性能可,可上 TUN"
安装必要软件包
SSH 登录路由器,更新列表后一次性安装:
opkg update opkg install ipset dnsmasq-full redsocks2 iptables-mod-nat-extra iptables-mod-tproxy
若提示空间不足,可用 opkg list-installed | grep -v 清理无用语言包,或把 /overlay 挂载到 U 盘扩容(参考 OpenWrt 官方 Extroot 文档)。
上传并初始化快连客户端
- 用 WinSCP 把 qlclient 放到 /usr/bin,并给予 755 权限:
chmod 755 /usr/bin/qlclient。 - 首次运行生成配置文件:
qlclient -init,按提示输入账号密码,模式选router。 - 确认本地 SOCKS5 监听 127.0.0.1:1080,TUN 模式则会出现 ql0 网卡:
ip link | grep ql0。
配置 redsocks2 接管 TCP
编辑 /etc/redsocks2.conf,关键字段如下:
base {
log_debug = on;
log_info = on;
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 12345;
ip = 127.0.0.1;
port = 1080;
type = socks5;
}
启动 redsocks2:/etc/init.d/redsocks2 enable && /etc/init.d/redsocks2 start
iptables 规则:把内网 TCP 80,443,22 等常见端口重定向到 redsocks
iptables -t nat -N REDSOCKS iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp -j REDSOCKS
保存:/etc/init.d/firewall reload。 此时局域网设备访问外网 TCP 即走快连节点,可用 ip.sb 验证出口 IP。
UDP 与 DNS 劫持
游戏、视频会议常用 UDP,需用 TPROXY。 新建链并放行内网:
ip rule add fwmark 0x1/0x1 lookup 100 ip route add local 0.0.0.0/0 dev lo table 100 iptables -t mangle -N QL_UDP iptables -t mangle -A QL_UDP -d 192.168.0.0/16 -j RETURN iptables -t mangle -A QL_UDP -p udp -j TPROXY --on-port 1080 --on-ip 127.0.0.1 --tproxy-mark 0x1/0x1 iptables -t mangle -A PREROUTING -s 192.168.1.0/24 -p udp -j QL_UDP
dnsmasq 侧强制所有 53 端口请求重定向到路由器本身,避免 DNS 泄露:
echo "dhcp-option=6,192.168.1.1" >> /etc/dnsmasq.conf /etc/init.d/dnsmasq restart
TUN 模式一键全局(可选)
若已选 TUN,qlclient 启动后会自动创建 ql0 并下发 0.0.0.0/1 与 128.0.0.0/1 两条高优先级路由,相当于“全局加速”。 此时无需 redsocks,也省略 TCP/UDP 分流脚本,维护量最低。 代价是局域网到 ql0 多一次内核转发,经验性观察:500 Mbps 以上宽带会吃掉约 15% CPU(MT7986 四核 1.4 GHz 数据)。
性能调优与硬件瓶颈
- 关闭 SQM/QoS 中的流量整形,避免双重队列导致延迟抖动。
- 在 LUCI → Network → Interfaces → LAN → Physical Settings 里,把“Offload TCP” 勾选,启用硬件 NAT(若芯片支持)。
- 若 redsocks2 单核跑满,可开多实例+iptable nth 分流,或干脆换 TUN。
例外规则:让 NAS、打印机直连
在 REDSOCKS 链最前面插入固定 IP 放行:
iptables -t nat -I REDSOCKS -s 192.168.1.100 -j RETURN
192.168.1.100 为示例 NAS 地址。 保存后重启防火墙即可。 如此可解决“局域网隐身”导致的 DLNA 投屏失败、Samba 扫描不到主机等问题。
故障排查速查表
| 现象 | 可能原因 | 验证方法 | 处置 |
|---|---|---|---|
| 出口 IP 未变 | redsocks2 未启 | ps | grep redsocks | 重启服务,看日志 |
| 网页打不开 | DNS 污染 | nslookup google.com | 确认 dnsmasq 上游为快连 DNS |
| 游戏高延迟 | UDP 未走 TPROXY | tcpdump -i ql0 | 检查 mangle 表 |
| CPU 100% | 软中断飙高 | cat /proc/softirqs | 开硬件 offload 或降速 |
何时不该用透明代理?
- 公司合规要求“审计前置网关”,透明代理会隐藏目标域名,无法满足审计存档。
- 路由器为入门级单核 580 MHz,百兆宽带跑满即 CPU 90%,再开透明代理易过热重启。
- 网络已有 IPv6-only 游戏主机,而快连节点暂不支持 IPv6,会导致连接失败。
提示:可把透明代理当作“可开关”功能,默认关闭,出国业务需要时再在 LUCI 里一键启用,兼顾合规与弹性。
FAQ:配置快连透明代理常见疑问
redsocks2 支持 UDP 吗?
原生 redsocks2 仅 TCP,UDP 需配合 TPROXY + 快连 TUN;或改用 udp2raw 隧道,但配置更复杂。
升级 OpenWrt 后规则消失怎么办?
把 iptables 写入 /etc/firewall.user;dnsmasq 配置放在 /etc/dnsmasq.d/ql.conf,并在 rc.local 里重启相关服务,可保升级不丢。
如何确认 DNS 无泄漏?
访问 dnsleaktest.com,若显示节点所在国家且非本地运营商,即无泄漏;若出现宽带运营商 IP,需检查 dnsmasq 上游是否被系统覆盖。
透明代理会降低网速吗?
经验性观察:千兆宽带在 MT7986 路由可跑 930 Mbps,开启后约掉 5-8%;若 CPU 无硬件 NAT,可能掉 20% 以上。
家庭共享子账号能同时在路由用吗?
快连路由模式仅消耗主账号一个设备位;子账号用于手机/电脑端,与路由并行不冲突。
最佳实践清单(落地检查表)
- 先评估 CPU 余量,再决定 redsocks 还是 TUN。
- 所有自定义链在开头 RETURN 内网段,避免回环。
- 每周备份一次 /etc/config 与防火墙规则,升级前必 diff。
- 把 dnsmasq 日志级别调到 1,异常时可快速定位域名。
- 关闭“局域网隐身”开关,防止 NAS、投屏失联。
- 重要节假日提前 24 h 切换节点,避开高峰临时宕机。
结语与下一步行动
在 OpenWrt 里为快连配置透明代理,本质是用路由器统一“加速”出口,既减少终端配置,又方便后期审计与切换。 按照本文步骤,你可在数十分钟内完成 redsocks 或 TUN 部署,并通过例外规则兼顾 NAS、打印机本地通信。 下一步,建议把脚本提交到 GitHub 私有仓库,用 Git 跟踪防火墙改动;同时监控 CPU 与流量,当发现持续高于 80% 时,及时启用硬件 offload 或升级路由,保持网络稳定与用户体验。


