Jak poprawnie skonfigurować hostname i FQDN serwera
Poziom: Początkujący
Szacowany czas: ok. 15 minut
Cel: Skonfigurowanie trwałej nazwy hosta serwera oraz ustawienie w pełni kwalifikowanej nazwy domenowej (FQDN) w celu prawidłowej identyfikacji systemu i lokalnego rozwiązywania nazw DNS.
Wprowadzenie
Nazwa hosta (hostname) to etykieta przypisana urządzeniu w sieci, natomiast w pełni kwalifikowana nazwa domenowa (FQDN, Fully Qualified Domain Name) zawiera zarówno nazwę hosta, jak i domenę, do której należy (np. web-server-01.example.com). Prawidłowa konfiguracja jest kluczowa dla usług takich jak serwery pocztowe (Postfix, Exim), koordynacji ruchu w sieci wewnętrznej oraz identyfikacji serwerów w znaku zachęty terminala w dużej flocie maszyn.
W tym samouczku zdefiniujesz trwałą nazwę hosta za pomocą narzędzi systemd i skonfigurujesz lokalne mapowanie FQDN.
Uwaga dotycząca typów FQDN:
- Publiczny FQDN: ustawiany w publicznym DNS (np. Cloudflare, Route53). To dzięki niemu inni znajdują Twój serwer.
- Lokalny FQDN: nazwa, pod którą serwer identyfikuje się i rozwiązuje samego siebie wewnętrznie. Najlepiej, aby oba były zgodne, ale to konfiguracja lokalna zapewnia stabilność systemu.
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- System operacyjny: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12 lub RHEL/CentOS/AlmaLinux 8/9.
- Dostęp: użytkownika z uprawnieniami
sudo. - Wymagana wiedza: podstawowa obsługa terminala Linux i edytorów tekstu (takich jak
nanolubvim).
Krok 1: Sprawdź bieżącą konfigurację
Najpierw sprawdź, jaką nazwę serwer aktualnie uważa za swoją.
Uruchom polecenie wyświetlające status:
hostnamectl status
Oczekiwany wynik (lub podobny):
Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: abc123def456 Boot ID: 123abc456def Virtualization: kvm Operating System: Ubuntu 24.04 LTS Kernel: Linux 6.8.0-31-generic Architecture: x86-64
Następnie sprawdź, czy FQDN jest poprawnie rozwiązywany:
hostname -f
Jeśli system zwróci pusty wiersz, dokładnie localhost lub błąd informujący, że nie można rozwiązać nazwy hosta, FQDN nie jest poprawnie skonfigurowany.
Krok 2: Ustaw nową nazwę hosta (konfiguracja nazwy hosta na serwerze Linux)
W większości dystrybucji hostnamectl jest właściwym sposobem ustawienia nazwy hosta na serwerach i trwałego zachowania zmiany. Ta część poradnika opisuje praktyczną konfigurację nazwy hosta w systemie Linux dla typowych wdrożeń, w tym standardowe postępowanie w Ubuntu i Debianie bez ręcznej edycji pliku /etc/hostname.
Uruchom poniższe polecenie, zastępując <YOUR_HOSTNAME> wybraną krótką nazwą (np. web-01):
sudo hostnamectl set-hostname <YOUR_HOSTNAME>
Chociaż Linux technicznie dopuszcza kropki w nazwie hosta, zaleca się używanie wyłącznie małych liter, cyfr i myślników. Kropki w krótkiej nazwie (np. web.01) mogą powodować pomyłki z FQDN i zazwyczaj się ich unika.
Polecenie aktualizuje system natychmiast. Możesz zauważyć, że bieżący znak zachęty terminala (zwykle user@old-hostname:~$) nie zmienił się od razu. Wyloguj się i zaloguj ponownie lub otwórz nową sesję powłoki, wpisując bash, aby zobaczyć nową nazwę w znaku zachęty.
Krok 3: Zaktualizuj /etc/hosts na potrzeby rozwiązywania FQDN
Ten krok łączy lokalną nazwę hosta z FQDN i domeną, dzięki czemu rozwiązywanie nazw działa przewidywalnie. W praktyce to ta część konfiguracji nazwy hosta serwera definiuje lokalną tożsamość sieciową maszyny i uzupełnia podstawową konfigurację tożsamości sieciowej w systemie Linux, z której korzysta wiele usług.
Mapowanie FQDN na adres pętli zwrotnej 127.0.1.1 to najbezpieczniejszy wzorzec w środowisku produkcyjnym (szczególnie w Debianie/Ubuntu). Dzięki temu nazwa jest rozwiązywana nawet wtedy, gdy sieć nie działa lub zmienia się Twój publiczny adres IP.
Otwórz plik hosts:
sudo nano /etc/hosts
Zobaczysz zawartość podobną do poniższej:
127.0.0.1 localhost 127.0.1.1 old-hostname
Nie usuwaj wiersza 127.0.0.1 localhost. Zamiast tego zmodyfikuj wiersz 127.0.1.1 (lub dodaj go), aby zawierał Twój FQDN, a po nim krótką nazwę hosta.
Zaktualizuj plik według tego wzorca:
127.0.0.1 localhost 127.0.1.1 <YOUR_FQDN> <YOUR_HOSTNAME>
Przykład dla FQDN web-01.example.com i nazwy hosta web-01:
127.0.0.1 localhost 127.0.1.1 web-01.example.com web-01
Unikaj publicznych adresów IP w /etc/hosts, o ile nie jest to bezwzględnie konieczne. Jeśli adres IP się zmieni (co jest częste w środowiskach chmurowych), a zapomnisz zaktualizować ten plik, rozwiązywanie nazwy przestanie działać.
Zapisz plik i zamknij edytor (w nano naciśnij Ctrl+O, Enter, a następnie Ctrl+X).
Krok 4: Zweryfikuj zmiany
Teraz upewnij się, że system poprawnie rejestruje FQDN.
Sprawdź aktywny FQDN:
hostname -f
Oczekiwany wynik:
web-01.example.com
Sprawdź aktywną krótką nazwę hosta:
hostname -s
Oczekiwany wynik:
web-01
Na koniec wykonaj ping na FQDN, aby upewnić się, że jest poprawnie rozwiązywany na adres IP wskazany w pliku hosts:
ping -c 3 <YOUR_FQDN>
Po wykonaniu tych kroków serwer potrafi prawidłowo identyfikować i rozwiązywać własną nazwę sieciową.
Uwaga dotycząca cloud-init przy konfiguracji nazwy hosta na VPS
Na instancjach VPS w chmurze, takich jak AWS, GCP i DigitalOcean, cloud-init może nadpisywać zmiany nazwy hosta podczas restartu. Jeśli po ponownym uruchomieniu wraca poprzednia wartość, sprawdź plik /etc/cloud/cloud.cfg i ustaw preserve_hostname: true, aby VPS zachował zamierzoną nazwę hosta i powiązane ustawienia domeny.
Rozwiązywanie problemów
Jeśli nazwa hosta nie utrzymuje się po restarcie, najpierw sprawdź, czy hostnamectl status pokazuje oczekiwaną wartość statyczną, a następnie zweryfikuj, czy cloud-init nie przywraca starego ustawienia. Jeśli hostname -f nie zwraca oczekiwanego FQDN, sprawdź wpis 127.0.1.1 w /etc/hosts i upewnij się, że krótka nazwa hosta występuje po FQDN. Jeśli usługi nadal zgłaszają błędną nazwę, sprawdź, czy domena serwera, kolejność rozwiązywania nazw w /etc/nsswitch.conf oraz metadane dostawcy są zgodne z zamierzoną konfiguracją.
Przywracanie ustawień (rollback)
Jeśli nazwy zostały skonfigurowane błędnie i chcesz przywrócić serwer do stanu domyślnego:
Zresetuj krótką nazwę hosta:
sudo hostnamectl set-hostname localhost
Przywróć plik /etc/hosts, usuwając dodany wiersz z adresem IP. Upewnij się, że lokalna pętla zwrotna wygląda następująco:
sudo nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 localhost
Podsumowanie
Udało Ci się zdefiniować trwałą nazwę hosta i skonfigurować lokalną sieć tak, aby zapewnić poprawny FQDN. Prawidłowe wykonanie tych czynności tworzy podstawową warstwę tożsamości niezbędną dla usług WWW, konfiguracji poczty i narzędzi do zdalnej orkiestracji.
Wersja dokumentu: 1.0
Ostatnia aktualizacja: kwiecień 2026
Właściciel: Zespół dokumentacji technicznej