最后更新于:2026年07月

OpenWrt 路由器代理全配置
OpenWrt / iStoreOS 路由器代理全配置指南

用一台路由器搞定家里所有设备的科学上网——手机、电脑、电视盒子、游戏机,甚至智能家居设备都能自动走代理,不用每个设备单独配置,这就是软路由 + 透明代理的魅力。

OpenWrt 是目前最流行的开源路由器系统,配合 PassWall、SSRPlus、OpenClash 等插件,可以实现媲美专业级的网络代理体验。本文将带你从零开始,完整走一遍从固件选型、刷机、插件安装到透明代理、DNS 智能分流的全过程。


🧭 方案选型:从零到一

为什么选择 OpenWrt 做代理?

PLAINTEXT
┌──────────────────────────────────────────────────────────┐
│            路由器级代理 vs 客户端级代理                  │
│                                                          │
│  客户端级代理(Clash / v2rayN 等)                       │
│  ✅ 灵活,可随时切换                                     │
│  ✅ 精细规则控制                                         │
│  ❌ 每个设备都要配置                                     │
│  ❌ 部分设备不支持(电视盒、游戏机)                     │
│                                                          │
│  路由器级代理(OpenWrt 透明代理)                        │
│  ✅ 所有设备自动生效,无需单独配置                       │
│  ✅ 支持任意联网设备(手机/电脑/TV/游戏机/IoT)          │
│  ✅ 省电(不用开着电脑)                                 │
│  ✅ 全家共享,一台搞定                                   │
│  ❌ 硬件投入(需要软路由或刷固件的路由器)                │
│  ❌ 配置相对复杂                                         │
└──────────────────────────────────────────────────────────┘

硬件方案推荐

方案价格性能适用场景
二手 x86 小主机200-500 元⭐⭐⭐⭐⭐追求极致性能,多拨/虚拟化
瑞芯微 ARM 盒子100-300 元⭐⭐⭐⭐性价比最高,千兆足够
小米 / 红米路由器100-400 元⭐⭐⭐入门首选,刷机方便
硬路由刷机50-200 元⭐⭐轻度使用,老路由器利用

入门推荐: 红米 AX6000 / AX3000T(刷机简单,性能不错) 性能推荐: N5105 / J4125 小主机(千兆跑满,余量充足)

固件选型

PLAINTEXT
主流 OpenWrt 衍生固件对比:

┌─────────────────┬──────────┬───────────┬──────────────┐
│ 固件            │ 易用性   │ 功能丰富度 │ 推荐指数     │
├─────────────────┼──────────┼───────────┼──────────────┤
│ iStoreOS        │ ⭐⭐⭐⭐⭐│ ⭐⭐⭐⭐   │ ⭐⭐⭐⭐⭐     │
│ ImmortalWrt     │ ⭐⭐⭐⭐  │ ⭐⭐⭐⭐⭐  │ ⭐⭐⭐⭐      │
│ OpenWrt 官方    │ ⭐⭐     │ ⭐⭐⭐⭐⭐  │ ⭐⭐⭐        │
│ Lean 大雕版     │ ⭐⭐⭐   │ ⭐⭐⭐⭐⭐  │ ⭐⭐⭐⭐      │
│ 官方源码编译     │ ⭐       │ ⭐⭐⭐⭐⭐  │ ⭐⭐⭐        │
└─────────────────┴──────────┴───────────┴──────────────┘

新手推荐:iStoreOS(界面友好,软件商店一站式安装)
进阶推荐:ImmortalWrt / Lean(插件多,功能全)

代理插件选型

插件支持协议易用性性能推荐
PassWallVLESS/VMess/Trojan/SS/SSR/Hysteria/TUIC⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
SSRPlus大部分协议⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
OpenClash全部协议(Clash 内核)⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
mihomoTProxyClash Meta 内核⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

新手推荐:PassWall(设置简单,稳定够用) 进阶推荐:OpenClash / mihomoTProxy(规则更灵活,功能更强)


📥 第一步:固件刷写

iStoreOS 刷写(新手推荐)

1. 下载固件

2. 通过 Web 界面刷入(原厂固件)

PLAINTEXT
1. 用网线连接路由器 LAN 口和电脑
2. 电脑设置为自动获取 IP
3. 浏览器访问路由器后台(如 192.168.31.1)
4. 找到「系统升级」或「固件升级」
5. 选择下载好的 iStoreOS 固件
6. 点击升级,等待 3-5 分钟
7. 路由器重启完成后,访问 192.168.100.1

3. 通过 Breed / U-Boot 刷入(救砖)

