Skip to content
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

关于vpn dns #4386

Open
GleenJi opened this issue Mar 14, 2025 · 6 comments
Open

关于vpn dns #4386

GleenJi opened this issue Mar 14, 2025 · 6 comments

Comments

@GleenJi
Copy link

GleenJi commented Mar 14, 2025

在提出问题前请先自行排除服务器端问题,同时也请通过搜索确认是否有人提出过相同问题。

在使用自定义配置,dns也是开启本地dns了,确实也是由xray core处理,但是发现了一个现象

预期行为

描述你认为应该发生什么
当使用自定义配置文件后,dns请求都被自定义配置中的dns模块接管,对于大部分app使用都没啥问题,包括百度app,但目前发现了一个问题,就是用手机浏览器打开baidu.com,按理说应该这个dns请求应该被xray core的dns模块处理

实际行为

描述实际发生了什么
但实际上这个dns请求依然是被vpn dns处理,当vpn dns为境外dns比如1.1.1.1,显然用app浏览器打开baidu.com就比较慢,当vpn dns为国内dns比如223.5.5.5,打开就很快正常了,也就是说用app浏览器打开baidu.com这个dns请求被vpn dns处理了,而没有被xray core的dns模块处理

复现方法

日志信息

通过adb logcat -s com.v2ray.ang GoLog V2rayConfigUtilGoLog Main获取日志。请自行删减日志中可能出现的敏感信息。

如果问题可重现,建议先执行adb logcat -c清空系统日志再执行上述命令,再操作重现问题。

在这里粘贴日志

环境信息

额外信息(可选)

@2dust
Copy link
Owner

2dust commented Mar 17, 2025

目前是这样的,暂时达不到你要的结果。
如果你很介意这个,可以安装多个浏览器来解决 或 试一试其他 的吧。

@GleenJi
Copy link
Author

GleenJi commented Mar 17, 2025

目前是这样的,暂时达不到你要的结果。 如果你很介意这个,可以安装多个浏览器来解决 或 试一试其他 的吧。

非常感谢开发者的付出,后续也试了一下,发现手机浏览器edge,chrome会这样,而firefox不会这样,跟浏览器也有关系

@t-e-s-tweb
Copy link

This is the current situation, and the result you want cannot be achieved for the time being. If you really mind this, you can install multiple browsers to solve it or try other ones.

I am very grateful for the developer's efforts. I tried it later and found that mobile browsers such as Edge and Chrome would behave like this, but Firefox would not. It may also be related to the browser.

Check browser settings. Most chromium ones have dns over https on by default that processes all requests. Turn that off in the browser settings.

@patterniha
Copy link

patterniha commented Mar 28, 2025

This is about Xray-core and has nothing to do with v2rayNG,
for now you can do one of the following:

  • turn off the secure/private DNS in android-settings and chrome-settings.
  • turn the sniffing on, and don't enable routeOnly, also you should use "forceIP" domainStrategy for direct(freedom-outbound).

for more information see: XTLS/Xray-core#4543

@2dust

you can close this issue now.

@GleenJi
Copy link
Author

GleenJi commented Mar 29, 2025

各位大佬,后续又把配置文件改进了一下,之前的dns模块是这么写的:
"dns":
{
"tag": "dns_query",
"servers":
[
"8.8.8.8",
"1.1.1.1",
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "119.29.29.29",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "localhost",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
"localhost"
]
}
然后我改成了:
"dns":
{
"tag": "dns_query",
"servers":
[
"8.8.8.8",
"1.1.1.1",
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "119.29.29.29",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "localhost",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ]
},
{
"address": "119.29.29.29",
"domains": [ "geosite:cn" ]
},
{
"address": "localhost",
"domains": [ "geosite:cn" ]
},
"localhost"
]
}
这种情况下就正常了,看样子和
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
}

{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ]
}
也有一定的关系?

@GleenJi
Copy link
Author

GleenJi commented Mar 29, 2025

各位大佬,后续又把配置文件改进了一下,之前的dns模块是这么写的: "dns": { "tag": "dns_query", "servers": [ "8.8.8.8", "1.1.1.1", { "address": "223.5.5.5", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, { "address": "119.29.29.29", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, { "address": "localhost", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, "localhost" ] } 然后我改成了: "dns": { "tag": "dns_query", "servers": [ "8.8.8.8", "1.1.1.1", { "address": "223.5.5.5", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, { "address": "119.29.29.29", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, { "address": "localhost", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }, { "address": "223.5.5.5", "domains": [ "geosite:cn" ] }, { "address": "119.29.29.29", "domains": [ "geosite:cn" ] }, { "address": "localhost", "domains": [ "geosite:cn" ] }, "localhost" ] } 这种情况下就正常了,看样子和 { "address": "223.5.5.5", "domains": [ "geosite:cn" ], "expectIPs": [ "geoip:cn" ] }

{ "address": "223.5.5.5", "domains": [ "geosite:cn" ] } 也有一定的关系?

我仔细想了想,感觉过程应该是这样的:
v2rayng的vpn dns充当localhost的角色,默认为1.1.1.1,对于改进前的dns配置,对于一些匹配geosite:cn但不匹配geoip:cn的域名,由于存在
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "119.29.29.29",
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
{
"address": "localhost", //v2rayng can use dns-local directly in tun2socks mode
"domains": [ "geosite:cn" ],
"expectIPs": [ "geoip:cn" ]
},
"localhost"
所以从第一个匹配的dns服务器依次往下走,223.5.5.5,119.29.29.29和第一个localhost(1.1.1.1)返回空解析,进而用最后一个localhost(1.1.1.1)解析,而对于localhost(1.1.1.1)走直连,解析效率不高,所以导致访问一些匹配geosite:cn但不匹配geoip:cn的域名会比较慢,所以如果把v2rayng的vpn dns改为国内dns,那么使用手机浏览器(edge chrome)访问baidu.com就快了。

使用改进后的配置,由于存在
{
"address": "223.5.5.5",
"domains": [ "geosite:cn" ]
},
{
"address": "119.29.29.29",
"domains": [ "geosite:cn" ]
},
{
"address": "localhost", //v2rayng can use dns-local directly in tun2socks mode
"domains": [ "geosite:cn" ]
}
符合geosite:cn的域名又依次使用223.5.5.5,119.29.29.29解析,这回因为没有"expectIPs": [ "geoip:cn" ],所以解析结果快速返回能够正常快速访问

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants