hosts文件可以手动配置一些域名的IP地址,它的优先级最高,有些网站的IP地址不能被正确的解析,这么情形在我国比较常见,可以直接在hosts文件直接指定网站的IP地址来解决。hosts文件的一个缺点是不支持通配符,要为所有的blogspot网站指定IP地址几乎不可能。解决办法就是在本地建个DNS代理服务器,它负责解析hosts文件中的通配符域名,有一些开源的dns服务器,比如bind和dnsmasq,bind主要是充当DNS服务器,我不清楚它是否支持代理功能,另外它太重了。dnsmasq支持代理,也很简单,但是却不支持[url=http://www.alibuybuy.com/posts/14352.html]IPv6[/url]。我就python写了一个,支持IPv6,带缓存,源代码在[url=http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py]这里[/url],并不长,不到200行。
用法:修改/etc/hosts,添加:
然后使用:
上面使用8.8.8.8(即google的DNS服务器)作为实际代理服务器。然后将本机的DNS服务器设置成127.0.0.1就可以了。
可以用dig来测试,例如:
p.s. 作为副产品,我还写了一个DNS包的解析器,源代码在[url=http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsparser.py]这里[/url],有兴趣的同学可以看一下。
用法:修改/etc/hosts,添加:
127.0.0.1 *.local
2404:6800:8005::62 *.blogspot.com
然后使用:
sudo python dnsproxy.py -s 8.8.8.8
上面使用8.8.8.8(即google的DNS服务器)作为实际代理服务器。然后将本机的DNS服务器设置成127.0.0.1就可以了。
可以用dig来测试,例如:
$ dig test.local
$ dig test.blogspot.com
p.s. 作为副产品,我还写了一个DNS包的解析器,源代码在[url=http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsparser.py]这里[/url],有兴趣的同学可以看一下。