外观
DNS 是什么?
一句话:DNS 是上网的“通讯录”。
打电话时,你在通讯录里点“妈妈”,手机替你拨出一串号码。上网也一样:你输入的是 youtube.com 这样的网址,可电脑之间只认 IP 地址(一串数字)。把网址翻译成 IP 地址的,就是 DNS(Domain Name System,域名系统)。
一次访问发生了什么
- 问路:你打开一个网址,手机先去问 DNS 服务器“这个网址在哪?”;
- 回答:DNS 服务器回一个 IP 地址;
- 出发:手机按这个地址去连网站,网页才开始加载。
问过的答案会在手机里记一会儿,下次打开同一个网站就不用再问。整个过程通常只要几十毫秒,所以平时感觉不到。
DNS 服务器是谁提供的?
- 默认:连上 Wi-Fi 或移动数据时,运营商会自动给你分配一个 DNS 服务器,大多数人用的就是它;
- 公共 DNS:也可以手动改用公共 DNS,比如国内的
223.5.5.5(阿里)、119.29.29.29(腾讯),海外的1.1.1.1(Cloudflare)、8.8.8.8(Google)。
DNS 出问题会怎样
DNS 出问题时,最典型的症状是:网络明明连着,网页却打不开。
- 查不到:DNS 服务器没响应或太慢,网页一直转圈,最后提示找不到服务器;
- 查错了:拿到的是错误的地址,网站打不开,或者打开的不是原本的页面;
- 被劫持:有的网络会把某些查询的答案换掉,比如跳到广告页。
微信能用、网页却打不开,就很可能是 DNS 的问题。
为什么用近处的 DNS 更快
大网站会在全国各地放很多台服务器(CDN)。DNS 服务器会根据你从哪里来问,给你离你最近的那台。
所以访问国内网站,用国内的 DNS 解析,拿到的是就近的国内服务器,打开更快;用海外的 DNS 解析国内网站,可能被分配到远处的服务器,反而变慢。
DNS 和隐私
普通的 DNS 查询是明文的:你查了哪个网址,经过的网络都看得到。就算网站本身是 HTTPS 加密的,“你访问了哪个网站”这件事也可能从 DNS 查询里看出来。
所以现在有了加密的 DNS,比如安卓的 私人 DNS(DoT)和浏览器里的 安全 DNS(DoH),它们把查询过程也加密了。
连上加速器后,如果查询没跟着走加密隧道,而是仍从本地网络发出,就叫 DNS 泄漏,见什么是 DNS 泄漏。
连接 GeckoHop 时 DNS 怎么走
选 智能模式 时,GeckoHop 按网站分开处理:
| 国内网站 | 海外网站 | |
|---|---|---|
| 谁来解析 | 国内公共 DNS | 经节点交给海外的公共 DNS |
| 好处 | 拿到就近的国内服务器,国内网站照样快 | 查询不经过本地网络,拿到正确的海外地址 |
选 全局模式 时,所有 DNS 查询都经节点发出。服务器不记录 DNS 查询,也不记录你访问的网站、内容和连接日志,见隐私政策。
手机开了指定主机名的 私人 DNS,或浏览器开了 安全 DNS 时,GeckoHop 看不到这些查询,「智能模式」里的自定义域名规则可能不生效,处理方法见常见问题。
遇到 DNS 问题怎么办
- 换个网络:Wi-Fi 和移动数据互换一下,很多 DNS 问题出在当前网络上;
- 改回自动:手动改过 DNS,或装过去广告、改 DNS 的 App,先把 DNS 改回自动;
- 所有节点都连不上时,多半是当前网络的 DNS 查不到节点地址,按常见问题里的步骤处理。
