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列表到文本编辑器批量修改)

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

zww
or
oooo

“Windows 下使用国外 DNS 访问国内网站慢的解决方法”有86条评论

  1. Anna says:

    非常感谢你的分享,但是我碰到些问题。
    我的情况是我先用手机先链接家里的路由器然后再连接台式机来上网的。
    我按照你的方法一步步做下来就出现了下面的内容。然后我就不知道该怎么办了 :cry: 我尝试看别人碰到相同的问题怎么弄,但是完全看不懂他们的回复 https://sourceforge.net/p/dhcp-dns-server/discussion/451063/thread/bc629d1d/
    我由于在学习怎么投资中国股市,所以需要登录国内网站http://fund.eastmoney.com/
    但是速度太慢,所以搜索到你的攻略。我运行RunStandAlone.bat出现了以下界面。请问我该怎么弄呀?

    Dual DHCP DNS Server Version 7.40 Windows Build 7050 Starting...
    Starting DNS Service
    DNS Logging: Normal
    Warning: Interface 192.168.42.85 is not Static, ignored
    Server Name: J
    Domain Name: workgroup
    Default Host Expiry: 36000 (sec)
    Conditional Forwarder: 192.168.1.1 for eastmoney.com
    Default Forwarding Server: 192.168.42.129
    Detecting Static Interfaces..
    Warning: Interface 192.168.42.85 is not Static, ignored
    No Static Interface ready, Waiting...

    1. zwwooooo says:

      这是很久的文章了,现在适合不适合不清楚。不过从你的允许log看,你的网卡地址是不是不对啊,跟网关不在同一IP段

发表评论

昵称 *

网址

B em del U Link Code Quote