OpenWrt 插件 OpenClash 推荐配置指南

发布于 2025-05-18 00:00 3071 字 16 min read

从零开始玩转 OpenWrt 2026:进阶网络架构与 Nikki 极速配置指南2026 自建节点实战:Xray VLESS-Vision-REALITY 部署指南AI 角色扮演进阶指南:从 SillyTavern 部署到 Telegram 接入从 WordPress 到 Astro 迁移记录ImmortalWrt固件overlay扩容安装指南基于mihomo内核的OpenWrt插件Nikki推荐yaml配置OpenWrt 插件 Passwall 推荐设置指南Cloudflare简易使用指南WordPress 网站向 Jekyll 静态博客迁移全记录OpenWrt 插件 OpenClash 推荐配置指南OpenWrt插件Passwall开启ipv6推荐配置OpenWrt插件Passwall推荐配置指南OpenWrt桥接后访问光猫方法PVE下快速更新OpenWrt固件方法群晖 Docker 容器版 Emby 添加弹弹 play 弹幕实战群晖 NAS 常用 Docker Compose 项目部署汇总群晖 Docker 开启 IPv6 双栈与 OpenWrt 协同配置指南软路由刷 PVE 并安装 OpenWrt 折腾记录群晖开启 macvlan 网络并通过 compose 命令安装 docker 指定 ip家庭网络布局:玩转 PT 与 Docker macvlan 避坑指南在本地运行 docker 连接 api 更稳定使用 chatGPT 服务网站添加石蒜模拟器OpenWrt建议设置(个人备份)家庭网络布局:群晖 VMM 虚拟机安装 OpenWrt 旁路由实战群晖种草教程——从玩机到佛系(自用备份版)一加3T手机刷机及安卓必备系统优化软件推荐利用 phpMyAdmin 指令将 WordPress 网站快速 HTTPS 化利用 Docker 快速安装 Aria2 + AriaNg 教程给 WordPress、Typecho、Emlog 等博客网站添加鼠标点击文字特效Windows 10 快捷方式小箭头去除与恢复指南自动化备份指南:利用 Dropbox Uploader 实现网站数据与 SQL 数据库同步Linux学习笔记(二)Linux学习笔记(一)建站之旅其一:一些想法建站之旅其三:多次尝试与一次挫败建站之旅其二:从 VPS 科学上网到自建站的萌芽建站之旅其四:常用命令与参考资料汇总
本文分享了 OpenWrt 插件 OpenClash 的深度配置方案,重点介绍了 Redir-Host 兼容模式下的 IPv6 优化、SmartDNS 联动、DNS 防泄漏以及去广告脚本的实现,助你打造兼顾速度与隐私的上网环境。

本文推荐设置为Redir-Host兼容模式,默认开启 ipv6,规避 BT、PT 流量走代理,以及 dns 防泄漏,去广告(可选)。

如需Fake-IP增强模式的设置,可参考这里进行设置,话不多说我们开始吧~

本文大部分配置参考的上述链接文章的配置,只是针对Redir-Host兼容模式做了些许修改,并建议搭配 smartdns 做到无需机场节点支持 ipv6,同样可以解析 ipv6 和防泄漏的效果。

一、准备工作

1.1 关闭 DNS 重定向功能

位于 网络 > DHCP/DNS 页面中,务必关闭。

1.2 设置 IPv6

参考这里

这里提一下比较重要的几个点——
(1)关闭 Dnsmasq 的“过滤 IPv6 AAAA 记录”功能
(2)WAN 口设置 IPv6 地址(推荐自动创建)
① 不需要新建 WAN6,已有的 WAN6 接口要删除
② 在 WAN 口的高级设置中,开启 IPv6 的选项,并勾选使用运行商通告的 DNS
③ 禁用IPv6 分配长度
④ 启用委托 IPv6 前缀(启用的话 lan 是没有 IPv6 地址的)
IPv6 首选项不要填,填了会获取不到地址的
⑥ 按图设置

⑦ 在 WAN 接口的 DHCP 中检查设置,确保 DHCP > IPv6 设置已经关闭

⑧ 保存并应用设置后,你的接口界面中应该会出现一个虚拟的 wan_ 6接口。注意此接口是无法编辑设置的。确认红框中的 IPv6-PD 地址,获取到了这个地址才能进行下一步操作

(3)LAN 口设置下发 IPv6 地址

“委托 IPv6 前缀”允许下级设备再划分子网,按需勾选

② 参考这里的配置,设置 LAN 口的 IPv6 网络地址分配服务,让局域网设备可以取得 IPv6 地址

在 LAN > 高级设置 > IPv6 后缀 中填入 eui64

③ 禁止 OpenWrt 通告 IPv6 地址的 DNS

