Closed Magic989 closed 9 months ago
”定时自动更新 geosite.dat Country.mmdb geoip.dat“ +1
这是不启用 strict route 的预期行为,禁用智能多宿主名称解析在 Windows 10 之后不会起作用,可接受(但不完全可靠)的方法是阻止外部接口上的所有 UDP 53 端口流量。虽然会造成一些非期望的行为,strict route 被设计以 WFP 方式阻止 DNS 查询通过智能多宿主名称解析暴露给 ISP。如果不愿意启用 strict route,尝试把所有网络接口的 DNS 修改为公共 DNS。
这是不启用 strict route 的预期行为,禁用智能多宿主名称解析在 Windows 10 之后不会起作用,可接受(但不完全可靠)的方法是阻止外部接口上的所有 UDP 53 端口流量。虽然会造成一些非期望的行为,strict route 被设计以 WFP 方式阻止 DNS 查询通过智能多宿主名称解析暴露给 ISP。如果不愿意启用 strict route,尝试把所有网络接口的 DNS 修改为公共 DNS。
也就是说,禁用智能多宿主名称解析只对 IPv4 的 DNS 解析有效。如果设备有 IPv6 地址,那么应用程序还是会向所有网卡发出解析请求,这是 Windows 的硬伤。 我尝试过开关智能多宿主名称解析,发现开启前物理网卡有公共 IPv4 DNS 请求和公共 IPv6 DNS 请求;关闭后物理网卡的 IPv4 DNS 请求消失了,但公共 IPv6 DNS 请求还在。 修改物理接口的 IPv6 DNS 为公共 DNS,但物理网卡依旧检测到了请求。 目前看来想要在 Windows 上无泄漏使用 Tun 模式,必须有以下操作:
I have submitted a pull request for automatic geo file updates, and it has been merged.
I have submitted a pull request for automatic geo file updates, and it has been merged.
Thank you very much for your help. 😊
Verify steps
Mihomo version
1.17.0
What OS are you seeing the problem on?
Windows
Mihomo config
Mihomo log
No response
Description
首先非常感谢大佬们恢复更新 mihomo, 这个工具对我来说非常重要, 这段日子我非常担心 mihomo 就此断更。
不设置系统代理,直接使用 powershell 在 Windows11 22H2 22621.2506 环境下运行内核,并且禁用 Windows 智能多宿主名称解析。 本地网络下发了 IPv6 地址 若将 tun.strict-route 设置为 true, 则不会发生 DNS 泄漏, 但会导致部分应用无法正常使用。 若不设置 tun.strict-route , 使用 wireshark 抓包, 发现应用程序往路由器设置的公共 IPv6 DNS 服务器发起大量 DNS 解析,如下图所示(本次抓包向 cf dns 发起请求, 有时候是阿里)。
另外我还有一个可有可无的功能请求:设置定时自动更新 geosite.dat Country.mmdb geoip.dat 只需更新数据库即可,不需要更新后重载配置文件,保证下次内核启动的时候数据库是最新的。 或者增加一个默认为 false 的配置项,设置为 true 后能在每次内核重启前重新下载 IP/domain 地理位置数据库(体验相对来说没有前一种好)。
感谢开发者们在百忙之中抽出时间听取我的建议😄。