使用 8.8.8.8 在 SG 机器上 部分 google 域名解析会到国内
infinityv:
在某台位于 SG 机器上使用的 DNS 服务器是 8.8.8.8 1.1.1.1
最近发现一些域名,比如:(域名前面代表次数 可以忽略)
- 11276 safebrowsing.googleapis.com
- 1199 www.gstatic.com
- 1112 ssl.gstatic.com
- 465 update.googleapis.com
- 409 fonts.googleapis.com
- 377 fonts.gstatic.com
- 232 clientservices.googleapis.com
- 109 googleads.g.doubleclick-cn.net
- 87 www.googletagmanager.com
- 73 www.google-analytics.com
- 66 connectivitycheck.gstatic.com
- 38 www.googleadservices.com
- 37 redirector.googlevideo.com
通过 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 服务器)