Mihomo DNS 配置保姆级教程:解决延迟与泄露的终极方案
Mihomo DNS 配置保姆级教程:解决延迟与泄露的终极方案
不管是玩 NAS 还是折腾软路由,Mihomo(原 Clash Meta)凭借强大的性能和灵活的规则,几乎成了大家的必修课。但很多朋号新手入门时,往往只关注“节点选得好不好”,却忽略了“DNS 配”得对不对。
其实,DNS 配置才是网络体验的基石。配不好,轻则打开网页慢如蜗牛、游戏延迟爆炸,重则 DNS 泄露,不仅隐私全无,还可能被运营商骚扰。
今天就把 Mihomo 的 DNS 配置掰开了揉碎了讲一遍,希望能帮你彻底搞定这个“隐形杀手”。
一、 为什么 DNS 这么重要?
简单来说,互联网世界靠 IP 地址通信,而人类只记得域名。DNS 就是把域名翻译成 IP 的电话本。
- 访问速度:本地解析成功,直连飞快;解析慢,网页转圈半天。
- 分流准确性:很多规则是基于域名的,如果 DNS 解析错了(比如把谷歌解析到了腾讯的 IP),规则就失效了。
- 隐私与安全:防止 DNS 泄露可以保护你的真实 IP 和上网习惯不被追踪。
DNS 架构示意图:域名解析是网络通信的第一步
二、 核心配置参数详解
打开 Mihomo 的配置文件(通常是 config.yaml),找到 dns 段落。很多一键脚本生成的默认配置其实很简陋,建议大家手动微调。
1. 基础解析与监听
dns:
enable: true
listen: 0.0.0.0:53
ipv6: true # 是否解析 IPv6,一般建议 true,除非你的网络不支持
- listen:这是 DNS 监听端口。
0.0.0.0:53表示监听所有网卡的 53 端口。如果你在路由器上跑,这没问题;如果在电脑上跑且系统自带 DNS 服务(比如 systemd-resolved),为了避免端口冲突,建议改成1053之类的端口,然后在系统设置里手动指向它。 - ipv6:现在的网络基本都是双栈的,开启它能避免很多奇怪的连不上问题。
2. nameserver(默认解析器)
这是最重要的部分,处理所有未命中规则的流量,或者作为 fallback 的后备。
nameserver:
- 223.5.5.5
- 119.29.29.29
# 或者支持 DoH/DoT 的加密 DNS
# - https://doh.pub/dns-query
避坑指南:这里尽量填写国内公信力强的 DNS(如阿里、腾讯)。为什么?因为大多数国内服务直接访问是最快的,用国内 DNS 解析国内 IP,直连速度才拉得满。不要上来就全填 8.8.8.8,国内解析会慢半拍。
3. proxy-server-nameserver(代理解析器)
这是 Mihomo 强大的地方。专门用于解析“需要走代理的域名”的 DNS。
proxy-server-nameserver:
- https://1.1.1.1/dns-query # Cloudflare
- https://8.8.8.8/dns-query # Google
原理:当你访问 google.com 时,Mihomo 会自动用这一组 DNS(通过代理通道)去查询 IP。这样就能绕过 DNS 污染,拿到真实的 IP 地址,然后再通过代理节点上网。
Mihomo 配置界面参考:可视化配置更加直观
4. nameserver-policy(分流策略)
这是进阶玩家的神器,可以给不同的域名指定不同的 DNS 服务器。
nameserver-policy:
'geosite:cn': 223.5.5.5
'geosite:geolocation-!cn': https://1.1.1.1/dns-query
'+.internal.domain.com': 10.0.0.53 # 内网域名指定内网 DNS
- geosite:cn:所有在国内的域名,强制走国内 DNS 解析,保证速度。
- geosite:geolocation-!cn:所有非国内域名,强制走代理 DNS 解析,保证准确。
- 这样配置后,结合下面的
enhanced-mode,体验会非常丝滑。
5. enhanced-mode(增强模式)
Mihomo 提供了三种模式:fake-ip、redir-host 和 mapping。
- fake-ip(推荐):
- 优点:速度最快。它会返回一个虚假的 IP 给客户端,流量发出时再替换成真实 IP。这能极大地减少握手延迟。
- 缺点:某些老古董软件或网银可能会因为 IP 变了而报警。
- redir-host(兼容):
- 优点:兼容性最好,拿回来真实的 IP。
- 缺点:每次都要等 DNS 解析完成才开始连接,会有轻微延迟。
一般家用或折腾脚本,推荐 fake-ip,配合上面的策略基本无解。
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '+.local'
# 过滤掉局域网和本地域名,防止内网设备失联
三、 常见问题与解决方案
1. 为什么提示 DNS 泄露?
如果你在浏览器访问 ip.sb 或类似网站,显示的 DNS 是你运营商的 IP,而不是节点的 IP。
- 原因:系统 DNS 设置没生效,或者 App 使用了硬编码 DNS(没走系统代理)。
- 解决:确保 Mihomo 开启了 Tun 模式(透明代理)。Tun 模式会接管系统的所有流量,包括 DNS 包,只要上面的
fake-ip-filter配置得当,基本能杜绝泄露。
2. 苹果全家桶 AirDrop / 网盘无法连接?
- 原因:苹果设备依赖 mDNS(组播 DNS)进行局域网发现,强制走代理就断了。
- 解决:在
fake-ip-filter中加入*.local和局域网网段,或者在路由规则里放行所有局域网 IP 段(如 192.168.x.x, 10.x.x.x)。
3. 某些游戏登不上或加速器失效?
- 原因:游戏客户端讨厌
fake-ip,因为它发现 IP 每次都在变。 - 解决:将游戏进程或者对应的游戏域名,通过
nameserver-policy单独指定为模式,或者直接在fake-ip-filter里加上该游戏域名。
四、 总结一套“万能模板”
最后,给懒得研究细节的朋友一套相对通用、兼顾速度与准确的模板配置片段(基于 Tun 模式):
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- 'localhost.ptlogin2.qq.com'
- '+.srv.nintendo.net'
- '+.stun.playstation.net'
- '+.msftncsi.com'
- '+.msftconnecttest.com'
- '+.xboxlive.com'
nameserver:
- 223.5.5.5
- 119.29.29.29
proxy-server-nameserver:
- https://dns.alidns.com/dns-query
- https://1.1.1.1/dns-query
nameserver-policy:
'geosite:cn': [223.5.5.5, 119.29.29.29]
'geosite:geolocation-!cn': [https://1.1.1.1/dns-query, https://8.8.8.8/dns-query]
'+:.internal': [10.0.0.1] # 你的内网 DNS
配置这东西,没有绝对的最优,只有最适合你网络环境的。遇到问题多看 Log,看看到底是哪个域名解析错了,对症下药才是正道。
如果你在配置过程中遇到了什么奇怪的问题,欢迎在评论区交流,一起把这块硬骨头啃下来!
评论已关闭