如何使用本地 DNS 解析器实现 Android VPN 应用程序

问题描述 投票:0回答:1

是否可以使用 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服务器,但这还不是我的目的,它没用。

那么,我该怎么做?

如有任何建议,我们将不胜感激。

android dns local vpn resolver
1个回答
0
投票

要使用本地 DNS 解析器实现 Android VPN 应用程序,您应该扩展 VpnService 类并将其配置为通过本地解析器路由 DNS 查询。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.