V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pagxir  ›  全部回复第 65 页 / 共 70 页
回复总数  1381
1 ... 57  58  59  60  61  62  63  64  65  66 ... 70  
2015-04-17 09:49:27 +08:00
回复了 nolotus 创建的主题 问与答 麻烦程序员帮帮忙,写一个简单的东西
关于判断是否域名污染的原理,有个人写过,但是暂时无法找到了。大致是,往境外发一个DNS请求包,目的地址的服务器并非是一个DNS服务器,所以期待的结果是完全没有应答。但是经过GFW的时候,因为GFW认为它是个被墙的域名,所以会伪造一个DNS应答。

也就是说,如果收到GFW的伪造的应答就说明该域名被墙了。
默认的配置文件中,所有被转换的域名生成的地址都是127.0.x.x (范围在dynamic-range 127.0.0.12 127.255.255.255 中)。所以,当这个程序运行在openwrt中当作dns中继的时候,其他设备将这个openwrt当作路由器时,进行域名解析时候收到的被转换的域名是127.0.x.x, 会被设备当作是本地回环地址,而无法路由出去。

而修改成 dynamic-range 100.61.0.12 100.61.255.255, 设备就会自然的将发包给openwrt进路由。

这一行的功能是:
ip addr add 100.61.0.1/10 dev lo scope global
将这个网段的捕获给回环设备,从而交给txrelay处理,这样txrelay就可以成功的将域名的访问透明的转换为socks5的代理方法连接。

之所以用iptables的原因是因为可能默认的80/443端口可能被其他进程用到,所以可以把
100.61.0.1/10 的这个网段的80/443转发成其他端口,让rxrelay在其他端口上监听。
@LazyZhu 已经增加了个类似的功能,但是不依赖与fakeip.
@LazyZhu 不是的,是直接配置文件加载的。只有fakeip才是通过DNS查询返回的结果。

openwrt可以修改一下:
dynamic-range 127.0.0.12 127.255.255.255

dynamic-range 100.61.0.12 100.61.255.255

同时增加回环IP,执行命令:
ip addr add 100.61.0.1/10 dev lo scope global

同时你可以用iptables把端口转发一下。
@LazyZhu
删掉配置文件众的这两行:

listen 80 dynamic ns-ttl 60
listen 443 dynamic ns-ttl 60
并且由两个特殊的后缀 .int 和 .ext
.int 是域名强转换操作, 比如www.163.com.int 将 返回 转换后 www.163.com 的地址,访问www.163.com.int 就相当于通过 代理连接 www.163.com, 同理 8.8.8.8.int会自动通过代理链接到 8.8.8.8

.ext 则会直接返回没有转换的地址,而直接忽略配置文件。比如 www.google.com.ext 会返回google的没经过代理的地址。
@LazyZhu 修改这个文件 dnstxrelay.conf 就可以了,增加删除端口都可以。如果不是给浏览器用的话,直接把里面的 80 / 443 端口删除。
1 ... 57  58  59  60  61  62  63  64  65  66 ... 70  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 05:58 · PVG 13:58 · LAX 22:58 · JFK 01:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.