我有一个带有静态 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
包含“域”关键字,如下所示:如果您
dhcpcd.conf
像我一样使用设置静态 IP,则必须指定此未记录的选项:最后,您需要删除 contains 中
/etc/hosts
的行127.0.1.1 <hostname>
。这意味着我的/etc/hosts
现在包含:解决方案 B
将您的 FQDN 添加到 127.0.1.1 行中
/etc/hosts
,如下所示:但是,这意味着我要覆盖 DNS 服务器,这并不理想。这就是我更喜欢的原因,并假设解决方案 A更好。