先说结论,禁用不了,但能让 DHCP 的 IPv6 DNS 响应和 IPv4 DNS 一样的结果。
我在家用 Mac mini 和 Surge 以旁路由形式承载绝大部分设备的网络流量,并在 Asus 一个忘了那个版本的 86u 设备上配置成 DHCP 的默认网关。
有一天我开了 IPv6 的 passthrough,这时候发现没法用现有 Asus 的配置手段让他不要 DHCP 给出 IPv6 的 DNS Server,我只是要个 IPv6 地址而已。
研究了半天可以用 Asuswrt-Merlin 的 User scripts 功能来绕过。
首先在路由器系统设置页开启相关功能:

然后 ssh 到路由器上配置配置以下文件:
- /jffs/scripts/dnsmasq.postconf
#!/bin/sh
CONFIG=$1
source /usr/sbin/helper.sh
pc_replace "servers-file=/tmp/resolv.dnsmasq" "server=198.18.0.2" $CONFIG
其中的 198.18.0.2
可以按需求写你需要的 IP,我用 Surge 就写这个了。
然后配置正确的可执行权限:
chmod +x /jffs/scripts/dnsmasq.postconf
然后重启 dnsmasq 验证效果:
service restart_dnsmasq
cat /etc/dnsmasq.conf
如果看见 /etc/dnsmasq.conf
里的内容已经变化了就是生效了。
