在Debian系统中,尽管可以使用nslookup来解析名称,但是在浏览器等其他应用中却无法解析名称的问题

由于很入迷,所以记了下来。

结论

让我们修改nsswitch.conf文件!

经过

我們決定為開發需要而設置新的伺服器。

    • VMware ESXi5.5上にDebian9をインストール

 

    マシンには「192.168.1.28」のipを固定する

在本地网络中安装了DNS服务器(192.168.1.25),希望优先参考该DNS进行设置。
因此,在/etc/network/interfaces中按照以下方式进行了记录。

iface ens32 inet static
    address 192.168.1.28
    netmask 255.255.255.0
    gateway 192.168.1.10
    dns-nameservers 192.168.1.25

网络重新启动后使用nslookup进行确认,看起来没问题。
为了确认,可以尝试在浏览器中进行确认。页面加载错误…糟糕。

resolv.conf配置正确,dig和nslookup也都没有问题。这是怎么回事,Debian!

解决

当我在调查/etc/hosts时,发现了关键词”nsswitch.conf”,在【Ubuntu】”sudo: ホストxxxの名前解決ができません”无法解决的文章中。

关于hosts和nsswitch的内容,DNS系备忘录中有一份易于理解的描述。

据说,尽管更改了nsswitch.conf文件,nslookup、host和dig的行为并不会改变。

这个情况难道不是如此吗?

nsswitch.conf 翻译成中文可以是:网络服务开关配置文件

查看/etc/nsswitch.conf的源代码。

...
hosts:    files mdns4_minimal [NOTFOUND=return] dns myhostname
...

在nsswitch中,似乎会按照从左到右的顺序评估所写的元素。以这种描述,如果是files -> mDNS -> NOTFOUND,则返回。这样 DNS 就得不到传递吗…?

我第一次听说mDNS这个词。

使用mDNS的节点将向多播地址(224.0.0.251)的UDP端口5353发送DNS查询,并且如果有相应的设备存在,该节点将返回响应。

听说是这样的。由于疲劳不堪,如果有时间的话,我会仔细调查这个问题。

由于本次不使用mDNS,因此将其改写如下。

...
hosts:    files myhostname dns 
...

重新启动网络,浏览器上能够正确解析名字了。
虽然解决方法有些模糊不清,但因为起作用了,算了吧。
由于内容变得有些含糊不清,如果有哪里出错了,请指出,我将不胜感激。

文献引用

    • 【Ubuntu】「sudo: ホストxxxの名前解決ができません」が治らない…

 

    • DNS系備忘録

 

    • mDNSの謎について

 

    Linux、「/etc/host.conf」「/etc/nsswitch.conf」とはなんぞや?
bannerAds