安卓Termux运行Go语言网络程序出现lookup xxx on [::1]:37606->[::1]:53: read: connection refused 的解决方案

安卓Termux运行Go语言网络程序出现lookup xxx on [::1]:37606->[::1]:53: read: connection refused 的解决方案,第1张

目录 问题场景:原因分析:解决方案:

其实StackOverFlow上面已经有解决方案了,可以去看

https://stackoverflow.com/questions/38959067/dns-lookup-issue-when-running-my-go-app-in-termux

本文只是进行一个总结

问题场景:

一个Go语言程序,按照 GOOS=linux GOARCH=arm64 进行编译,程序里面用到了Go的http包进行网络传输。目标是在安卓Termux终端上成功运行

系统信息:Redmi Note 8 Pro,Android 11 Pixel Experience 手机已ROOT

原因分析:

就像StackOverflow上面说的那样

Since the Linux in Android is not so “standard”. /etc/resolv.conf is not available. The app then just keep looking up host in localhost:53.

安卓上面的Linux不是很标准,不使用Linux通用的/etc/resolv.conf进行DNS解析,这导致一般的Linux程序因找不到这个文件而无法进行DNS解析,进而无法进行网络通信。

解决方案:

很简单,只需要在手机根目录的 /etc/ 文件夹下新建一个名为 resolv.conf 的文件,内容如下,一行即可

nameserver 8.8.8.8

注意:访问手机根目录需要ROOT权限,本人的手机已经ROOT了所以就直接新建即可。如果没有ROOT,建议参考下面这个Github上面的讨论尝试一下,但由于未经本人尝试,成功与否不做保证。

https://github.com/termux/termux-app/issues/869#issuecomment-433985523

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/994997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存