@
donnieYeh 标准的 clash 内核无论 fakeip 和 redir-host 会缓存 dns 和域名的映射的,并不是会执行嗅探。
clash 自己作为一个 dns 服务器,设置为 dnsmasq 的上游,有 dns 请求过来,dnsmasq 给到 clash ,clash 向自己配置文件里设置的 dns 查询域名对应 ip ,并建立映射表。
1 ) redirhost 直接把查到的 ip 给设备,设备按照这个 ip 发起连接,clash 反推域名分流,向代理服务器发起请求的时候不带域名,因此代理服务器看到的是 ip ,这是为了防止多个域名解析到同一个 ip 导致 clash 反推失败,但正因为请求的是 clash 自己本地查到的 ip ,所以会有几率出现 dns 污染或者 cdn 不匹配的情况。
2 ) fakeip 则是返回一个假的 ttl 很短的 ip 给设备,设备按照这个 ip 发起连接,clash 反推域名,并且直接请求这个域名,代理服务器拿到的是域名,这样可以避免 dns 污染,但是一些基于 udp 的服务会变得不正常,尤其是部署在路由器级别的设备上时,fakeip 的兼容性不是很理想。