Dns

dnsdomainname 和 hostname -f 不返回 FQDN

  • July 16, 2019

我有一個帶有靜態 IP 的盒子(Rasberry Pi,執行 rasberian)。它在具有域名的網路中執行,並且我設置了多個 DNS 伺服器。

但是,我無法讓 FQDN 名稱在此框上工作:

sitron@pi:~ $ domainname
(none)
sitron@pi:~ $ dnsdomainname 
sitron@pi:~ $ hostname -f
pi

我相信我已經正確設置了 DNS:

sitron@pi:~ $ hostname -I
192.168.10.9 2001:db8:abba::9 

sitron@pi:~ $ cat /etc/resolv.conf 
domain example.org
search example.org
nameserver 2001:db8:abba::5
nameserver 192.168.10.5

sitron@pi:~ $ dig +short -x 192.168.10.9 @2001:db8:abba::5
pi.example.org.

sitron@pi:~ $ dig +short -x 2001:db8:abba::9 @2001:db8:abba::5
pi.example.org.

sitron@pi:~ $ dig +short -x 2001:db8:abba::9 @192.168.10.5
pi.example.org.

sitron@pi:~ $ dig +short -x 192.168.10.9 @192.168.10.5
pi.example.org.

我的 nsswitch.conf:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files mdns4_minimal dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

和 /etc/hosts:

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   pi

缺少的連結是什麼?

我想通了,有兩種解決方案。我已經在幾個不同的盒子上測試了兩者。

解決方案 A

驗證您是否resolv.conf包含“域”關鍵字,如下所示:

# Generated by resolvconf
domain example.org
nameserver 127.0.0.1

如果您dhcpcd.conf像我一樣使用設置靜態 IP,則必須指定此未記錄的選項:

static domain_name=example.org

最後,您需要刪除 contains 中/etc/hosts的行127.0.1.1 <hostname>。這意味著我的/etc/hosts現在包含:

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

解決方案 B

將您的 FQDN 添加到 127.0.1.1 行中/etc/hosts,如下所示:

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   pi.example.org pi

但是,這意味著我要覆蓋 DNS 伺服器,這並不理想。這就是我更喜歡的原因,並假設解決方案 A更好。

引用自:https://unix.stackexchange.com/questions/530064