论坛首页 编程语言技术论坛

支持通配符的DNS代理

浏览 4124 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-05   最后修改:2011-05-05
hosts文件可以手动配置一些域名的IP地址,它的优先级最高,有些网站的IP地址不能被正确的解析,这么情形在我国比较常见,可以直接在hosts文件直接指定网站的IP地址来解决。hosts文件的一个缺点是不支持通配符,要为所有的blogspot网站指定IP地址几乎不可能。解决办法就是在本地建个DNS代理服务器,它负责解析hosts文件中的通配符域名,有一些开源的dns服务器,比如bind和dnsmasq,bind主要是充当DNS服务器,我不清楚它是否支持代理功能,另外它太重了。dnsmasq支持代理,也很简单,但是却不支持IPv6。我就python写了一个,支持IPv6,带缓存,源代码在这里,并不长,不到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包的解析器,源代码在这里,有兴趣的同学可以看一下。
   发表时间:2011-06-09  
这个不错……有没有支持正则表达式的?哈哈
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics