Pcap_DNSProxy 一个忽略 DNS 投毒污染的小工具

2014-06-23 20:46:53 +08:00
 chengr28
https://github.com/chengr28/pcap_dnsproxy

自己的小工程(?)嘛用的是 C/C++(其实骨子里是用了Cpp语法的C)
之前看到SS的大大发了一个工具被引来了这边……
听说用Python写简单,大部分DNS本地代理都是Python写的,可惜完全不懂
看到这几天这么多工具忽然都冒出来被吓了 =3=

回归正题
这工具用的是 Pcap 抓包,什么IP头啊UDP都能看到,过滤其实也不难
支持正则表达式的Hosts
当然也支持TCP请求,不过TCP有几个固定域名会被连接重置,而且考虑资源占用当然首选UDP
也可以把域名重定向请求境内的DNS服务器提高速度,不过规则我看过长得无法直视……就不带了
v0.4里开始支持DNSCrypt的协议
Windows/Linux/Mac 三个版本,不过Linux/Mac可能更新得比较慢
43590 次点击
所在节点    程序员
54 条回复
LazyZhu
2014-06-23 21:03:20 +08:00
“把域名重定向请求境内的DNS服务器”这个功能需要啊,类似于Dnsmasq的server设置,可以基于gfwlist做dns请求重定向
chengr28
2014-06-23 21:07:37 +08:00
@LazyZhu 哦哦可能是我的说法有问题……我的意思是规则太长项目没有自带,这个功能是有的,默认用的是114DNS: https://lh6.googleusercontent.com/-z1IfbCdAnJs/U6gj21OK4SI/AAAAAAABuJc/v_8IVkZ9pCk/w0/2014-06-23-RX-Hosts-Support.png
jyzhengqian
2014-06-23 21:09:44 +08:00
围观Twitter上著名的28小盆友
LazyZhu
2014-06-23 21:23:06 +08:00
哦,你这个有点不一样,是白名单么?我可以改成黑名单来用么,就是把gfwlist加入Local Hosts,并把IPv4 Local DNS Address改成自己的可用dns可以么
LazyZhu
2014-06-23 21:29:54 +08:00
@jyzhengqian 难怪,眨眼功夫他又发了个twitter -_-!
xinhugo
2014-06-23 21:41:42 +08:00
提供一份白名单(正则表达式),大部分以GitHub收集的域名列表转换而来。

https://xinhugo-list.googlecode.com/svn/trunk/White_List.txt
LazyZhu
2014-06-23 21:53:57 +08:00
@xinhugo 都是以b开始的?

PS:白名单是无止境的,黑名单只有2000+
streamgo
2014-06-23 21:56:26 +08:00
@chengr28 安装服务、启动程序,均报错。WIN7 64位系统。
xinhugo
2014-06-23 22:06:54 +08:00
@LazyZhu 白名单改成黑名单用?当然可以。

编辑 Config.ini,「IPv4 DNS Address」、「IPv4 Alternate DNS Address」与「IPv4 Local DNS Address」、「IPv4 Local Alternate DNS Address」的地址互换即可。

即:
1.「IPv4 DNS Address」、「IPv4 Alternate DNS Address」填写境内DNS地址;
2.「IPv4 Local DNS Address」、「IPv4 Local Alternate DNS Address」填写境外DNS地址。


以上,可实现 Hosts.ini 的[Local Hosts]部分,所包含的正则表达式匹配的域名,由境外DNS地址解析。
xinhugo
2014-06-23 22:17:21 +08:00
@LazyZhu 建议提供报错信息,以便判断问题原因。

猜测:
1.WinPcap 没安装?
2.127.0.0.1:53 被占用?


@LazyZhu Pcap_DNSProxy 使用正则表达式匹配。例如,
规则:「.*\b163\.com」
匹配:「163.com」、「mail.163.com
不匹配:「1163.com

白名单,匹配中国境内有服务器的解析率高的域名就够了。只有一台服务器的域名,使用境外DNS服务器解析,也不会变慢。
streamgo
2014-06-23 22:25:09 +08:00
一、
[SC] ControlService 失败 1062:

服务尚未启动。

[SC] DeleteService 成功
[SC] CreateService 成功
操作成功完成。
操作成功完成。
[SC] ChangeServiceConfig2 成功
[SC] StartService 失败 1053:

服务没有及时响应启动或控制请求。


Done. Please confirm the PcapDNSProxyService service had been installed.

请按任意键继续. . .


二、
[SC] StartService 失败 1053:

服务没有及时响应启动或控制请求。


Done. Please confirm the PcapDNSProxyService service had been started.

请按任意键继续. . .

三、
WinPcap 已安装。
xinhugo
2014-06-23 22:50:04 +08:00
@streamgo 作者已了解你的反馈,稍后在GitHub下载新版本试试。

——我具备客服的潜质?
AstroProfundis
2014-06-23 23:28:16 +08:00
www看到好久了,不过一直还没试过_(:зゝ∠)_
xinhugo
2014-06-24 00:13:25 +08:00
@streamgo @AstroProfundis 新版本已上传到GitHub,欢迎使用以及反馈。

https://github.com/chengr28/pcap_dnsproxy
RIcter
2014-06-24 01:04:41 +08:00
28小朋友(`・ω・´)
streamgo
2014-06-24 02:13:17 +08:00
新版正常了。需要修改DNS为127.0.0.1吗?
missdeer
2014-06-24 09:29:35 +08:00
我也是来围观推友作品的~
dopcn
2014-06-24 10:03:08 +08:00
这个使用说明相当复杂,不明觉厉
xinhugo
2014-06-24 13:39:06 +08:00
@streamgo 当然需要设置当前网络连接的 DNS 服务器地址啦。

chengr28 在 Wiki 清楚列出了安装方法,建议阅读。(拿到新产品,先看说明书,竟然不是习惯?)

https://github.com/chengr28/pcap_dnsproxy/wiki/ReadMe


@dopcn 清楚的使用说明,能有效降低使用新产品的时间成本。
chengr28
2014-06-24 16:01:37 +08:00
@LazyZhu @xinhugo
白名单其实有个更简单的方法……ReadMe里也有提到这个功能 -> https://github.com/chengr28/pcap_dnsproxy/wiki/ReadMe#whitelist---%E7%99%BD%E5%90%8D%E5%8D%95%E6%9D%A1%E7%9B%AE

境内解析没有过滤伪包的能力,如果直接对换会被投毒污染的
例如我想只有符合 *.google* 的域名才使用远程服务器,其它全部使用境内服务器解析

[Local Hosts]
NULL .*\.google.*
.*\b

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

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

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

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

© 2021 V2EX