xChar
·8 months ago

其实更想写一篇随笔,并不是一篇很严谨的科普文章, DoH 的全名叫做 DNS over HTTPS, DoT 的全名是 DNS over TLS,这些工具主要用于加密 DNS 查询,防止DNS被劫持篡改。

为什么会想到写这个呢,先简单介绍一下家里的网络。
目前我用的网络基本模型就是 主路由网关 iKuai + 旁路由 Openwrt 的形式,再在家里跑上一些服务设备之类的。

主路由负责PPPoe拨号 DDNS DMZ DHCP 等,负责上网的事情都是用它来做的,ikuai 是一个很不错的,功能相对全面又比较容易上手的路由系统。
旁路由用 Openwrt ,跑用来回家的 ss server 和 openclash,wireguard 对等节点等。

主路由下发的 DHCP 配置,由于家里的各种设备比较多,并不是所有设备都需要用到的,大多物联网设备等的,都用默认设置就可以了,所以 DHCP 拿到的就是默认设置。
全局代理通过修改 手机/电脑/游戏机上的 HTTP 代理到 openwrt 上的 clash port 就可以实现,到这里都没有什么问题。

直到有一天我发现家里的 DNS 似乎被污染了, Clash 走的解析 114.114.114.114 端口 53 timeout了,随后我把 dns 换成 8.8.8.8 和 1.1.1.1。
It works, but not for long. 装了 clash 的设备仍然会有一些问题,并且意外的发现家里的好些设备, 监控摄像头 自动猫砂盆 扫地机器人等 2.4G 的设备都连不上网了。

最开始我还是以为是家里的 mesh 网络覆盖不到位的问题。 经过 debug 发现,用的米家 mesh 确实有一些小问题,后来决定直接换了一批 ASUS AiMesh 的设备,有用……但不完全有用。有用的是,我确实能更精确定位设备的问题,毕竟华硕的设备做的确实还可以。没用指的是,没有解决根本问题。

直到最后我发现是不是我之前改了 DNS 导致的,我把DNS切回运营商默认的之后,似乎设备都正常了。

故事到这里还没有结束,平静的过去了大概很久,前几天发现如上的有些设备又连不上网了,由于购买的时候还有多的 mesh 节点,尝试把网络覆盖到死角发现还是没有用,距离上次重启路由器大概已经过了五十多天了,正好路由器有新的软件更新了,于是我尝试更新了 ikuai 的系统版本,在 DNS 的界面发现了一个重大的更新—— DoH !

image

随后我应用了一个对于我而言的相对最优 dns query,五秒钟之后,手机 app 已经就收到了各种设备在线的消息了。

总结

可能是因为流量比较容易被识别,或者运营商故意的污染 DNS,导致我家或者可能是这边物理地区的 DNS 整体都有被劫持的可能。

并且各种物联网设备的运营商, 比如我用的追觅 Dreame 小佩 petkit 等,都没有特别大的互联网基建。 特别的,复盘的时候发现米家的设备就没有遇到这个问题,大概是因为 米家的体量使得它的平台接入点比较多,即使 DNS 被污染,对于 mi.com 这种域名应该不会做处理。而碰巧这些设备又以 2.4G 设备居多,所以误认为是 2.4G 信号的问题。

Loading comments...