PLAINTEXT
1. 下载 Breed 固件(如果没有,需要先刷入)
2. 按住 reset 键通电,保持 10 秒
3. 电脑访问 192.168.1.1
4. 选择固件更新
5. 上传 iStoreOS 固件
6. 点击升级,等待完成

x86 小主机刷写

使用写盘工具:

BASH
# Windows: 使用 Rufus 或 balenaEtcher
# 1. 下载固件(.img.gz 格式)
# 2. 插入 U 盘
# 3. 打开 Rufus,选择固件和 U 盘
# 4. 点击开始
# 5. 等待完成

# Linux: 使用 dd 命令
gunzip -d openwrt-x86-64-generic-squashfs-combined-efi.img.gz
sudo dd if=openwrt-x86-64-generic-squashfs-combined-efi.img \
  of=/dev/sdb bs=4M status=progress

# macOS: 使用 dd 或 balenaEtcher
diskutil list
sudo dd if=openwrt.img of=/dev/rdisk2 bs=4m

初始设置

PLAINTEXT
刷写完成后:

1. 网线连接 LAN 口
2. 浏览器访问 http://192.168.100.1
   (iStoreOS 默认 IP 是 192.168.100.1)
   (OpenWrt 默认 IP 是 192.168.1.1)

3. 设置密码
   用户名:root
   密码:自己设置强密码

4. 配置 WAN 口上网
   - 如果是光猫拨号:设置 PPPoE
   - 如果是上级路由:设置 DHCP 客户端

5. 测试上网
   ping baidu.com

🔌 第二步:安装代理插件

iStoreOS 软件商店

PLAINTEXT
操作步骤:

1. 登录后台 → 左侧「iStore」
2. 点击「软件包」
3. 搜索插件名称:
   - passwall
   - luci-app-passwall
   - luci-i18n-passwall-zh-cn

4. 点击「安装」
5. 等待安装完成
6. 菜单中出现「服务」→「PassWall」

命令行安装

BASH
# 更新软件源
opkg update

# 安装 PassWall
opkg install luci-app-passwall luci-i18n-passwall-zh-cn

# 安装 OpenClash
opkg install luci-app-openclash luci-i18n-openclash-zh-cn

# 安装依赖(如果需要)
opkg install coreutils-nohup bash curl dnsmasq-full ipset iptables-mod-tproxy

# 验证安装
ls /etc/config/passwall

手动安装 IPK 包

BASH
# 下载 IPK 包
wget https://github.com/xiaorouji/openwrt-passwall/releases/download/xxx/luci-app-passwall_x.x.x.ipk

# 安装
opkg install luci-app-passwall_x.x.x.ipk

# 如果依赖缺失
opkg install --force-depends luci-app-passwall_x.x.x.ipk
# 然后手动补全依赖

# 重启服务
/etc/init.d/passwall restart

⚙️ 第三步:PassWall 基础配置

添加节点

PLAINTEXT
PassWall → 节点列表 → 添加

1. 选择协议类型(VLESS / Trojan / Shadowsocks 等)
2. 填写节点信息:
   - 别名:自定义名称
   - 地址:服务器 IP 或域名
   - 端口:代理端口
   - UUID / 密码:根据协议填写
   - 传输协议:WS / gRPC / TCP 等
   - TLS:开启(如果需要)
3. 保存并应用

订阅链接导入

PLAINTEXT
PassWall → 节点订阅 → 添加

1. 填写订阅名称
2. 粘贴订阅链接
3. 选择节点过滤规则(可选)
4. 保存并应用
5. 点击「手动更新」
6. 查看节点列表,确认节点已导入

主服务配置

PLAINTEXT
PassWall → 基本设置

开启:
□ 启用主开关(勾选)

运行模式:
- 路由模式(推荐):根据规则分流
- 全局模式:所有流量走代理
- 绕过大陆模式:国内直连,国外代理

TCP 节点:选择默认节点或订阅
UDP 节点:选择默认节点(通常和 TCP 一样)

DNS 设置:
- 分流方式:chinadns-ng / dns2socks / v2ray 自带
- 推荐:chinadns-ng(性能好,分流准)

🌐 第四步:透明代理与 DNS 分流

什么是透明代理?

PLAINTEXT
传统代理(需要客户端):

  浏览器 → 代理客户端 → 代理服务器 → 目标网站
     ↑
  需要配置代理地址

透明代理(路由器级):

  设备 → 路由器(自动劫持流量) → 代理服务器 → 目标网站
     ↑
  完全无感,不需要任何设置
  所有联网设备自动生效

