0

我正在尝试在运行 android 4.4 的设备上启用有线以太网。我成功地启动了 eth0 接口。但是 DNS 解析没有发生。从 adb ping 地址工作正常。(如果我通过 WiFi 连接到我的路由器一次,然后 dns 得到解析并且可以使用以太网浏览)。另一个观察是,如果我不存在这个问题使用 Firefox 而不是默认浏览器。

从日志中可以清楚地看出 gethostbyname() 调用失败。当我进一步跟踪时,很明显在 android_open_proxy() 函数中打开的代理套接字不包含正确的值。

    /*   reading proxy-- proxy -->/dev/socket/dnsproxyd ..*/

如果 (fread(buf, 1, sizeof(buf), proxy) != sizeof(buf)) 返回 NULL;

    /* This is reading serialized data from system/netd/DnsProxyListener.cpp
     * and changes here need to be matched there */
    int result_code = strtol(buf, NULL, 10);

***这里 result_code 是 401(成功的情况下是 222)。

4

3 回答 3

1

值得注意的是,摩托罗拉在其手机中修改了部分 DNS 解析代码(在 Bionic libc 库中),因此提及您拥有的设备可能有助于缩小问题的范围。

ps 'ndc resolver' 命令可能是更改默认 dns 配置所必需的。例子:

ndc resolver setifdns wlan0 "" 192.168.0.1
ndc resolver setdefaultif if wlan0
于 2014-05-14T15:04:17.453 回答
0

这很奇怪,我可能需要更全面的描述来帮助我解决这个问题。以下可能会有所帮助,请尝试排除一些事情:

您可能想检查 dns 服务器是否位于与以太网不同的网络/子网上,这可以通过物理检查或查看两者的设置是否匹配来完成。

尝试手动/静态设置设置。

我猜firefox可能正在使用缓存来解析域,不同的浏览器不应该有不同的dns服务器。我能想到的最后一件事是 Firefox 使用代理服务器自动解析地址。

尝试一些事情,看看你是否可以解决它。

于 2014-05-02T07:33:02.543 回答
0

我在使用 USB 以太网适配器为媒体棒设备构建 kitkat 时遇到了这个问题。dhcpcd eth0可以让我按 IP 地址浏览,但我需要以下内容来启用 dns 查找:

ndc resolver setifdns eth0 "" 8.8.8.8 8.8.4.4

ndc resolver setdefaultif eth0

于 2015-02-06T13:44:00.197 回答