说个题外话,IPV6 如何正确配置端口转发,可以参考这里的配置,在 网络 - 防火墙 - 通信规则 里,高级设置里 地址族限制 设置仅 ipv6。
目标地址的格式为——

::42:c0ff:fea8:202/::ffff:ffff:ffff:ffff

前四位为你转发目标地址 公网和 LAN 口下发的 ipv6 地址相同 的后四位,/后面的内容是固定的。

1.3 设置 SmartDNS 服务器

自动设置 Dnsmasq 取消勾选,分别设置两组 dns,如 CN 和 GW,上游服务器这里,CN 组设置国内的任意服务器,GW 设置国外的,并在高级设置中勾选“从默认组中排除”和“使用代理”。图中的 dns 如下(打码的是运营商 dns)——

https://doh.pub/dns-query
https://dns.alidns.com/dns-query
tls://8.8.8.8
tls://1.1.1.1
https://1.1.1.1/dns-query
https://dns.google/dns-query

高级设置部分如下,勾选 IPV6 服务器、绑定到设备、双栈 IP 优选、域名预加载、缓存过期服务、缓存大小(建议设置 20000 以上)、持久化缓存、解析本地主机名、停用 HTTPS 记录解析、域名 TTL 最小值(设置为 5)。

第二 DNS 服务器设置如下,设置好服务器组为 GW,勾选跳过测速、跳过 Cache 即可。

代理服务器设置格式,如 socks5://Clash

@127.0.0.1:7891,用户和密码在 openclash 的覆写设置的最下面的“设置 SOCKS5/HTTP(S) 认证信息”中,ip 填本地地址 127.0.0.1 即可,端口是 openclash 的覆写设置常规设置中的“SOCKS5 代理端口”。

二、OpenClash 插件设置

2.1 模式设置

设置模式为Redir-Host兼容模式后,不用做任何修改。

2.2 流量控制

*仅允许常用端口流量设置为默认常用端口,并开启绕过中国大陆。

如果你平时要使用 Google Play,请在 流量控制 > 绕过指定区域 IPv4 黑名单中添加如下四条域名:

services.googleapis.cn
googleapis.cn
xn--ngstr-lra8j.com
clientservices.googleapis.com

2.3 DNS 设置

设置使用 Dnsmasq 进行转发。

2.4 流媒体增强(可选)

此页是可选功能,非必要不使用。建议跳过,或者参考这里进行设置。

2.5 黑白名单

如果开启了 ipv6,建议使用“不走代理的局域网设备 Mac”来指定局域网设备直连或者代理。
如果只有 ipv4,那么直接设置“不走代理的局域网设备 IP”就行了,如“192.168.2.5”。

2.6 IPv6 设置

只要你拥有本地公网 ipv6 地址,即使你的节点不支持 IPv6 出站,请同样开启“IPv6 流量代理”和“允许 IPv6 类型 DNS 解析”,并设置绕过中国大陆。

如果你启用了此处的 IPv6 功能,并且平时要使用 Google Play,请绕过指定区域 IPv6 黑名单中添加如下四条域名:

services.googleapis.cn
googleapis.cn
xn--ngstr-lra8j.com
clientservices.googleapis.com

2.7 GEO 数据库订阅

三个全部勾选定时更新,频率建议设置如——每周一 3:00、4:00、5:00 这样。
更新时间务必错开,几个数据库、白名单以及订阅更新不要选择同一更新时间。
设置完后点击页面下方的“保存设置”,然后顺手把三个“检查并更新”按钮都点一遍。
在 OpenClash 的“运行日志”页面可以查看更新结果。

2.8 大陆白名单订阅

同样的,勾选自动更新,如每周一 6:00。
注意,每次白名单更新成功后 OpenClash 会自动重启,建议设置更新时间为不用网的时候,比如凌晨。
设置完后点击页面下方的“保存设置”,然后顺手把“检查并更新”按钮点一下。
在 OpenClash 的“运行日志”页面可以查看更新结果。

2.9 开发者选项(去广告,可选)

参考这篇教程进行设置即可。

推荐使用“原版 adblockfilters 去广告规则 + Github 520 加速规则”

