希望增加 queryStrategy: "UseIPv4" 针对不同dns分流上游服务器分别设置 #1775
heygo1345678
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我使用这个参数queryStrategy: "UseIPv4"发现只能是在dns{}块里面设置,而且是全局所有国内国外分流的上游dns都是a解析了,
测试在单独的国外dns分流 dns{ "servers": [ {} ] }设置这个参数,虽然没有报错,但是并没有生效。还是使用了默认的UseIP了
为什么会有这个需求?
我目前宽带是双栈网络,目前ipv4 tproxy+内置dns分流是正常使用,目前是国内双栈网站直连走ipv6,国外双栈网站会出现第一次打开网页无法显示,大约1s内会自动刷新打开,我认为原因是国外被墙网站查询到了ipv6地址,使用ipv6地址优先发起连接,可能我能力问题,参考官方文档,始终没有成功实现ipv6 tproxy,此时因为是被墙网站ipv6+sni直连访问国外,被重置,而ipv4 tproxy透明代理sniffing到了sni,因此大约1s内会自动刷新打开。
在没有成功实现ipv6 tproxy的情况下,为了避免被墙网站ipv6+sni直连泄漏,
于是才有了希望增加 queryStrategy: "UseIPv4" 针对国外dns分流上游服务器 , queryStrategy: "UseIP" 针对国内dns分流上游服务器 这个需求,但是上面开头实验了,xray并不能这样设置,
于是我实验一个配置文件里面两个dns{}块,分别设置
queryStrategy: "UseIPv4" 针对国外dns分流上游服务器 , queryStrategy: "UseIP" 针对国内dns分流上游服务器
但是这个是有问题的,只有被墙网站才能打开,国内网站不通,觉得是xray不支持,所以错乱了;
于是我实验俩个配置文件里面两个dns{}块,分别设置
queryStrategy: "UseIPv4" 针对国外dns分流上游服务器 单独一个配置文件dnsipv4only.conf, queryStrategy: "UseIP" 针对透明代理内置dns默认设置,
只是这个透明代理内置dns国外分流上游使用嵌套的dnsipv4only.conf设置的作为上游,
测试使用/usr/bin/xray -config /etc/xray/config.json -config /etc/xray/dnsipv4only.json 一次执行多个配置文件也是一样dns是坏的,只能访问被墙网站,国内打不开。
于是我单独起个docker xray容器单独执行/usr/bin/xray -config /etc/xray/dnsipv4only.json,这样嵌套的dns ipv4 only服务器才正常使用,国内双栈网站因为 queryStrategy: "UseIP" 针对透明代理内置dns默认设置,因此会ipv6直连,国外被墙网站因为上面嵌套的dnsipv4only.json是只解析ipv4,因此不会发生被墙网站ipv6+sni直连访问国外被重置泄漏sni的问题
由于这样套娃我想一个配置文件搞定,于是国外dns分流决定启用fakedns,国内dns还是正常解析走双栈直连,
但是我发现这个fakedns还是有一些网站不能正常打开的,虽然已经加了代理dns和代理路由规则,上面嵌套dns ipv4 only服务器就没有这个问题,
而我又不想引入第三方dns服务器。
其间还折腾过iptable是drop 国外dns的aaaa:
需要借任意门嵌套dns。也就是xray 内置dns分流国外的上游服务器上游dns设置为任意门搞的内网IP的dns: "address": "tcp://192.168.1.1:55553",
任意门转发到国外某个公共dns,然后将这个公共dns在路由规则里面加入代理列表
"servers": [
{
在嵌套的内网IP dns "address": "tcp://192.168.1.1:55553",上面使用iptables做aaaa请求DROP/REJECT:
iptables -I OUTPUT -p tcp -d 192.168.1.1 --dport 55553 -m string --algo bm --from 40 --hex-string '|001c|' -j DROP
但是Windows上面测试访问被墙双栈网站还是打开需要10秒左右,延迟太大,
后来测试Android上面访问被墙双栈网站还是打开需要10秒左右,延迟太大,
看了一个issue:
IrineSistiana/mosdns#75
我理解的这个issue描述的意思是mosdns不打算实现 AAAA查询过滤,强制返回SOA来模拟实际无AAAA记录,
我使用iptables直接drop aaaa请求,不返回SOA违反了RFC,
因此希望大佬简化我的套娃配置,如果可以的话。
Beta Was this translation helpful? Give feedback.
All reactions