在某台位于 SG 机器上使用的 DNS 服务器是 8.8.8.8 1.1.1.1

最近发现一些域名,比如:(域名前面代表次数 可以忽略)

通过 8.8.8.8 解析,拿到的结果是 CN 的; 通过 1.1.1.1 解析,拿到的就都是 US 的;

我的一些分析和猜测:

  • fonts.googleapis.com 这些域名本身确实在北京有节点(大概率是事实)
  • 1.1.1.1 并不支持 ECS ,所以并不会就近解析;
  • 8.8.8.8 支持 ECS ,这台 SG 机器和某些 CN 碰巧在一个自治域内。国内用户(通过国内 DNS )查询后,cdn 返回了国内的 ip ,同时这个请求被当前自治域的公共 dns 缓存。所以当国外用户查询(即使通过 8.8.8.8 )的时候,公共 dns 就直接返回了缓存的国内 ip ,从而导致这个问题。

目前感觉除了替换 DNS 8.8.8.8 没有别的方案,话说有没有适合 SG 的本地的 DNS 服务器啊。 ( smartdns 里面配置用,SG 节点供应商未提供自己的 DNS 服务器)

举报· 828 次点击
登录 注册 站外分享
7 条回复  
by 小成 15 小时前
你的新加坡 IP 可能是被 Google 送中了 试试 129.250.35.250 129.250.35.251
infinityv 楼主 小成 15 小时前
@by 差不多就是第三点 被放在一个 AS 下了么。 这俩我试了下 和 1.1.1.1 差不多 都直接解析到 US 了。 因为 smartdns 会缓存最快的解析记录,所以感觉除非把 8.8.8.8 移掉 不然感觉一直有这个问题。好难顶 我的 SG 机器应该是套路云 SG 的节点 确实可能 AS 不干净
gentrydeng 小成 15 小时前
既然你都在用 SmartDNS 了,也知道 ECS 。那为什么不直接指定一个地理位置能被正确识别 ECS ? https://pymumu.github.io/smartdns/config/edns-client-subnet/ 发帖之前建议先自行查看程序文档来解决问题,而不是靠凭空想象。 而 1.1.1.1 不支持 ECS 不代表它就不是“就近解析”,只是依赖任播。 如果你的服务器访问 1.1.1.1 是被分配到 Cloudflare 新加坡节点。那么自然是通过 Cloudflare 新加坡节点进行 DNS 请求,这也是就近解析。 相反,支持 ECS 也不代表就是“就近解析”,因为 ECS 是可以被设置(伪装)的。
yyzh 初学 14 小时前
g 家 dns 会送中很正常 4 条 1 如果解析到的是真位于美国的 ip 那就很不正常
dream0689 小成 9 小时前
@yyzh 我遇到过 op 说的这种 4 个 1 解析到其他地区的情况。一般是商家没有把 cf 任播类地址路由调到当地的 ix 或者运营商出口跟 cf 直接 peer ,我当时是 sg 的机器走 singtel 到了 hkix ,延时 200ms+,这种情况使用 4 个 1 很多时候解析不仅慢还会返回 hk 解析结果,后来发工单找技术支持调路由到他们的 EQX SG 路由解决问题了。不过如果 op 所说 us 解析结果是在 SG 的广播地址,那是没有问题的。
dream0689 小成 8 小时前
楼主可以参考一下这个网站 https://publicdnsserver.com/singapore/ 根据你的机器出口选择适合你的 subnet 。网站上的 dns 地址也可以试试。我平时用来测试内地到海外运营商的路由。
yyysuo 小成 8 小时前
ecs 给 vps ip 就行了。
返回顶部