TPROXY 模式(推荐)

PassWall 支持多种透明代理模式,其中 TPROXY 性能最好:

PLAINTEXT
PassWall → 高级设置

透明代理:
  - 模式:TPROXY(推荐)
  - 其他模式:REDIRECT / TUN

TPROXY vs REDIRECT:
  - TPROXY:支持 UDP,性能更好(推荐)
  - REDIRECT:只支持 TCP,兼容性好

DNS 智能分流配置

DNS 是透明代理的灵魂——配置不好会导致解析污染和速度慢。

推荐配置方案:

PLAINTEXT
PassWall → DNS 设置

DNS 模式:
  - chinadns-ng(推荐,性能好)
  - dns2socks
  - v2ray 自带

国内 DNS:
  - 223.5.5.5(阿里)
  - 119.29.29.29(腾讯)
  - 运营商 DNS(延迟最低)

国外 DNS:
  - 8.8.8.8(Google)
  - 1.1.1.1(Cloudflare)
  - 代理节点自带 DNS

分流规则:
  - 国内域名走国内 DNS
  - 国外域名走国外 DNS(通过代理)

chinadns-ng 配置详解

BASH
# chinadns-ng 工作原理

┌─────────────────────────────────────────────┐
│                                             │
│  DNS 请求 → chinadns-ng → 同时向两个 DNS 查询
│                 │                           │
│                 ├── 国内 DNS(直连)        │
│                 └── 国外 DNS(走代理)       │
│                                             │
│  根据返回结果判断:                         │
│  - 返回国内 IP → 使用国内 DNS 结果          │
│  - 返回国外 IP → 使用国外 DNS 结果          │
│                                             │
└─────────────────────────────────────────────┘

PassWall 中的 chinadns-ng 配置:

PLAINTEXT
PassWall → DNS 设置 → chinadns-ng

启用 chinadns-ng:开启
国内 DNS 服务器:223.5.5.5, 119.29.29.29
国外 DNS 服务器:8.8.8.8, 1.1.1.1
国内域名列表:默认
国外域名列表:默认

Fake IP 模式(OpenClash)

如果你用的是 OpenClash,推荐使用 Fake IP 模式:

PLAINTEXT
OpenClash → DNS 设置

运行模式:fake-ip

Fake IP 优势:
  ✅ DNS 解析最快(直接返回假 IP)
  ✅ 完全避免 DNS 泄漏
  ✅ 分流更精准
  ⚠️ 部分应用可能不兼容(较少)

🎯 第五步:路由规则与分流

分流模式选择

PLAINTEXT
PassWall → 运行模式

┌─────────────────────────────────────────────┐
│  绕过大陆地址列表模式(推荐)                │
│  - 国内 IP 和域名直连                       │
│  - 国外 IP 和域名走代理                     │
│  - 适合大多数用户                           │
├─────────────────────────────────────────────┤
│  全局模式                                   │
│  - 所有流量都走代理                         │
│  - 不推荐(浪费带宽,国内网站变慢)          │
├─────────────────────────────────────────────┤
│  游戏模式                                   │
│  - 游戏流量走代理,其他直连                 │
│  - 适合游戏玩家                             │
├─────────────────────────────────────────────┤
│  自定义规则                                 │
│  - 完全自定义分流规则                       │
│  - 适合进阶用户                             │
└─────────────────────────────────────────────┘

自定义分流规则

添加直连域名(不走代理):

PLAINTEXT
PassWall → 访问控制 → 直连域名列表

添加域名:
  - 国内常用网站
  - 银行网站
  - 视频网站(国内视频)

示例:
  baidu.com
  taobao.com
  alipay.com
  163.com

添加代理域名(必须走代理):

PLAINTEXT
PassWall → 访问控制 → 代理域名列表

添加域名:
  - 被墙的网站
  - 国外常用服务

示例:
  google.com
  youtube.com
  github.com
  twitter.com

黑名单 vs 白名单模式

PLAINTEXT
黑名单模式(默认):
  - 默认直连,只有列表中的走代理
  - 优点:国内网站不受影响
  - 缺点:新被墙的网站需要手动添加

白名单模式:
  - 默认走代理,只有列表中的直连
  - 优点:能访问所有国外网站
  - 缺点:国内网站也可能走代理,变慢
  - 适合:经常上国外网站的用户

📶 第六步:多节点管理与自动切换

节点订阅管理

PLAINTEXT
PassWall → 节点订阅

功能:
  - 添加多个订阅源
  - 设置自动更新周期(每小时/每天)
  - 节点去重、筛选
  - 自定义节点名

