Skip to content

OpenWrt 与 OpenClash 软路由全屋透明代理

在家庭全屋网络与极客工作室环境中,将代理网关前置于路由器端是实现“真正全设备无感代理”的最佳实践。OpenWrt 搭配 OpenClash 插件,凭借高度工业化的规则配置、强大的开源社区生态,成为了硬核软路由玩家的不二之选。

通过在软路由上部署 OpenClash,局域网内的所有设备(包括不支持安装代理客户端的 Switch、PS5、Xbox 主机、Apple TV 以及各类智能家居音箱)无需任何复杂配置,连接 Wi-Fi 即可全自动享受高速专线分流与 DNS 防污染加速。

OpenClash 在数据包转发与系统网络栈拦截上提供了多种工作模式,选型直接决定了全屋网络的吞吐与稳定性。

工作模式 底层技术实现 硬件性能要求 最佳适用场景
Fake-IP (TUN 虚拟网卡) 内核劫持 DNS 请求并响应 198.18.0.0/15 保留地址 CPU 性能中等,x86 或 ARM 双核以上 绝大多数普通家庭与小微团队办公(首选推荐)
Fake-IP (TProxy 模式) 利用 Linux iptables/nftables 的 TProxy 模块接管 需路由器 Linux 内核支持完整 TProxy 扩展 追求极低延迟、游戏主机联机 NAT Type 优化的用户
Redir-Host 兼容模式 本地直接解析出真实 IP 后再进行路由比对 依赖外部抗污染 DNS,易受本地运营商污染 局域网内存在特定必须获取真实外部 IP 的工控设备
  1. 环境硬件要求
    • 建议选用搭载 Intel J4125、N5105、N100 处理器或更高规格的 x86 软路由,或者 NanoPi R2S/R4S/R5S、GL.iNet 等主流 ARM 路由硬件。
    • 路由器底层 OpenWrt 固件需基于 Linux 5.4 或更高内核构建。
  2. 下载与依赖安装
    • 访问 OpenClash 官方 GitHub Releases 页面,获取最新发布的 luci-app-openclash_*.ipk 安装包。
    • 通过 SSH 终端连接至软路由,或在 OpenWrt Web 界面中的“系统” -> “软件包”中上传并安装该 IPK。
    • 确保安装了核心依赖项 coreutils-nohup, bash, iptables-mod-tproxy, kmod-tun, curl
  3. Mihomo (Meta) 内核一键更新
    • 进入 OpenWrt 后台,点击“服务” -> “OpenClash”。
    • 切换至“插件设置” -> “版本更新”,在内核选择中指定 Mihomo (Clash.Meta)
    • 点击检查并下载最新内核,编译好的二进制将自动存入 /etc/openclash/core/ 目录。
  1. 在 OpenClash 控制面板中,切换至 “配置文件订阅” 选项卡。
  2. 点击底部的“添加”按钮。
  3. 填入配置名称,在“配置文件订阅地址”中粘贴机场后台提供的通用 Clash 订阅链接。
  4. 勾选“在线转换(仅在订阅格式不兼容时勾选)”,通常现代机场原生订阅可直接勾选“直接下载”。
  5. 将“自动更新”策略设为每周或每日特定闲时(如凌晨 04:00),避免在白天高峰期刷新导致网络短暂闪断。
  6. 保存并应用,随后在列表中点击“更新配置”,系统将拉取节点矩阵并写入配置文件。
  1. 切换至 OpenClash “运行模式” 页面。
  2. 模式推荐选择 Fake-IP (TUN 模式)
  3. 勾选“启用内核 TCP 并发”与“本地 DNS 劫持”,确保局域网所有客户端发往 53 端口的明文 DNS 解析均被收拢进内核进行防污染仲裁。
  4. 点击界面底部的 “应用配置”,系统后台将开始启动内核并配置防火墙 iptables 规则。
  5. 等待主界面顶部状态栏全部变为绿色“运行中”图标。
  6. 使用局域网内任意手机连接 Wi-Fi,访问海外知名测试站验证分流,确认国内应用依旧返回本地真实运营商 IP。
故障现象 潜在成因 处置手段
启动后显示内核未运行 内核二进制架构不匹配或缺少可执行权限 SSH 登录路由器,检查 /etc/openclash/core/clash_meta 是否具备 0755 执行权限
局域网设备国内网页打开极慢 Dnsmasq 与 OpenClash 发生 DNS 回环循环解析 检查 OpenWrt 网络接口设置,确保局域网网关与 DNS 指向软路由自身 IP
内存占用持续攀升甚至导致软路由死机 日志等级设为 Debug 导致内存盘 /tmp 被撑满 在插件设置中将日志等级降为 Error 或 Info,定期清理系统临时缓存