-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v1.0.12中对于APP_DNS_PROXY链的更改也许是错误的 #68
Comments
#60 或许就是这个问题。 |
我或许并不是这个问题, 我这里其他的网站都带着域名进了V2Ray交由dns模块去1.1.1.1查询了, 只有raw.githubusercontent.com这个域名不行, 甚至www.githubusercontent.com都去1.1.1.1查了. |
是这个问题,已经破案了,这里修改使大部分dns查询并不被dnat到65534,甚至可以说v2ray一直都没有从这个端口接收到inbound流量。 然后raw.githubusercontent.com被污染,找系统dns先查ip,拿到的是0.0.0.0,所以不会被redirect到65535,导致访问不了。 其他网站都带着域名进入v2ray也不太准确,这里的透明代理会redirect所有tcp流量到65535端口给v2ray处理,所以v2ray是sniffing得到的域名,并再次走内置dns查询一次,并不是带着域名进入v2ray inbound(socks入站应该是带的)。 总结:有leak的风险,因为进入65535之前使用系统dns查询过一次dns。 @whalechoi 正在处理这个问题,准备使用dns2sock接管系统dns然后交由v2ray处理,所以…还是需要在nat表output链对udp destport 53做一个dnat… |
@whyou @whalechoi
3d60b1c#diff-28ebf3ac97ae16c40ef281e6f8c6c053R116
这里的更改使得在进行dns查询时,只有当目的dns server等于配置里dokedemo inbound的dns server时才会转到V2RAY_APP_DNS链,再DNAT到本地65534,交由v2ray dns outbound处理。
结果就是在没有设置系统全局dns为inbound配置里的server时,所有dns查询都是走的系统dns,但实际上安卓很难自定义dns。
做了个测试,就以经常被污染的 raw.githubusercontent.com进行,这里config.json的inbound tag 'dns-in'的默认dns server为1.1.1.1。
未revert此commit之前
v2ray server的access.log
可以看到,只有指定1.1.1.1才会交由v2ray dns outbound处理。
revert此commit后
v2ray server的access.log
正常了。
其实v2ray接管dns最主要的应用就是分流,收到dns请求后根据内置dns模块的规则,从上到下依次进行查询dns,而内置dns模块又会经过路由,所以如果server列表如果是:
1.1.1.1
223.5.5.5
在进行dns查询时,首先查询1.1.1.1,它根据routing,应该走proxy。而对于223.5.5.5,如果有geoip:cn规则的话,应该direct。
所以不用担心China DNS查询时会变慢。
以上只是个人见解,也可能是一加手机太$B导致的特例。
The text was updated successfully, but these errors were encountered: