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

标题好像有点绕口,其实就是因为要科学上网而用国外 DNS,例如 OpenDNS 、Google 的 8888,8844,而国内有两个同行近在眼前却隔扇厚墙:联通和电信,而国内很多网站都是多线路自动分配联通还是电信的服务器IP给你,问题就是使用国外 DNS 无法判断……

这就造成使用国外 DNS 有时会出现你是电信用户扔给你联通服务器 IP,具体不说,会用国外 DNS 的朋友都懂的。这里主要说说解决办法。

如果你是 Linux 酱请移步到这里《使用国外 DNS 造成国内网站访问慢的解决方法

我是 Windows 重度中毒者,所以需要在 Windows 下的软件,搜来搜去找到的是 Dual DHCP DNS Server,因为没有中文版,也就没有中文说明,而且随便搜一下竟然没有一篇文章写如何设置……囧,只好自己摸索一下了。

Dual DHCP DNS Server

官方地址:http://dhcp-dns-server.sourceforge.net/

下载地址:http://sourceforge.net/projects/dhcp-dns-server/

What are DHCP and DNS servers

DHCP Server alots the IP addresses to computers, while DNS server resolves them.

You need DHCP Server if you do not want to manually maintain IP Addresses or
you have less IP Addresses than number of machines you have, as dynamic DHCP Server will
recycle IP Addresses on machines.

DNS Server is needed for resolving hostnames to their IP addresses. Normally your
ISP will provide you with DNS Service. You may have your own DNS Server, which will
resolve hostnames by forwarding them to ISP's DNS Server and cache the addresses also.

这软件支持 DHCP 和 DNS 服务的,我只要 DNS,下面是一些简单的设置说明,具体我也懒得去深入了解,反正只要解决我文章标题的问题就行了。(下面的说明都是假定你的电脑通过路由器上网,拨号的类似自行修改)

  1. 下载安装好(假定在 D:\DualServer)
  2. 进入 D:\DualServer 目录,用文本编辑器打开 DualServer.ini
  3. 找到 [SERVICES] 项部分,默认是开启 DHCP 和 DNS 服务的,因为我只要 DNS 功能,所以只开启 DNS 功能只要去掉 ;DNS 前面的英文分号 ;
  4. 继续找到 [FORWARDING_SERVERS] 项,这里是指定默认的 DNS 服务器,这里我用 Google 的,所以加上
    8.8.8.8
    8.8.4.4
  5. 然后就是重点了,找到 [CHILD_ZONES](注:6.95RC后改名为 [CONDITIONAL_FORWARDERS]),这里是针对关键字自定义 DNS 服务器的地方,下面说说格式
    - 拿淘宝网站来说明吧,淘宝一般的域名有:taobaocdn.com、taobao.com、tbcache.com、tdimg.com
    . 我们要设置这几个域名走电信的 DNS(这里我用路由器DNS代理地址——即路由器本身IP),那么格式如下

    taobaocdn.com=192.168.1.1
    taobao.com=192.168.1.1
    tbcache.com=192.168.1.1
    tdimg.com=192.168.1.1

    . 如果有多个 DNS 就这样(例如广东这边电信的 DNS 一般是 202.96.134.133 和 202.96.128.166)

    taobaocdn.com=202.96.134.133,202.96.128.166

    2013.02.20 Update:Guo.Andy 在评论里提醒新版 V6.95RC 改了设置名(点击这里),我还没验证,用新版的朋友注意一下。

  6. 查看自己网卡的 IP 地址,因为 DualServer 默认会获取网卡的 IP 地址作为本地 DNS 服务器地址,不知道的可以在命令窗口敲 ipconfig 得到,这里假定是 192.168.1.100
  7. 修改连接路由器的那个网卡的 DNS 服务器地址为 192.168.1.100(自淫?网卡自己的IP……)
  8. 运行 RunStandAlone.bat,运行后会出现命令窗口显示 log,这样就OK了

PS1:如果你不想每次都要运行 RunStandAlone.bat 和看到那碍眼的命令窗口,那么你可以注册为系统服务,只要运行 DualServer.exe,然后去系统服务(命令行敲 services.msc)那里启动此服务,以后就会自动运行了,不过注意,如果你修改了 DualServer.ini 参数,需要停止再启动此服务——嫌麻烦就重新启动计算机

PS2:@felixonmars 这喵的维护了一张国内常用的、但是通过国外 DNS 会解析错误的网站域名的列表,“Auto DNS Configuration For Websites Located in China”里面的就是,不过 要改下格式,例如:

server=/115.com/114.114.114.114

改为

115.com=114.114.114.114

添加进前面说的 DualServer.ini 的 [CHILD_ZONES] 下面(可以copy列表到文本编辑器批量修改)

折腾完,祝大家科学上网愉快!

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25714

83 comments

  1. gcbowz gcbowz Firefox 10.0.10 Windows 8 x64 Edition

    zww大叔 你使用的是webmin吗? 还是 我刚买vps不懂

    沙发
  2. 4585_5360 4585_5360 Google Chrome 23.0.1271.64 Windows 7 x64 Edition

    话说最近连着好几篇都是安装各种工具,装上这么一大堆东西之后应该就没有瘟粑带来的丝滑感受了吧~

    板凳
  3. 4585_5360 4585_5360 Internet Explorer 10.0 Windows 7 x64 Edition

    嗯……我觉得应该用我的这个 Windows 7 版的 IE10 调戏一下可爱的 WP-UserAgent 童鞋~ :mrgreen:
    那条待审的评论是我输错邮箱名了,不用放出来了…… :oops:

    地板
  4. ......
  5. Yuer Yuer Safari 5.0.4 Windows 7

    在公用wifi上网,岂不是要每次改dns设置……
    有办法设置成监听在127.0.0.1吗?我尝试未果……
    然后我设置成监听在vmware给我安装上的虚拟网卡上,结果是
    可以nslook,但不能ping也没法上网?这是何故?求解~

    31楼
    • zwwooooo zwwooooo Firefox 22.0 Windows 8 x64 Edition

      @Yuer
      虚拟机我就不知道了,自己慢慢折腾,我现在都是用本机网卡

  6. twitterpig twitterpig Google Chrome 34.0.1847.137 Windows 7 x64 Edition

    可以copy列表到文本编辑器批量修改---------话说这个怎么批量修改,如果一个一个修改地址的话,估计手会断掉的说~给个方法吧~小白路过~妥妥的~

    32楼
  7. twitterpig twitterpig Google Chrome 34.0.1847.137 Windows 7 x64 Edition

    批量修改,我搞定了,有个疑问,一个是先设置192.168.1.1,然后又是改成192.168.1.100,然后又是添加批量修改成的列表~我自己ipconfig得出的ip,不就只需要填入喵的修改列表吗?运行以后出现:warning:interface 192.168.0.103 is not static,not used----这个代表我设置失败了吗?

    33楼
  8. twitterpig twitterpig Google Chrome 34.0.1847.137 Windows 7 x64 Edition

    你好,折腾到现在,我在这步:修改连接路由器的那个网卡的 DNS 服务器地址为 192.168.0.100后,就无法正常连接网络,但是全局vpn以后,运行RunStandAlone.bat ,出现两个warning,博主可以付费咨询帮忙调试不?囧~我就想把这个问题搞懂~而且最近在调试quic,还有在校园网认证环境中如何用一些软件分流,自动设置DNS~谢谢~

    34楼
    • zwwooooo zwwooooo Firefox 29.0 Windows 8.1 x64 Edition

      @twitterpig
      1. 我只是自己在家里的本本里面使用这个功能
      2. 我不是专业玩这个的,也就是看看网上的教程折腾成功,所以既然我都能成功,那么你也行,多看看教程和此软件官方的说明(英文)
      3. 校园网什么的我不懂,没接触过,因为我读大学时还是那种极速6KB/s(带宽是64kbps)的小猫刚开始起步时代,而且一般家庭还用不起(一个月几千,相当于现在1、2万)
      慢慢折腾,多测试

  9. twitterpig twitterpig Google Chrome 34.0.1847.137 Windows 7 x64 Edition

    Ok,这位大大,我按照你的提示,将ipconfig /all得到的网卡ip地址手动填入到我的ip地址中,按照你的提示,那些ip地址和DNS都不自动获取,但是一旦这样子填入后,我的无线网连接存在,但是无法连接网络,运行RunStandAlone,出现DNS udp query,access denied。囧~折腾万岁~大大给分析下~难道填入的ip地址只要填入在这个ip段的就行吗?还是必须填入ipconfig得到的ip地址?DNS是使用自动获得吗?

    35楼
    • zwwooooo zwwooooo Firefox 29.0 Windows 8.1 x64 Edition

      @twitterpig
      "将ipconfig /all得到的网卡ip地址手动填入到我的ip地址中" 这什么意思?ipconfig /all 只是为了看你的网卡 IP 是多少(针对自动获取的),手动的话就不需要了,我不知道你到底怎样折腾的。你是用无线网卡上网的吧?简单点,如果你再折腾不了我也没办法:
      0. 前提:Dual DHCP DNS Server 正确配置,然后运行
      1. ipconfig /all 查看到无线网卡ip是多少(这里假如是 192.168.1.100)
      2. 打开“网络和共享中心”》更改适配器设置 》在你的网卡(通常叫WLAN)上右键属性 》双击Internet 协议版本 4(TCP/IPv4) 》把DNS手动改为 192.168.1.100

  10. name name Google Chrome 30.0.1599.101 Windows 7

    有数量限制的,网站添加125个之后,后面的就都无效。

    36楼
  11. wang hua wang hua Firefox 38.0 Windows 7 x64 Edition

    你好:

    DNS UDP Query, Access Denied
    why????

    37楼
  12. Fraecak_l Fraecak_l Google Chrome 48.0.2564.109 Windows 7 x64 Edition

    大神,我刚用了这个办法以后,刚设置完 DNS,看了一会儿 A 站视频,的确不卡了(没有试很久),但我一刷新其他网页,就显示无法连接了。之后就所有网页都无法打开了…… chrome 浏览器,换了 IE 也如是。 qq 能照常使用。

    把 DNS 恢复默认设置以后就没事了……

    求解 :cry: :cry: :cry:

    38楼
    • zwwooooo zwwooooo Firefox 44.0 Windows 10 x64 Edition

      @Fraecak_l 此方法不适合了,因为 Dual DHCP DNS Server 有限制 DNS 数量,没找到提前替换方案,只能是把dns也代理了。

    • Fraecak_l Fraecak_l Google Chrome 48.0.2564.109 Windows 7 x64 Edition

      @zwwooooo 所以,现在是要自己用VPS搭个DNS服务器,比如Linux上的bind9之类的,在VPS上把那些常用网站的DNS都配置好,然后把网络配置里的DNS服务器改成自己VPS的IP,就是用国内机器当DNS代理服务器,可以是socks转发实现,也可以是搭bind9之类东西实现?

    • zwwooooo zwwooooo Firefox 44.0 Windows 10 x64 Edition

      @Fraecak_l 好吧,自己搭建DNS服务器太麻烦了吧(当然能自己搭建当然好),找个支持DNS代理(服务器代替你本地DNS)的代理软件就行了,如手机上用 SS(用VPN模式),电脑上用 COW 之类,具体自己搜搜,我这里也只能点到为止,你懂的。

    • zwwooooo zwwooooo Firefox 44.0 Windows 10 x64 Edition

      @Fraecak_l 哦,忘了你要本地和国外分离,简单点:用支持 pac 的代理软件,把国内常用域名/ip设置为直通——这个很多地方会有提供列表+自己增加。或者偷懒用自动判断是否要代理的 COW

  13. Fraecak_l Fraecak_l Google Chrome 48.0.2564.109 Windows 7 x64 Edition

    没看懂,我是计算机小白…… :cry: 这话的意思是这个办法只能是每次要访问哪个网站的时候临时设置,等访问结束再恢复 DNS 默认设置吗?还是说,这个办法就全然不能用于解决在国外访问国内网站速度慢的问题了?

    39楼
  14. Fraecak_l Fraecak_l Google Chrome 48.0.2564.109 Windows 7 x64 Edition

    感谢!虽然还是看不懂…… 我会查资料自学的 :shock:

    40楼
  15. Fraecak_l Fraecak_l Google Chrome 48.0.2564.109 Windows 7 x64 Edition

    搞定了就写个详细的图文教程出来~

    41楼

Leave a Reply