Мой вопрос касается странного поведения hostname -f в моей системе Gentoo Linux.
Симптом:
rt01 ~ # time hostname -f
rt01.domain.net
real 0m5.007s
user 0m0.001s
sys 0m0.000s
С помощью strace я вижу, что выполняются следующие шаги:
Настройка iptables на этом компьютере не позволяет ему подключаться к любому DNS-серверу. Так что это - намеренно - заблокировано на данном этапе. Я ожидаю, что этот шаг не потребуется при следующей конфигурации:
/etc/host.conf
# This keyword specifies how host lookups are to be performed. It
# should be followed by one or more lookup methods, separated by
# commas. Valid methods are bind, hosts, and nis.
#
order hosts, bind
/ etc / hosts
# IPv4 and IPv6 localhost aliases
127.0.0.1 rt01.domain.net rt01 localhost
<public ip> rt01.domain.net rt01
::1 localhost
/etc/conf.d/hostname
# Set to the hostname of this machine
hostname="rt01"
Может кто-нибудь объяснить мне, почему hostname -f пытается подключиться к DNS-серверу. Я думал, что информации, предоставленной / etc / hosts, должно быть достаточно.
Порядок разрешения DNS-запросов зависит от содержимого /etc/nsswitch.conf
. В частности, порядок опций в строке для hosts
Например, эта строка заставит ваш компьютер запросить сервер перед проверкой локальных файлов:
hosts: dns files
Страница руководства: http://man7.org/linux/man-pages/man5/nsswitch.conf.5.html