安卓手机上使用v2rayNG连接Shadowsocks节点时,可能会出现节点有效但无法联网的情况。例如,在电脑上可以使用,但在手机上无法使用,或者可以使用Telegram,但无法访问Google或YouTube等网站。这通常是由DNS问题引起的。电报直接通过IP建立连接,不需要进行DNS域名解析,而Google和YouTube则需要先将域名解析为IP地址,然后访问。
如果出现此问题,您可以尝试在设置中打开私人DNS,选择自动模式,然后保存并重新连接节点。Android 9之后引入了私人DNS功能,但某些手机可能会使用不同名称,例如加密DNS,但其功能相同。启用私人DNS后,将使用DNS over TLS进行域名解析。
此问题并不仅限于此软件,因为此软件也是基于开源的v2rayNG修改而成。v2rayNG也存在同样的问题,并且经过多次测试确认是DNS问题。可能是因为手机上使用的是tunnel模式,与计算机上的socks代理原理不同,这会导致DNS解析流程出现问题。设置的DNS将通过代理进行传输,长城防火墙无法拦截代理的DNS请求。如果遇到此问题,您只需将私人DNS更改为自动即可,更改为私人DNS后,它将尝试发送DNS over TLS请求。由于该软件内置了Cloudflare的DNS服务器1.1.1.1,它支持DNS over TLS,因此在启用自动模式后,它将尝试建立DNS over TLS连接。