我有一个使用musl libc的高山linux系统,因此没有/etc/nsswitch.conf
。
根据该系统上的tcpdump,实际上net.LookupIP("localhost")
进行了localhost.a.b.c
的查询,其中a.b.c
来自domain a.b.c
中的/etc/resolv.conf
。但是,如果我将/etc/nsswitch.conf
与hosts: files dns
添加在一起,它将正确地从localhost
中查找/etc/hosts
。
据我所知,没有libc实现会尝试在DNS中向localhost
添加域。因此(a)是否有充分的理由采用这种方法,或者它是一个错误? (b)是否有一种方法可以解决此问题,而无需添加nsswitch.conf并仅使用名称localhost
?
编辑 :更多详细信息:
ldd ./dnstest
/lib/ld-musl-armhf.so.1 (0x76f2c000)
libc.so => /lib/ld-musl-armhf.so.1 (0x76f2c000)
是的,对libc.so
有依赖性。我也在构建命令行中使用CGO_ENABLED=1
和CGO_ENABLED=0
进行了尝试。