支持通配符的DNS代理

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,添加:

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],有兴趣的同学可以看一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值