路由器方案的最大优势是覆盖全面:所有接入设备自动生效, 缺点是对硬件资源敏感,配置时需要更多取舍。

硬件与空间评估

项目最低要求建议
内存128 MB256 MB 以上更从容
Flash 可用空间30 MB把规则与配置放外置存储
CPU单核 580 MHz多核可支撑更高吞吐
架构mipsle / arm64arm64 性能明显更好
# 查看设备信息
cat /proc/cpuinfo | grep -E 'model|Processor'
free -m
df -h /overlay

选择内核架构

# 查看架构
uname -m
# mips    → mips-softfloat
# mipsle  → mipsle-softfloat
# aarch64 → arm64
# x86_64  → amd64

# 注意硬浮点与软浮点的区别,选错会直接无法运行
opkg print-architecture

最常见的启动失败原因就是架构选错。下载前先执行 opkg print-architecture,它会直接告诉你该用哪个版本。

部署与权限

# 下载并放入可执行目录
cd /tmp
wget -O clash-meta.gz https://example.com/clash-meta-linux-mipsle-softfloat.gz
gunzip clash-meta.gz
chmod +x clash-meta
mv clash-meta /usr/bin/

# 配置目录放在持久化分区
mkdir -p /etc/clash
cp config.yaml /etc/clash/

# 手动验证
clash-meta -d /etc/clash -t

配置透明代理

路由器上通常用 TUN 或 TProxy 接管流量,TProxy 在资源受限设备上表现更好。

# 路由器场景的基础配置要点
mixed-port: 7890
allow-lan: false              # 路由器通常接管全部流量,不需要再开放
mode: rule
log-level: warning            # 路由设备上降低日志等级
ipv6: false                   # 无 IPv6 环境时关闭,省资源

tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

如果使用 TProxy 方案,需要额外配置防火墙规则,把 TCP 与 UDP 流量重定向到内核监听端口。

开机自启与持久化

OpenWrt 的 /tmp 重启后会清空,因此可执行文件与配置都必须放在持久化目录。

cat > /etc/init.d/clash <<'EOF'
#!/bin/sh /etc/rc.common

START=99
STOP=10
USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/clash-meta -d /etc/clash
    procd_set_param respawn 3600 5 5
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param limits nofile="65536 65536"
    procd_close_instance
}
EOF

chmod +x /etc/init.d/clash
/etc/init.d/clash enable
/etc/init.d/clash start
/etc/init.d/clash status

常见坑与优化

  • 磁盘写满 —— 日志等级过高会持续写盘,务必设为 warning
  • DNS 环路 —— 内核的上游 DNS 不要指向路由器自己,否则解析死循环;
  • 重启丢配置 —— 配置文件放在 /etc/clash 而不是 /tmp
  • 规则集过大 —— 大规则集会吃光内存,建议精简或改为线上按需加载;
  • 大流量下 CPU 打满 —— 关闭不必要的解密开销,或升级到 arm64 设备。

改完防火墙或路由规则后,建议保留一条带外管理通道(如直连网线或串口),避免配置失误后无法访问路由器。


如果更希望容器化部署,见 Docker 容器化部署实践

进阶 ← 返回教程列表