TOC

Bing 打不开了

Bing 是我的默认搜索引擎。但是今天早上发现 Bing 打不开了,只有通过特殊手段才行。

Update @ 2021-12-19: 必应搜索恢复正常访问(持续时间大约 2 天)。

排查

当前 DNS

局域网网关,202.103.24.68

C:\Users\Administrator>nslookup www.bing.com
服务器:  public1.alidns.com
Address:  223.5.5.5

非权威应答:
名称:    china.bing123.com
Addresses:  202.89.233.101
          202.89.233.100
Aliases:  www.bing.com
          a-0001.a-afdentry.net.trafficmanager.net
          cn-bing-com.cn.a-0001.a-msedge.net

切换到 AliDNS

223.5.5.5, 223.6.6.6

依然打不开。

C:\Users\Administrator>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

C:\Users\Administrator>nslookup www.bing.com
服务器:  public1.alidns.com
Address:  223.5.5.5

非权威应答:
名称:    china.bing123.com
Addresses:  202.89.233.101
          202.89.233.100
Aliases:  www.bing.com
          a-0001.a-afdentry.net.trafficmanager.net
          cn-bing-com.cn.a-0001.a-msedge.net

发现和电信的 DNS 是一样的结果。

切换到谷歌 DNS

8.8.8.8, 8.8.4.4

打开 www.bing.com 通过响应头 location: https://cn.bing.com/ 跳转到 cn.bing.com。
选择国际版之后,还是 cn.bing.com。
以前是不是这样,我倒没有注意。

服务器:  dns.google
Address:  8.8.8.8

非权威应答:
名称:    a-0001.a-msedge.net
Addresses:  204.79.197.200
          13.107.21.200
Aliases:  www.bing.com
          a-0001.a-afdentry.net.trafficmanager.net
          cn-bing-com.cn.a-0001.a-msedge.net

分析

知乎上的相关信息

在网上搜索,知乎中有人提了相同的问题。

根据这三篇文章和评论区提供的信息(还有 V2EX,微博):

  1. 应监管部门要求,Bing 需要在 30 天内对搜索框的建议功能做出整改,看到很多网友贴出了之前发出的公告。
    > Bing China has been required by the relevant government agency to suspend the search auto suggestion feature in mainland China for 30 days under PRC laws. Bing is a global search platform and remains committed to respect the rule of law and users’ right to access information and to help users find information to the greatest extent feasible under applicable laws.
  2. https://www4.bing.com 目前可用 (随时会挂)

所以,综合所有信息:

  1. Bing 应该在两三天之内恢复正常访问
  2. 可以先用 www4.bing.com
  3. 如果 www4 也挂了,可以切换到谷歌 DNS

无关:一个有趣的现象

我再 Ubuntu 20.10 上的操作也是相同的结果,切换到 AliDNS 不能解决问题,切换到 8.8.8.8 就好了。

但是,....

我发现直接 Dig AliDNS 给出的地址和谷歌是一致的,这是为什么呢?上面 nslookup 的结果可不是一致的。

然后...

curl 用的 DNS 解析结果,不是 dig 中拿到的 IP,应该是 nslooup 中的结果。
curl 的 DNS 流程到底是怎样的呢?

还有最后一个问题:

AliDNS 和 Cloudflare DNS (1.1.1.1) 给的 IP 顺序在变化,做了 DNS 负载均衡很好理解。
但是谷歌 DNS 8.8.8.8 为什么始终不变?

针对上面三个问题,我写了三篇文章:

下面是附的测试数据:

8.8.8.8

# 切换 8.8.8.8
# 这时可以打开网页
nmcli dev show enp7s0 | grep -i dns
IP4.DNS[1]:                             8.8.8.8
curl --connect-timeout 1 -sv https://www.bing.com/ 2>&1 | grep -i trying
*   Trying 204.79.197.200:443...

dig bing.com @8.8.8.8 +short
13.107.21.200
204.79.197.200

nslookup www.bing.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.bing.com    canonical name = a-0001.a-afdentry.net.trafficmanager.net.
a-0001.a-afdentry.net.trafficmanager.net        canonical name = cn-bing-com.cn.a-0001.a-msedge.net.
cn-bing-com.cn.a-0001.a-msedge.net      canonical name = a-0001.a-msedge.net.
Name:   a-0001.a-msedge.net
Address: 204.79.197.200
Name:   a-0001.a-msedge.net
Address: 13.107.21.200

AliDNS

# 切换 AliDNS
# 网页打不开
nmcli dev show enp7s0 | grep -i dns
IP4.DNS[1]:                             223.5.5.5
curl --connect-timeout 1 -sv https://www.bing.com/ 2>&1 | grep -i trying
*   Trying 202.89.233.100:443...
*   Trying 202.89.233.101:443...

# 这两个 DNS 直接 dig 给出的结果是一样的

-> % dig bing.com @223.5.5.5 +short
13.107.21.200
204.79.197.200

nslookup www.bing.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.bing.com    canonical name = a-0001.a-afdentry.net.trafficmanager.net.
a-0001.a-afdentry.net.trafficmanager.net        canonical name = cn-bing-com.cn.a-0001.a-msedge.net.
cn-bing-com.cn.a-0001.a-msedge.net      canonical name = china.bing123.com.
Name:   china.bing123.com
Address: 202.89.233.100
Name:   china.bing123.com
Address: 202.89.233.101