高级设置:
  - 节点筛选:按协议、端口、倍率筛选
  - 节点重命名:添加前缀、替换字符
  - 自动更新:定时拉取最新节点

自动测速与切换

OpenClash 的自动切换:

PLAINTEXT
OpenClash → 策略组

设置 url-test 策略组:
  - 测试 URL:http://www.gstatic.com/generate_204
  - 测试间隔:300 秒
  - 容忍度:50ms
  - 自动选择延迟最低的节点

PassWall 的负载均衡:

PLAINTEXT
PassWall → 负载均衡

启用负载均衡:
  - 选择多个节点
  - 分配权重
  - 按比例分配流量

自动故障转移

PLAINTEXT
当主节点不可用时,自动切换到备用节点

实现方式:
  1. OpenClash 的 fallback 策略组
  2. PassWall 的自动切换
  3. 自定义脚本 + 定时任务

推荐:使用 OpenClash 的 fallback 策略组

🚀 第七步:性能优化

硬件加速

PLAINTEXT
系统 → 软件包 → 安装:

- kmod-tcp-bbr(BBR 拥塞控制)
- kmod-ipt-offload(流量卸载)
- irqbalance(中断均衡)

启用 BBR:
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p

软件优化

PLAINTEXT
PassWall → 高级设置

性能相关:
  - 连接数:适当调大(如 65535)
  - 超时时间:合理设置
  - 并发连接:适当调整

DNS 缓存:
  - 增大缓存大小
  - 减少重复查询

内存优化

BASH
# 查看内存使用
free -h

# 清理缓存
echo 3 > /proc/sys/vm/drop_caches

# 调整 swappiness
echo "vm.swappiness = 10" >> /etc/sysctl.conf

# 关闭不需要的服务
/etc/init.d/uhttpd stop     # Web 服务器(如果不用)
/etc/init.d/odhcpd stop     # IPv6 DHCP(如果不用)

温度与功耗

PLAINTEXT
# 查看 CPU 温度
cat /sys/class/thermal/thermal_zone0/temp

# 添加散热片 / 风扇
# 降低 CPU 频率(节能模式)
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

🛠️ 第八步:高级功能

旁路由模式

PLAINTEXT
如果你不想替换主路由器,可以用旁路由模式:

  主路由器(192.168.1.1)
      │
      ├── 电脑 → 网关设为 192.168.1.2(旁路由)
      ├── 手机 → 网关设为 192.168.1.2
      └── 其他设备 → 直连主路由,不代理

配置步骤:
1. 关闭 OpenWrt 的 DHCP
2. OpenWrt LAN 口 IP 设为 192.168.1.2
3. 网关指向主路由 192.168.1.1
4. 需要代理的设备手动设置网关为 192.168.1.2

多拨与带宽叠加

PLAINTEXT
如果你的运营商支持多拨,可以叠加带宽:

安装 mwan3 或 nft-qos:
opkg install mwan3 luci-app-mwan3

配置多拨:
1. 创建多个 WAN 口
2. 每个 WAN 口单独拨号
3. mwan3 配置负载均衡
4. 测速验证

注意:
  - 不是所有运营商都支持多拨
  - 可能被检测并限制
  - 代理速度取决于节点带宽

IPv6 配置

PLAINTEXT
网络 → 接口 → WAN6 → 编辑

获取 IPv6:
  - DHCPv6 客户端
  - PPPoE(取决于运营商)

IPv6 代理:
  - PassWall / OpenClash 支持 IPv6 透明代理
  - 需要节点支持 IPv6
  - 或使用 NAT64/DNS64

推荐:保持 IPv6 开启,但代理走 IPv4

广告过滤

方案一:AdGuard Home(推荐)

BASH
# 安装 AdGuard Home
opkg install adguardhome

# 或使用 Docker(更简单)
docker run -d --name adguardhome \
  --restart unless-stopped \
  -v /opt/adguardhome/work:/opt/adguardhome/work \
  -v /opt/adguardhome/conf:/opt/adguardhome/conf \
  -p 53:53/tcp -p 53:53/udp \
  -p 3000:3000/tcp \
  adguard/adguardhome

# 配置浏览器或 DHCP 的 DNS 指向路由器

方案二:PassWall 自带广告过滤

PLAINTEXT
PassWall → 广告过滤

启用:开启
订阅:添加过滤规则列表

🔍 故障排查手册

问题 1:刷完固件后无法访问后台

BASH
# 检查电脑 IP
ipconfig /all   # Windows
ifconfig        # Linux/macOS

# 应该获取到 192.168.100.x 或 192.168.1.x

