[发布]一个DNS代理,支持TCP协议,支持内网私有DNS

2013-06-13 11:27:28 +08:00
 linkerlin
BlackHolePy 一个支持TCP和白名单的DNS代理服务器

https://github.com/linkerlin/BlackHolePy

BlackHolePy
===========


BlackHolePy是一个迷你型的DNS(代理)服务器。
它的主要特色:
1) 支持TCP DNS并支持白名单,从而在防止DNS污染的同时支持了内部私有域名解析。
如果你的企业或组织在内部架设了自己的DNS Server,那么可以配置 config.py 里面的 WHITE_DNSS 。
2) 内置了Cache, 带给你飞一般的感觉。尤其是访问国外网站的时候。





运行需求
===========
Python 2.7 或者 PyPy 2.0.2
如果能安装 GEvent 和 dnspython 那就最好了。不装也能跑。
安装GEvent以后,BlackHolePy运行在单线程模式,快捷并节约系统资源。
在 PyPy 2.0.2 下测试通过。但是PyPy的coroutine暂时还没有支持。


运行
===========
sudo python dnsproxy.py


然后把你的DNS服务器配置到 127.0.0.1 即可。


感谢
===========
本项目是基于以下两个项目的思路,重新编写的。
https://github.com/henices/Tcp-DNS-proxy
https://github.com/code4craft/blackhole
在此感谢这两个项目的作者!
12685 次点击
所在节点    Python
8 条回复
venmos
2013-06-15 22:48:09 +08:00
已经clone到一台linux server上使用,装了gevent和pythondns感觉速度还不错,没装前有点慢。
暂时没什么问题,good job
fqrouter2
2013-06-15 23:55:24 +08:00
也许楼主的需求不是为了翻墙,但是与我为了anti-GFW做的fqdns很像: https://github.com/fqrouter/fqdns
fqdns的目标是最快速度拿到没有被污染的解析结果,而且解析出来的IP还最好是最佳的线路。
Ellonia
2013-06-16 02:31:36 +08:00
这是不是一个简化版的dnsmasq?
wowo2088
2013-06-16 14:54:37 +08:00
明天试一试~~
wowo2088
2013-06-17 16:36:49 +08:00
cannot find dnspython
cannot find gevent
cannot find dnspython
>> Please wait program init....
>> Init finished!
>> Now you can set dns server to 127.0.0.1
listening at: ('0.0.0.0', 53)

这个状态是正常的么~~~
cannot find dnspython
cannot find gevent
cannot find dnspython
这三行不碍事吧~
dnser
2013-06-17 18:35:50 +08:00
和DNSCrpyt有什么区别?
linkerlin
2013-07-07 02:17:34 +08:00
出现没有gevent提示的,可以装一下gevent。
虽然稍微有些麻烦。
不装也能跑,但是不是很快了。
pythonee
2013-09-15 11:48:54 +08:00
能先说为什么需要dns代理吗,我是小白

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/72215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX