是否可以使用 VpnService.addDnsServer 制作 Android VPN 应用程序,并将 DNS 查询发送到我自己的自治 DNS 解析器服务器,监听我手机的
127.0.0.1:5353
端口?
这是我的代码片。
val builder = Builder()
.setSession("my VPN app")
.setMtu(1500)
.addAddress("192.168.10.3", 24)
.addDnsServer("127.0.0.1")
但它不适用于
Bad address
。当我的 DNS 服务器侦听 127.0.0.1:53
时,其他方式会失败并显示 Permission denied (os error 13)
,所以我必须侦听 127.0.0.1:5353
。
如果我使用
.addDnsServer("127.0.0.1:5353")
通话,应用程序将崩溃并显示 Not a numeric address: 127.0.0.1:5353
。
我已经尝试过
.addDnsServer("192.168.10.1")
,但还是不行。我的 DNS 服务器无法在 192.168.10.1:53
运行,并出现错误 Cannot assign requested address (os error 99)
。
我也尝试过
.addDnsServer("192.168.10.3")
,并在 192.168.10.3:53
运行我的 DNS 服务器,但失败了 Permission denied (os error 13)
。
这次我可以在192.168.10.3:5353
运行DNS服务器,但这还不是我的目的,它没用。
那么,我该怎么做?
如有任何建议,我们将不胜感激。
要使用本地 DNS 解析器实现 Android VPN 应用程序,您应该扩展 VpnService 类并将其配置为通过本地解析器路由 DNS 查询。