请教自建 DNS 的协议选择 DoH vs DoT vs DoQ vs Raw UDP/TCP
走 Real-IP 后被 DNS 搞魔怔了。
目前自建了远端 DNS server 。所有的 DNS 请求都会走代理协议。目前主要走 UDP 代理协议,不稳的时候考虑切 TCP 。
最开始为了最低延迟,选择了用原生 UDP 的 DNS ,也就是 UDP over UDP 的 dns 请求。但是 AI 说如果我哪天切 tcp 的代理协议代理走 udp dns 会存在拥堵算法的问题。Surge 官网也说默认屏蔽 UDP 可以省去很多问题。
后来考虑走 Raw TCP 的 DNS ,也就是 raw TCP over UDP 。但是 AI 又说正常 Infra 对纯 TCP 的 DNS 支持不是那么全面。
现在考虑 DoT 或者 DoH ,但是这两个都走 TLS ,相当于多了一次加密。而且都是走 TCP ,也就是走 quic 的代理要 TLS + TCP over UDP 。不知道这样如何。
现在还有个新的 DoQ ,可以 Quic over Quic 。
UDP vs TCP vs DoT vs DoH vs DoQ 大家都是怎么选择的?
doh 省心,自动升降级 quic ,加密仅在建连时多一点时间 https://github.com/jqknono/cloudflare-doh 这个不花钱最省心 想折腾可以试试 https://www.nullprivate.com/ ,里边可以配 ECS ,用于将携带的 ip 地理位置最近的服务器 ip 返回,这个配得好延迟低,配不好就延迟高
自己有服务器能建,那就 DoH 直连,nginx 反代一下,把/dns-query 换掉,配好 ECS 速度快; DoT 和 DoQ 端口特征明显,容易被干。如果你 DNS 经过代理了,那用什么协议都无所谓了,UDP 仅代理 53 ,直接用 8888 都行。
我选择 doh fakeip dns 和请求走同一个出口(
就 UDP/TCP 53