当前位置:错新网文章中心网站运营建站经验 → 使用国外 DNS 造成国内网站访问慢的解决方法

使用国外 DNS 造成国内网站访问慢的解决方法

减小字体 增大字体 作者:admin  来源:本站整理  发布时间:2017-1-11 10:26:42

你是否是一个使用国外 DNS 的中国网民?你是否发现使用国外 DNS 之后访问某些国内网站奇慢无比?这不是 DNS 慢,而是电信到联通的线路太慢。如果你愿意小小地折腾一下,那么跟随本文,你可以解决这一问题。

国外DNS <a target=网站速度 服务器解析" border="0" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="cursor: pointer;"/>

一、为什么要用国外 DNS

由于众所周知的问题,国内 DNS 服务器解析国外网站会遭到 DNS 污染和投毒,使之解析到完全虚构的 IP 上,造成「开了 VPN 也没法访问 Twitter 或 Facebook」等问题。以下是一个例子:

  • wzyboy@vermilion:~$ dig twitter.com @8.8.8.8 +short
  • 199.59.148.82
  • 199.59.149.230
  • 199.59.148.10
  • wzyboy@vermilion:~$ dig twitter.com @221.228.255.1 +short
  • 93.46.8.89

Twitter 正确的 IP 地址应该是 199.59.148.0/24 里的那几个,但是如果用 221.228.255.1 这台中国电信的 DNS 服务器查询,查到的就是不知道什么鬼地址了,地理信息是在意大利,乱七八糟的。正是因为这样的 DNS 解析不正确的情况出现,不少人转而使用了国外的 DNS 服务器,如老牌的 OpenDNS 以及这几年新崛起的好记又好用的 Google Pulic DNS 即 8.8.8.8 和 8.8.4.4。使用它们进行查询,再配合以 VPN 或者浏览器的远程 DNS 解析,便可避免 DNS 污染的情况出现,从而解析出正确的地址。

此外,拒绝使用电信的 DNS 服务器,还可以避免烦人的「114 上网导航」页面……

二、为什么使用国外 DNS 会「慢」

我是在「慢」上加了引号的,因为这其实不是国外 DNS 慢,而是你要访问的网站的 CDN 分配错误,慢。由于国内各大运营商之间的主干线路带宽太窄,所以导致「最远的距离是从电信到网联通」,电信用户访问联通的服务器非常慢,联通用户访问电信的服务器也非常慢,相信这都是大家有体验的。因此,国内不少网站都用了双线 CDN,在电信的机房里放点服务器,再在联通的机房里放点服务器。运用智能 DNS 技术,当你访问网站的时候,DNS 根据你的来源 IP 判断你是电信用户还是联通用户,然后再返回相应的 IP 地址,这样你会访问到就近的、同运营商的服务器,访问速度就大大提升了。而如果使用国外的 DNS 的话,你的查询来源来自国外,国内网站的 DNS 无法判断你是电信用户还是联通用户,就胡乱分配你一个服务器。比如我是一个江苏电信的用户,但当我访问淘宝网的时候,淘宝的 DNS 把我解析到青岛联通的服务器上,奇慢无比。所以:

很多人认为 Google Public DNS, OpenDNS 等「慢」,主要不是查询慢,而是电信到联通之间太慢。

当然了,如果硬要比较查询的话,倒也是会慢很少一点的:

  • ;; 使用 8.8.8.8 解析 www.google.com 耗时 79 毫秒
  • ;; Query time: 79 msec
  • ;; SERVER: 8.8.8.8#53(8.8.8.8)
  • ;; WHEN: Thu Sep 6 17:20:37 2012
  • ;; MSG SIZE rcvd: 143
  • ;; 使用中国电信 221.228.255.1 服务器解析 www.google.com 耗时 6 毫秒
  • ;; Query time: 6 msec
  • ;; SERVER: 221.228.255.1#53(221.228.255.1)
  • ;; WHEN: Thu Sep 6 17:20:44 2012
  • ;; MSG SIZE rcvd: 284

别看 6 毫秒和 79 毫秒差别很大的样子,但是人类是很难感觉出来的,而且,这只是查询时间,与实际的访问速度无关,就算你一整天都在刷 www.google.com,也就每小时慢个几百毫秒的样子,根本感觉不出来。真正慢的原因,还是上文所说的「电信到联通」的问题。

三、问题的解决思路

现在问题明确了:使用国外 DNS 之后,查询来源变成国外的 IP,使用了 CDN 加速的国内网站的 DNS 会无法判断你的来源,胡乱给你分配一个地址,如果不是同一个运营商的,访问速度便会很慢。

那解决方案也就出现了:让国内网站的 DNS 服务器知晓你的来源,从而给你分配正确的服务器 IP。于是 Google 起草了一个专有协议,叫 EDNS,在 DNS 查询请求中包含源地址,这样淘宝就知道查询来源不是 Google 服务器,而是电信的某用户,就不会把你扔到联通服务器上了 。听起来很美好是吧?不过这个协议不开放,目前几乎没有人用,所以,问题丝毫没有解决。

新思路是:访问那些会因 CDN 加速解析错误而极其缓慢国内网站的时候,直接向国内的服务器发送请求,让 DNS 知晓你的来源,给你分配个正确的 IP。访问其他网站的时候,再通过国外的 DNS 查询

听起来很简单的样子,实现起来也不难:用 dnsmasq 在本地搭个 DNS 缓存服务器,规定哪些域名用哪个服务器查就好了。

四、安装及配置 dnsmasq 安装 dnsmasq

dnsmasq 是一个非常轻量的 DNS 缓存及 DHCP 服务器,在我的 Arch Linux 上只占用了 368 KiB 的磁盘空间,相比功能极其强大的 BIND9 来说小多了(BIND9 的安装体积是 6.23 MiB)。不光是体积小,它的功能也很专一,配置起来也是十分方便的,五分钟就可以搞定。

Ubuntu 12.04 及之后的版

[1] [2] [3]  下一页


本文引用网址:

在下列搜索引擎中搜索“使用国外 DNS 造成国内网站访问慢的解决方法”的相关信息:

谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1王梦溪未经处理照曝光 王梦溪口...
  • 2裸条10g压缩包 百度云 18g裸条...
  • 3女大学生裸贷照片合集[100P/23...
  • 4女学生裸贷资源百度云下载 10G...
  • 5女学生“裸条门”事件曝光 借贷...
  • 12016年最新成年身份证号码大全...
  • 22016黑客免费送qq 6位qq号 7位...
  • 3DEDE"模板文件不存在,无法解...
  • 4Machine Learning:PageRank算...
  • 5在家怎么用手机赚钱的方法?
  • 1杨晴雨裸条图片 女学生裸贷照片...
  • 2女学生裸贷资源百度云 杨晴雨裸...
  • 3合肥艳照门事件 合肥艳照门全套...
  • 4李雪不雅照流出 一字马女神李雪...
  • 5王梦溪种子完整版 王梦溪1.08G...
  • 1熟悉Linux病毒做好系统的防护工...
  • 2linux服务器在运行210天左右宕...
  • 3服务器维护更新升级的原则、故...
  • 4通过组策略和注册表关闭win7 U...
  • 5我教你学 个人SMTP服务器的配置...
  • 赞助商广告

    图片文章导读