我正在尝试编写一个Go App,让我可以生成数字海洋水滴。它在我的台式机和笔记本电脑上工作正常,但是当我尝试在Termux的Android手机上运行它时,我得到图像中显示的问题。我已经在他们的GitHub上提出了一个问题,但我不确定这是否与Termux有关,或者我是否遗漏了某些内容。
以下是错误的一部分:
在[:: 1]上拨打tcp:lookup api.digitalocean.com:53:read udp [:: 1]:39143-> [:: 1]:53:read:connection refused
不确定为什么尝试将localhost用作dns服务器。这是一张图片:
答案 0 :(得分:2)
只需创建/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。
答案 1 :(得分:1)
Your phone is trying to connect to itself:[::1]:39143->[::1]:53
我的猜测是您的手机可能没有运行本地DNS服务器,因此您收到connection refused
错误。
您的nslookup
无关紧要,因为您直接与8.8.8.8
相关联。相反,请尝试nslookup ::1
或dig @::1 google.com A
答案 2 :(得分:0)
我还发现可以使用proot
来加载resolv.conf
。示例:
pkg install proot resolv-conf
proot -b $PREFIX/etc/resolv.conf:/etc/resolv.conf ./fastnet
答案 3 :(得分:0)
我使用termux-chroot
解决了我的问题,您可以在此处4