我正在尝试编写一个让我生成 Digital Ocean 液滴的 Go 应用程序。它在我的台式机和笔记本电脑上运行良好,但是当我尝试在我的 Android 手机上使用 Termux 运行它时,我遇到了如图所示的问题。我已经在他们的 GitHub 上提交了一个问题,但我不确定这是否与 Termux 相关,或者我是否遗漏了什么。
这是错误的一部分:
dial tcp: lookup api.digitalocean.com on [::1]:53: read udp [::1]:39143->[::1]:53: read: connection refused
不确定为什么要尝试使用 localhost 作为 dns 服务器。这是日志:
Preparing to unpack .../resolv-conf_1.0_aarch64.deb ...
Unpacking resolv-conf (1.0) ...
Selecting previously unselected package dnsutils.
Preparing to unpack .../dnsutils_9.10.4-1_aarch64.deb ...
Unpacking dnsutils (9.10.4-1) ...
Setting up ca-certificates (20160429) ...
Setting up openssl (1.0.2h-1) ...
Setting up resolv-conf (1.0) ...
Setting up dnsutils (9.10.4-1) ...
$ ./fastnet
2016/08/15 02:28:53 Get https://api.digitalocean.com/v2/images?private=true: dial tcp: lookup api.digitalocean.com on [::1]:53: read udp [::1]:39143->[::1]:53: read: connection refused
$ nslookup google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 216.58.194.174
最佳答案
只需创建 /etc/resolv.conf
并附加 nameserver 8.8.8.8
那么这个问题就解决了。
根据 src/net/dnsclient_unix.go ,如果 /etc/resolv.conf
不存在,则选择 localhost:53
作为名称服务器。
由于Android中的Linux并不是那么“标准”。 /etc/resolv.conf
不可用。然后,该应用会继续在 localhost:53 中查找主机。
关于android - 在 Termux 中运行我的 Go 应用程序时出现 DNS 查找问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959067/