1. 简介

有时访问某些国外网站很卡(不包括无法访问的网站),很大的原因是这些网站的 CDN 的域名遭到 DNS 污染了。这时就可以选择直接访问源网站 IP ,绕过 DNS 解析,即通过修改主机 hosts 文件的方式,将域名和 IP 的对应关系直接记录下来,来加速对这些网站的访问。

2. 原理

主机操作系统下都有一个 hosts 文件,其作用在于将一些常用网址域名与其对应的 IP 地址建立一个关联数据库,这样当主机访问这些常用网站域名时就不用再进行 DNS 解析。

hosts 文件采用以下行格式来记录域名 — IP 的关联信息:

1
IP DNS1 DNS2 ...

其中,IP 为 IPv4 或 IPv6 地址,DNS1~N 对应 N 个域名,即允许 1 个 IP 地址对应 1 个或多个 DNS 。

可以使用编辑器直接打开 hosts 文件,修改其中的内容。

3. 作用

hosts 文件的作用:

  • 加快网址域名访问速度
  • 方便局域网用户
  • 自定义屏蔽网站
  • 创建虚拟域名辅助网站调试

4. 位置

  • Linux:Linux 系统中的 hosts 文件在 /etc/ 文件下。

  • Windows:windows 系统中的 hosts 文件在目录 C:\Windows\System32\drivers\etc\ 下。

【注】鉴于域名的 IP 地址并非一成不变的,故需时常更新 hosts 文件中域名的 IP 地址。

5. 案例

  • github

github 由于 CDN 域名遭到 DNS 污染 ,导致无法连接上 github 的加速分发服务器,从而造成访问速度缓慢。此时可以利用网站 ipaddress.com 查询获取 github 众多域名的最新 IP 地址,然后记录到主机 hosts 文件中,绕过 DNS 解析,加速访问速度。
以下是本人当前查询到 github 众多域名对应的 IP 地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
199.232.5.194 github.global.ssl.fastly.net
140.82.113.4 github.com
185.199.108.153 assets-cdn.github.com
185.199.108.153 documentcloud.github.com
140.82.113.20 gist.github.com
185.199.108.154 help.github.com
192.30.253.121 nodeload.github.com
199.232.28.133 raw.github.com
52.87.114.63 status.github.com
140.82.113.17 training.github.com
192.30.253.112 www.github.com
199.232.5.194 github.global.ssl.fastly.net
199.232.68.133 avatars0.githubusercontent.com
199.232.28.133 avatars1.githubusercontent.com
192.30.253.120 codeload.github.com

其实通常只要绑定以下几个常见域名就可以了:

1
2
3
4
5
codeload.github.com
github.com
github.global.ssl.fastly.net
s3.amazonaws.com
github-cloud.s3.amazonaws.com