之前用 fakeip 的方案,ssh 经常出各种 bug ,redir-host 又需要解析两次,有时候访问确实拉跨
参照 kimi 了解了一下 openclash dns 的原理,基本原理就是 dnsmasq 将客户端的 dns 请求转发到 openclash, openclash 使用多个 nameserver 并发查询,如果不一致,就是使用 failback 的 dns 去查询。我想把所有 dns 查询都交给 smartdns 去分流查询,于是就把 openclash 的所有 nameserver ,failback ,default nameserver 都设为 smartdns 的地址,这样 openclash 不负责进行 dns 查询,只进行转发了。
之前还想过把 dnsmasq 直接转发到 smartdns ,后来发现这样,openclash 拿不到要访问的 hostname ,就没法用 geosite 进行分流了,只能用 geoip ,而 openai 之类的不能用香港 ip ,这样也不好,所以还是 dnsmasq 转发到 openclash 再转发到 smartdns 了。
现在 Openclash redir-host 模式+smartdns 效果很好。
之前还尝试了一下 adguard 前置的方案,后来发现确实没必要,除了有个可视化的界面,其他对我没啥用处。