本文推荐设置为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 测试

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

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


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