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

其实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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值