文章目录

  • 0. 问题描述
  • 1. 问题原因
  • 2. 解决办法


0. 问题描述

楼主在Linux环境下使用的是国际版Firefox 102。但是最近在浏览一些国内网站,例如https://www.bilibili.com时,打开网页的速度非常非常缓慢。甚至干脆就没有办法打开。

火狐浏览器 python 火狐浏览器国际版_firefox

就像这样,等啊等啊等半天,就是打不开,刷新多少遍都没有用,烦死了。

但是如果挂上代理软件访问这些网站,却又能秒开。于是,我查看了在我打开bilibili时代理软件所记录的日志,如下:

2022/07/26 17:05:36 127.0.0.1:52316 accepted tcp:127.0.0.1:0 [QV2RAY_API]
2022/07/26 17:05:43 127.0.0.1:48074 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48118 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48108 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48076 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48092 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48124 accepted //mozilla.cloudflare-dns.com:443 [bkngnxmprkfkmtk]
2022/07/26 17:05:43 127.0.0.1:48138 accepted //s1.hdslb.com:443 [DIRECT]
2022/07/26 17:05:43 127.0.0.1:48148 accepted //www.bilibili.com:443 [DIRECT]
2022/07/26 17:05:44 127.0.0.1:48150 accepted //i0.hdslb.com:443 [DIRECT]
2022/07/26 17:05:44 127.0.0.1:48164 accepted //i1.hdslb.com:443 [DIRECT]

虽然使用了代理软件,但是连接bilibili的方式仍然是直连。不过在日志最开头的//mozilla.cloudflare-dns.com这个域名的访问引起了我的注意。问题就在这里!!

1. 问题原因

我们访问网站前,需要通过DNS解析获取某个域名实际的IP地址,从形式上看,这种操作是向外发送一个udp包完成的。但是,这个udp包非常简陋,没有任何形式的加密。因此,第三方只要捕获了该udp包,很容易就知道了你在访问什么网站。

根据Mozilla 官方文档介绍,Mozilla为了避免这个情况的发生,增加了DNS over HTTPS的功能,即,不使用原先的、系统自带的DNS解析功能,转而使用一个HTTPS连接从DNS Provider获取IP地址。从2022年后,国际版的Firefox默认开启此功能,默认的DNS Providermozilla.cloudflare-dns.com

因为cloudfare国内访问非常不稳定,很多时候都无法连接,这也就解释了为什么我们打开国内的网站都经常无法打开以及速度奇慢无比。

2. 解决办法

以我的Firefox 102为例,点击菜单->Settings->Network Settings

火狐浏览器 python 火狐浏览器国际版_firefox_02

在页面的最下方,修改Use Provider,将默认的Cloudflare修改为NextDNS。(或者是直接取消勾选Enable DNS over HTTPS也可)

火狐浏览器 python 火狐浏览器国际版_ide_03

这样,再去打开我们所熟悉的一堆网站,就可以发现,简直是飞快,秒开。

火狐浏览器 python 火狐浏览器国际版_firefox_04