# ==============以下是广告过滤规则拉取脚本=================
(
    VERSION="1.4"
    MAX_WAIT_TIME=30
    WAIT_INTERVAL=2
    elapsed_time=0

    if /etc/init.d/openclash status | grep -q "Syntax:"; then
        LOG_OUT "[广告过滤规则拉取脚本] 当前版本 $VERSION,正在检测 OpenClash 运行状态..."
        LOG_OUT "[广告过滤规则拉取脚本] 等待 10 秒以确保 OpenClash 已启动..."
        sleep 10
    else
        LOG_OUT "[广告过滤规则拉取脚本] 当前版本 $VERSION,正在检测 OpenClash 运行状态..."
        while ! /etc/init.d/openclash status | grep -q "running"; do
            if [ $elapsed_time -ge $MAX_WAIT_TIME ]; then
                LOG_OUT "[广告过滤规则拉取脚本] 未能在 30 秒内检测到 OpenClash 运行状态,脚本已停止运行..."
                exit 1
            fi
            sleep $WAIT_INTERVAL
            elapsed_time=$((elapsed_time + WAIT_INTERVAL))
        done
        LOG_OUT "[广告过滤规则拉取脚本] 检测到 OpenClash 正在运行,10 秒后开始拉取规则..."
        sleep 10
    fi

    LOG_OUT "[广告过滤规则拉取脚本] 开始检测 dnsmasq 规则目录..."
    UCI_OUTPUT=$(uci show dhcp.@dnsmasq[0] 2>/dev/null)

    if echo "$UCI_OUTPUT" | grep -qE 'cfg0-9a-f'; then
        HASH_ID=$(echo "$UCI_OUTPUT" | grep -oE 'cfg0-9a-f' | head -1)
        TARGET_DIR="/tmp/dnsmasq.${HASH_ID}.d"
        LOG_OUT "[广告过滤规则拉取脚本] 当前 dnsmasq 规则目录: $TARGET_DIR"
    elif echo "$UCI_OUTPUT" | grep -qE '@dnsmasq\[[0-9]+\]'; then
        TARGET_DIR="/tmp/dnsmasq.d"
        LOG_OUT "[广告过滤规则拉取脚本] 当前dnsmasq 规则目录: $TARGET_DIR"
    else
        TARGET_DIR=$(find /tmp -maxdepth 1 -type d -name "dnsmasq.*.d" | head -n 1)
        if [ -z "$TARGET_DIR" ]; then
            LOG_OUT "[广告过滤规则拉取脚本] 错误:未找到有效的 dnsmasq 规则目录,脚本已停止!"
            exit 1
        fi
        LOG_OUT "[广告过滤规则拉取脚本] 检测失败,使用已存在的 dnsmasq 规则目录: $TARGET_DIR"
    fi

    if [ ! -d "$TARGET_DIR" ]; then
        mkdir -p "$TARGET_DIR"
    fi

    LOG_OUT "[广告过滤规则拉取脚本] 清除已有规则…"
    rm -f "$TARGET_DIR"/*ad*.conf
    sed -i '/# AWAvenue-Ads-Rule Start/,/# AWAvenue-Ads-Rule End/d' /etc/hosts
    sed -i '/# GitHub520 Host Start/,/# GitHub520 Host End/d' /etc/hosts

    LOG_OUT "[广告过滤规则拉取脚本] 拉取最新的 adblockfilters 广告过滤规则,规则体积较大,请耐心等候…"
    curl -sS -L -4 --retry 5 --retry-delay 1 "https://gh-proxy.com/https://raw.githubusercontent.com/217heidai/adblockfilters/main/rules/adblockdnsmasq.txt" -o "$TARGET_DIR/adblockfilters-for-dnsmasq.conf" >/dev/null 2>/tmp/adblockfilters-curl.log
    CURL_EXIT=$?

    if [ $CURL_EXIT -eq 0 ]; then
        LOG_OUT "[广告过滤规则拉取脚本] adblockfilters 规则拉取成功!保存路径:${TARGET_DIR}/adblockfilters-for-dnsmasq.conf"
    else
        LOG_OUT "[广告过滤规则拉取脚本] adblockfilters 规则拉取失败 (错误码:$CURL_EXIT),查看 /tmp/adblockfilters-curl.log 获取详细信息。"
        echo "CURL Exit Code: $CURL_EXIT" >> /tmp/adblockfilters-curl.log
    fi

    LOG_OUT "[广告过滤规则拉取脚本] 拉取最新的 GitHub520 加速规则…"
    curl -sS -L -4 --retry 5 --retry-delay 1 "https://raw.hellogithub.com/hosts" >> /etc/hosts >/dev/null 2>/tmp/github520-curl.log
    CURL_EXIT_GH=$?

    if [ $CURL_EXIT_GH -eq 0 ]; then
        LOG_OUT "[广告过滤规则拉取脚本] GitHub520 加速规则拉取成功!已追加到 /etc/hosts 文件中。"
    else
        LOG_OUT "[广告过滤规则拉取脚本] GitHub520 加速规则拉取失败 (错误码:$CURL_EXIT_GH),查看 /tmp/github520-curl.log 获取详细信息。"
        echo "CURL Exit Code: $CURL_EXIT_GH" >> /tmp/github520-curl.log
    fi

    sed -i '/^$/d' /etc/hosts
    sed -i '/!/d' /etc/hosts

    LOG_OUT "[广告过滤规则拉取脚本] 重新加载 dnsmasq 服务以应用规则…"
    /etc/init.d/dnsmasq stop
    /etc/init.d/dnsmasq start
    LOG_OUT "[广告过滤规则拉取脚本] 脚本运行完毕!"

) &
# ==============广告过滤规则拉取脚本结束==============

三、OpenClash 覆写设置

3.1 DNS 设置

启用“自定义上游 DNS 服务器”,并禁用下方的 Fallback 和 Default-NameServer 下的所有服务器

PS:fallback 就是造成域名偶尔解析失败和 dns 泄露的原因,迟早会被淘汰掉。

Nameserver-Policy 设置如下(指向 smartdns 中的第一 DNS 服务器)——

"geosite:cn,private,apple":
  - 127.0.0.1:6053

Nameserver 只保留 smartdns 中的“第二 DNS 服务器”的地址,如我这里是 smartdns 里的 6553,设置如下图所示——

3.2 Meta 设置

建议启用 GeoIP Dat 版数据库选项,Geodata 数据加载方式建议禁用,*启用流量(域名)探测和探测(嗅探)纯 IP 连接为必选项,其他设置可以参考图片。

3.3 规则设置

分上下两个
上面(优先匹配)——在订阅的 yaml 默认规则之前执行
下面(候补匹配) ——在订阅的 yaml 默认规则之后执行
格式参考如下,请务必带 Emoji 和空格一起填写,建议直接在 yacd 复制即可。(我这里是 Emoji 和 wordpress 代码编辑器冲突了,无法保存,故删除)

rules:
- DOMAIN-SUFFIX,daydream.dmhy.best,DIRECT
- DOMAIN-SUFFIX,probe.skyey2.com,DIRECT
- DOMAIN-SUFFIX,jpopsuki.eu,DIRECT
- DOMAIN-SUFFIX,hdfans.org,手动选择
- DOMAIN-SUFFIX,pt.btschool.club,DIRECT
- DOMAIN-SUFFIX,t.audiences.me,手动选择
- DOMAIN-SUFFIX,tracker.cinefiles.info,手动选择
- DOMAIN-SUFFIX,tracker.m-team.cc,DIRECT
- DOMAIN-SUFFIX,ipv6-tracker.m-team.cc,DIRECT
- DOMAIN-SUFFIX,tracker.52dic.vip,DIRECT
- DOMAIN-SUFFIX,acg.rip,手动选择

四、OpenClash 配置订阅

具体参考这里的方案,不过我是设置的每周一 7:00 更新,摘录如下——

在页面中设置一个更新时间,因为本方案中使用的订阅模板使用了大量的第三方规则,而这些规则中的大部分是每天更新的,因此建议同样设置订阅更新时间为每天更新。 OpenClash 在更新订阅的过程中会短暂重启,所以建议设置在不用网的时间段内更新,比如凌晨。 注意:开启“绕过中国大陆”后,OpenClash 重启不会影响国内连接。 设置好后点击“保存配置”,然后点击“添加”按钮,添加一个订阅。

我这里就无脑选 Custom_Clash.ini 了——

本项目的标准订阅转换模板,适配所有需求,推荐使用。
无DNS泄露,可通过泄露检测网站的测试。
使用本项目推荐机场建议直接使用该模板,复刻维护者的使用体验。
https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/main/cfg/Custom_Clash.ini

另外,如果的节点不包括 vless/hy2 等较新的节点类型,直接使用默认服务进行转化即可。 如果使用了 vless/hy2 节点,可以在“订阅转换服务地址”中填入下方地址即可。(PS:2025.05 实测不是很稳定,容易连接失败)

https://api.asailor.org/sub

五、检验结果

5.1 检查 DNS 是否存在泄漏

正常情况下,页面上方应当出现你的机场节点的 IPv4 和 IPv6 地址(我这里机场节点没有,所以为空),页面下方无中国大陆 DNS 出现即为 DNS 无泄漏情况。

同样的,看 DNS Leak Test 是否出现中国大陆 DNS,没有则为 DNS 无泄漏。

5.2 检查 IPv6

  • 国内 IPv6 测试

国内站点:https://testipv6.cn/

  • 国外 IPv6 测试

国外站点:http://test-ipv6.com/

如果节点不支持 ipv6,显示如下也是正常的,不影响国内网站的 ipv6 访问和解析。

恭喜你,折腾完毕,至此,就可以愉快冲浪了~

喜欢的话,留下你的评论吧~