先确定域名交给哪一个解析对象
用户程序通过解析器与域名空间交互,解析器再查询外部名称服务器。解析器及缓存可以属于操作系统的一部分,查配置时要先认清这层关系。
- 确定待解析的是访问目标还是代理节点自身的域名。
- 找到当前客户端的 DNS 项目,按公开字段名称对应。
- 分别记录解析路径与代理路径,不由节点连通替 DNS 下结论。
mihomo 的 proxy-server-nameserver 只用于解析节点自身域名。nameserver-policy 则可以按域名指定解析服务器,这些字段的对象不同,不能只看到 nameserver 就互换。
传输方式与解析对象是不同维度
传统 DNS 使用 TCP 与 UDP 的 53 端口。DoH 通过 HTTPS 发送查询,每对查询和响应对应一次 HTTP 交换;DoT 通过 TLS 保护 DNS,服务端默认 TCP 853 端口。
| 要核对的内容 | 已公开的字段或定义 |
|---|---|
| 节点域名解析 | proxy-server-nameserver |
| 按域名选解析服务 | nameserver-policy |
| DNS 连接跟随规则 | respect-rules |
| 通过 HTTPS 查询 | DoH |
| 使用 TLS 保护查询 | DoT |
这里把对象、选择策略和传输方式放在不同格子。传输用了加密,不代表查询必定经过某一条代理;设置字段存在,也不代表当前设备已经按该配置运行。
fake-ip相关选项按字段含义逐项读
mihomo 的 enhanced-mode 可选 fake-ip 与 redir-host,文档写默认 redir-host。fake-ip-range 定义所用地址段,fake-ip-filter 里的域名不下发 fakeip。
profile.store-fake-ip 用于储存映射表,域名发生后续连接时使用原有映射地址。核对这组字段时,看模式、地址段、过滤和保存选项,不把它们合成一个没有条件的 DNS 开关。
- 模式栏按实际取值记录,不从字段名推定已启用。
- 过滤栏对应哪些域名不下发 fakeip,不改写成全部域名。
- 映射保存栏描述保存行为,不替访问结果提供保证。
查询路径问题要与代理使用情况一起看
SOCKS5 允许把域名交给代理服务器解析;若程序先在本地解析后再交 IP,那次查询就发生在本地。这是不同的查询安排,需要按实际配置区分。
代理连接与名称查询分别核对,不能只看到代理开启就省去 DNS。
v2rayN 列有直连 DNS、远程 DNS、Bootstrap DNS;v2rayNG 的公开界面文字列有远程 DNS、直连 DNS、VPN DNS。不同应用按各自字段解释,不把名称相近当作路径完全相同。
具体哪个设置能防 DNS 泄露,没查到公开说明。可以确定的是字段的公开作用,不能把配置页面里看见的功能直接写成所有查询都不会走本地网络。
想另选机场时可从这里继续查看
需要比较其他机场时,可沿下方入口继续看收录信息。
常见问题解答
节点域名解析在mihomo里看哪个字段?
看 proxy-server-nameserver,它的公开用途是解析节点自身域名。访问目标的按域名选解析服务另有 nameserver-policy,不把这两项对象混在一起。
DoH和DoT的传输方式在哪里区分?
DoH 通过 HTTPS 发送 DNS 查询,DoT 用 TLS 保护 DNS,服务端默认 TCP 853 端口。传输方式与查询是否经过代理分别核对,不用其中一项代替另一项。
fake-ip过滤列表应该怎么理解?
mihomo 文档把 fake-ip-filter 定义为其中域名不下发 fakeip。它是模式相关的过滤条件,不等于全部域名都用同一种解析结果,也不是防泄露效果保证。