# 手动设置电脑 IP
# IP: 192.168.100.10
# 子网: 255.255.255.0
# 网关: 192.168.100.1

# 还是不行?
# - 检查网线是否插在 LAN 口(不是 WAN 口)
# - 尝试重置路由器(按住 reset 10 秒)
# - 重新刷固件

问题 2:配置代理后无法上网

PLAINTEXT
排查步骤:

1. 检查节点是否可用
   - 用手机单独测试节点
   - 确认节点配置正确

2. 检查 DNS 设置
   - nslookup google.com
   - 看是否能解析

3. 检查透明代理状态
   - PassWall → 运行状态
   - 看进程是否运行

4. 检查防火墙规则
   iptables -t nat -L PREROUTING -n
   # 应该能看到 PassWall 的规则

5. 查看日志
   - PassWall → 日志
   - /var/log/passwall.log

常见原因:
  - 节点配置错误
  - DNS 配置错误
  - 节点已失效
  - 防火墙规则冲突

问题 3:能上谷歌但国内网站变慢

PLAINTEXT
原因:国内域名走了代理

解决:
1. 确认模式是「绕过大陆」不是「全局」
2. 检查 chinadns-ng 是否正常工作
3. 检查国内 DNS 是否配置正确
4. 添加国内域名到直连列表
5. 检查 GFWList 是否更新

问题 4:DNS 泄漏

PLAINTEXT
测试:
  访问 https://browserleaks.com/dns
  看是否显示国内 DNS

解决:
  - 启用 Fake IP 模式(OpenClash)
  - 确保 chinadns-ng 正确配置
  - 国外 DNS 必须走代理通道
  - 检查 dnsmasq 配置

问题 5:某些 App 无法使用

PLAINTEXT
常见问题:
  - 某些 App 不走系统代理(银行 App 等)
  - UDP 流量处理问题
  - IPv6 优先级问题

解决:
  - 检查是否是 UDP 问题
    PassWall → 开启 UDP 转发
  - 临时关闭 IPv6 测试
  - 添加特定域名到代理/直连列表
  - 使用 TUN 模式(兼容性更好)

📋 完整部署检查清单

PLAINTEXT
硬件准备:
□ 选择合适的路由器/软路由
□ 准备刷固件工具(网线、电脑)
□ 下载对应型号固件

固件刷写:
□ 刷入 iStoreOS / ImmortalWrt
□ 能正常访问后台
□ 设置管理员密码

基础配置:
□ 配置 WAN 口上网(PPPoE / DHCP)
□ 配置 LAN 口 IP
□ 测试直连上网正常

插件安装:
□ 安装 PassWall / OpenClash
□ 安装中文语言包
□ 确认菜单中出现

代理配置:
□ 添加节点(手动 / 订阅)
□ 测试节点连通性
□ 开启透明代理
□ 选择运行模式(绕过大陆)

DNS 配置:
□ 配置 chinadns-ng / Fake IP
□ 设置国内 DNS
□ 设置国外 DNS
□ 测试 DNS 解析正常

分流规则:
□ 更新 GFWList / 大陆白名单
□ 添加自定义直连域名
□ 添加自定义代理域名
□ 测试国内外网站都正常

性能优化:
□ 启用 BBR
□ 调整连接数
□ 监控 CPU / 内存使用
□ 测试最大速度

高级功能:
□ 配置节点订阅自动更新
□ 设置自动切换 / 负载均衡
□ 配置广告过滤(可选)
□ 配置旁路由模式(可选)

安全加固:
□ 修改默认密码(强密码)
□ 关闭 SSH 密码登录(使用密钥)
□ 配置防火墙
□ 禁用不必要的服务

结语

OpenWrt 透明代理是目前最优雅的家庭科学上网解决方案——一次配置,全家受益。从硬件选型到固件刷写,从插件安装到智能分流,每一步都有其讲究。

总结要点:

推荐组合方案:

PLAINTEXT
入门用户:
  iStoreOS + PassWall + chinadns-ng + 绕过大陆模式

进阶用户:
  ImmortalWrt + OpenClash + Fake IP + 自定义规则

性能用户:
  x86 软路由 + mihomoTProxy + 混合规则 + 负载均衡

家庭用户:
  旁路由模式 + AdGuard Home + PassWall

记住:路由器是家庭网络的心脏,配置好它,全家上网体验都会提升一个档次。

愿你的家庭网络畅通无阻!🏠

版权声明

作者: 易邦

链接: https://blog.e8k.net/posts/openwrt-proxy-complete-guide/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。