Aby ustawić nazwę hosta , używaj hostnamectl, ale tylko z nazwą hosta, tak jak poniżej:
hostnamectl set-hostname nodename
Aby ustawić plik edycji nazwy domeny (DNS)/etc/hosts i upewnić się, że:
- Jest to linia
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>tam
- NIE ma innych linii z
<some IP> <hostname>, i obejmuje to linie z adresami 127.0.0.1i ::1(IPv6).
Zauważ, że jeśli nie używasz NIS, (none)jest to poprawne wyjście podczas uruchamiania domainnamepolecenia.
Aby sprawdzić, czy nazwa domeny DNS jest ustawiona poprawnie, użyj dnsdomainnamepolecenia i sprawdź dane wyjściowe hostnamevs hostname -f(FQDN).
NIS vs. domena DNS
Ten problem wprawił mnie w zakłopotanie, kiedy po raz pierwszy go spotkałem. Wygląda na to, że domainnamepolecenie wyprzedza popularność Internetu. Zamiast nazwy domeny DNS wyświetla lub ustawia systemową nazwę NIS (Network Information Service), czyli YP (Yellow Pages) (grupę komputerów, które mają usługi świadczone przez główny serwer NIS). To polecenie po prostu wyświetla nazwę zwróconą przez getdomainname(2)standardową funkcję biblioteki. ( nisdomainnamei ypdomainnamesą alternatywnymi nazwami dla tego polecenia).
Wyświetl nazwę domeny FQDN lub DNS
Aby sprawdzić nazwę domeny DNS (Internet), należy uruchomić dnsdomainnamepolecenie lub hostnamez -d, --domainopcjami. (Pamiętaj, że dnsdomainnamepolecenia nie można użyć do ustawienia nazwy domeny DNS - służy tylko do jej wyświetlenia).
Aby wyświetlić FQDN (w pełni kwalifikowaną nazwę domeny) systemu, uruchom hostnamez -f, --fqdn, --longopcjami (podobnie, tego polecenia nie można użyć do ustawienia części nazwy domeny).
Powyższe polecenia używają systemu rozpoznawania nazw (zaimplementowanego przez gethostbyname(3)funkcję ze standardowej biblioteki, określonej przez POSIX) do określenia nazwy domeny DNS i nazwy FQDN.
Rozdzielczość nazw
W nowoczesnych systemach operacyjnych, takich jak RHEL 7, hostswpis /etc/nsswitch.confsłuży do rozpoznawania nazw hostów. W komputerze CentOS 7 ta linia jest skonfigurowana jako (domyślnie dla CentOS 7):
hosts: files dns
Oznacza to, że gdy funkcje resolvera wyszukują nazwy hostów lub adresy IP, najpierw sprawdzają wpis w /etc/hosts pliku, a następnie próbują serwerów DNS wymienionych w /etc/resolv.conf.
Podczas uruchamiania w hostname -fcelu uzyskania nazwy FQDN hosta funkcje rozpoznawania nazw próbują uzyskać nazwę FQDN dla nazwy hosta systemu. Jeśli hosta nie ma na liście w /etc/hostspliku lub przez odpowiedni serwer DNS, próba kończy się niepowodzeniem i hostnamezgłasza to Name or service not known.
Po hostname -duruchomieniu w celu uzyskania nazwy domeny wykonuje się te same operacje, a część nazwy domeny określa się, usuwając część nazwy hosta i pierwszą kropkę z nazwy FQDN.
Skonfiguruj nazwę domeny
1. Zaktualizuj odpowiedni serwer nazw DNS
W moim przypadku dodałem już wpis dla mojej nowej maszyny CentOS 7 na serwerze DNS dla mojej lokalnej sieci LAN, więc gdy nazwa FQDN nie została znaleziona w /etc/hostspliku, gdy działałem hostnamez opcją -dlub -f, lokalne usługi DNS były w stanie w pełni rozwiąż nazwę FQDN mojej nowej nazwy hosta.
2. Użyj /etc/hostspliku
Jeśli serwer DNS nie został skonfigurowany, w /etc/hostspliku można podać w pełni kwalifikowaną nazwę domeny . Najczęstszym sposobem na to jest określenie podstawowego adresu IP systemu, a następnie jego FQDN i krótkiej nazwy hosta. Na przykład,
172.22.0.9 nodename.domainname nodename
Fragment hostnamestrony podręcznika man
Nie możesz zmienić nazwy FQDN za pomocą hostnamelub dnsdomainname.
Zalecaną metodą ustawiania nazwy FQDN jest ustawienie nazwy hosta jako aliasu dla w pełni kwalifikowanej nazwy za pomocą /etc/hosts,DNS lub NIS. Na przykład, jeśli nazwa hosta to „ursula”, może istnieć wiersz, w /etc/hostsktórym brzmi:
27.0.1.1 ursula.example.com ursula
Technicznie: FQDN to nazwa zwracana przez getaddrinfo (3) dla nazwy hosta zwróconej przez gethostname (2). Nazwa domeny DNS to część po pierwszej kropce.
Dlatego zależy od konfiguracji resolwera (zwykle w
/etc/host.conf), w jaki sposób można go zmienić. Zwykle plik hosts jest analizowany przed DNS lub NIS, więc najczęściej zmienia się nazwę FQDN
/etc/hosts.
hostname -fpolecenie nie działa w moim CentOS vm.