@SurgeTeam
使用场景
Mac 通过同一 WiFi 下的 iPhone(运行 Surge iOS)作为代理上网。iPhone 的 IP 在不同 WiFi 网络下会变化,希望用 mDNS 主机名(如 My-iPhone.local)作为代理地址,实现自动解析,避免每次换 WiFi 都要手动改 IP。
配置
[Proxy]
iPhone via Wifi = http, My-iPhone.local, 6152
[Host]
*.local = server:system
当前行为(Surge Mac 6.x)
[DNS] Use local DNS mapping record (server) for my-iphone.local
[DNS] DNS lookup for my-iphone.local completed in 10.6ms, error: Empty DNS answer for my-iphone.local from servers: 192.168.x.1
server:system 发送的是传统单播 DNS 查询到路由器,路由器不认识 .local mDNS 名称,返回空应答。
期望行为
对 .local 域名,Surge 应使用 macOS 原生系统解析器(支持 mDNS/Bonjour 组播,端口 5353),而不是向系统 DNS 服务器发送单播查询。
验证: 同一主机名在 macOS 终端下可正常解析:
$ nc -z My-iPhone.local 6152
Connection to My-iPhone.local port 6152 [tcp/*] succeeded!
备注
这与 #3258 不同。#3258 是 [Host] 段对流量目标域名的 DNS 映射问题,本帖是代理服务器主机名解析 —— Surge 连接 [Proxy] 中定义的 .local 代理时的 DNS 解析路径。