Ako radite sa serverima ili imate više računara u kućnoj mreži, poznavanje preimenovanja hosta u Linuxu je praktično neophodno. Generičko ime hosta poput localhost može biti dovoljno u početku, ali čim upravljate s nekoliko mašina, nastaje haos: duplikati, konfuzija prilikom povezivanja putem SSH-a i poteškoće u prepoznavanju koji je koji.
U modernim distribucijama, pa čak i u starijim sistemima, postoji nekoliko metoda za promjenu imena hosta, i trajno i privremeno, bez ponovnog pokretanja . U sljedećim odjeljcima, vidjet ćete korak po korak kako to učiniti pomoću `hostnamectl` , tekstualnih alata poput `nmtui` , modificiranjem klasičnih konfiguracijskih datoteka ili čak korištenjem jednostavne naredbe `hostname`, kao i neke specifične detalje za CentOS, Debian, Ubuntu, RHEL i derivate.
Šta je ime hosta u Linuxu i zašto biste ga trebali mijenjati?
U bilo kojem Linux sistemu, ime hosta je identifikator kojim se mašina predstavlja na mreži. To može biti jednostavno ime poput "server" ili nešto složenije poput srv-web-01.company.local , ali će uvijek biti primarna referenca za druge računare i servise.
Obično se tokom instalacije distribucije dodjeljuje zadano ime hosta, često localhost ili generičko ime koje ne otkriva mnogo. Ako imate više uređaja s istim imenom hosta na istoj mreži, možete naići na konflikte u razrješavanju imena, servise koji ne odgovaraju tamo gdje očekujete ili jednostavno na monumentalni nered prilikom povezivanja putem SSH-a ili upravljanja logovima.
U produkcijskim okruženjima, uobičajeno je da svaka mašina ima ime koje je u skladu sa njenom funkcijom i lokacijom (na primjer, LINUX-SYSADMIT-01, db01, mail-srv, itd.). Ovo pojednostavljuje administraciju, praćenje i rješavanje problema, a također izbjegava oslanjanje isključivo na IP adrese, koje se mogu lakše mijenjati.
Također je važno razumjeti da je naziv hosta obično povezan s određenom IP adresom . Na lokalnim mrežama to se često radi pomoću datoteke /etc/hosts , a na većim mrežama ili internetu pomoću DNS-a. Stoga, kada mijenjate naziv računara, dobra je ideja provjeriti sve reference na sistemu i mreži koje bi još uvijek mogle ukazivati na stari naziv.
Provjera trenutnog imena hosta u Linuxu
Prije nego što bilo šta promijenite, preporučljivo je provjeriti trenutno ime hosta mašine . U Linuxu postoji nekoliko načina da se to uradi i svi su vrlo brzi.
Najdirektnija opcija je korištenje naredbe hostname u terminalu:
hostname
Izlaz ove naredbe jednostavno prikazuje trenutni naziv hosta , na primjer:
savjeti za linuxshell
Ako želite malo više sistemskih informacija, posebno na distribucijama zasnovanim na systemd-u , možete koristiti hostnamectl . To je uslužni program komandne linije koji prikazuje podatke o računaru i omogućava vam promjenu imena hosta.
hostnamectl
Izlaz uključuje polja kao što su Statički naziv hosta , operativni sistem, verzija kernela, tip virtuelne mašine , arhitektura itd. Ključni podatak ovdje je Statički naziv hosta , što je trajno definirani naziv za sistem.
Ako želite vidjeti više informacija "niskog nivoa", možete pogledati i neke sistemske datoteke. Datoteka /proc/sys/kernel/hostname odražava naziv hosta koji kernel trenutno koristi:
cat / proc / sys / kernel / hostname
I, naravno, u mnogim distribucijama datoteka /etc/hostname trajno pohranjuje konfigurirano ime hosta. Možete ga pogledati pomoću:
cat / etc / hostname
Trajno promijenite ime hosta u Linuxu pomoću hostnamectl-a
U većini modernih distribucija (kao što su Ubuntu 16.04 ili noviji, noviji Debiani, RHEL 7+, CentOS 7+ i derivati) init sistem je systemd , a s njim dolazi i alat hostnamectl , koji je preporučeni način za trajno preimenovanje hosta u Linuxu.
Prvo što trebate učiniti je provjeriti da vaš sistem koristi systemd. Standardno dolazi na modernim distribucijama, ali ako radite sa starijim sistemom, možda ćete ga morati instalirati ili koristiti alternativne metode. Na sistemima zasnovanim na Debianu, možete ga instalirati (ako već nije tamo) pomoću:
apt-get install systemd
Da biste vidjeli trenutno ime hosta koristeći hostnamectl, pokrenite:
hostnamectl
Vidjet ćete nešto ovako (tipičan primjer na Ubuntu VPS-u):
Statički naziv hosta: hostinger
Naziv ikone: computer-vm
Šasija: vm
Machine ID: 45598cbdb6ee462e8696166b520fe788
Boot ID: 99526e56aeea45c2a0f3b2ffaaffe9d9
Virtualizacija: openvz
Operativni sistem: Ubuntu 22.04.3 LTS
Kernel: Linux 5.4.0
Arhitektura: x86-64
Da biste postavili novo trajno ime hosta, koristite sljedeću sintaksu:
hostnamectl set-hostname NOVI_HOSTNAME
Na primjer, ako želite da nazovete svoj računar LINUX-SYSADMIT-01 , uradite sljedeće:
hostnamectl set-hostname LINUX-SYSADMIT-01
Ova komanda obično ne prikazuje ništa na ekranu ako se ispravno izvrši. Da biste provjerili da li je promjena primijenjena, jednostavno ponovo pokrenite komandu.
hostnamectl
i provjerite je li polje Statički naziv hosta ažurirano na vaše novo ime. Također možete jednostavno koristiti:
hostname
Da biste provjerili da li sistem odgovara s ažuriranim imenom hosta. S ovom metodom, u većini slučajeva ne morate ponovo pokretati računar, jer systemd obrađuje propagaciju promjene.
Preimenujte host uređivanjem klasičnih konfiguracijskih datoteka
Pored specifičnih alata systemd-a, naziv hosta možete izmijeniti u gotovo svakoj distribuciji direktnim uređivanjem konfiguracijskih datoteka . Ova metoda radi čak i na starijim sistemima i daje vam vrlo finu kontrolu nad onim što mijenjate.
Prva datoteka koju treba provjeriti je /etc/hostname , koja obično sadrži jedan red s trenutnim nazivom hosta. Za uređivanje možete koristiti vi, vim, nano ili vaš preferirani editor. Na primjer:
sudo vim /etc/hostname
Unutar datoteke, zamijenite trenutno ime novim imenom hosta koje želite koristiti, na primjer:
hostinger
Sačuvajte promjene i izađite iz editora. Sada ste izmijenili osnovnu konfiguraciju, ali preostalo je još nekoliko ključnih koraka kako biste osigurali da je promjena konzistentna u cijelom sistemu.
Sljedeća datoteka koju treba ažurirati je /etc/hosts , koja se koristi za lokalno pretvaranje imena hostova u IP adrese . Otvorite je pomoću uobičajenog tekstualnog editora:
sudo vim / etc / hostovi
Unutar ove datoteke obično se nalazi red sličan ovome:
127.0.0.1 localhost old-hostname
ili nešto ekvivalentno. Morate zamijeniti prethodno ime novim, na primjer:
127.0.0.1 pružatelj hostinga
U okruženjima gdje se koriste potpuno kvalificirani nazivi domena (FQDN), možete vidjeti unose poput:
192.168.0.1 engelausmetall.engel.com engelausmetall
U ovom slučaju, ako ćete promijeniti naziv hosta, morat ćete prilagoditi dio s nazivom i, ako je primjenjivo, FQDN kako biste održali konzistentnost s mrežom i uslugama koje koriste taj naziv.
U mnogim starijim konfiguracijama zasnovanim na System V init-u , posebno na Red Hat-u ili izvedenim sistemima, datoteka /etc/sysconfig/network se također koristi za definiranje imena hosta. U ovoj datoteci ćete vidjeti liniju koja deklarira varijablu HOSTNAME:
HOSTNAME=engelausmetall.engel.com
Ako ova datoteka postoji na vašem sistemu, uredite je sa:
nano /etc/sysconfig/network
i modificirajte varijablu HOSTNAME s novim imenom. Ovaj korak je važan kako bi se osiguralo da promjena ostane važeća i nakon ponovnog pokretanja sistema , posebno na starijim Red Hat distribucijama.
Nakon što se ažuriraju /etc/hostname, /etc/hosts i, ako je primjenjivo, /etc/sysconfig/network , uobičajena je praksa ponovno pokretanje određenih mrežnih servisa ili samog sistema. Mnogi priručnici preporučuju, na primjer, sljedeće za klasične sisteme:
/etc/init.d/hostname.sh početak
ili ponovo pokrenite mrežnu uslugu:
restart servisne mreže
Nakon ovoga, preporučljivo je zatvoriti terminalnu sesiju i otvoriti novu, ili se čak odjaviti i ponovo prijaviti u grafičko okruženje. Ovo će potvrditi da konzolni prompt i aplikacije sada prikazuju ažurirano ime hosta.
Konfigurišite ime hosta u Linuxu koristeći nmtui (NetworkManager TUI)
Mnoge distribucije zasnovane na Red Hatu, kao što su RHEL i CentOS , uključuju tekstualni interfejs za NetworkManager pod nazivom nmtui (Network Manager Text User Interface) pored čistih alata komandne linije. Ovaj uslužni program vam omogućava da konfigurišete mrežne veze i podešavate naziv sistemskog hosta iz tekstualnog menija.
Ako ga nemate instaliran, možete ga dodati na sistemima koji koriste yum pomoću paketa NetworkManager-tui :
sudo yum install NetworkManager-tui
Kada instalacijski program navede zavisnosti i pita vas želite li nastaviti, odgovorite sa "y" i pritisnite Enter. Kada završite, vidjet ćete poruku poput " Gotovo!" , što označava da je paket uspješno instaliran.
Prije korištenja nmtui-ja, provjerite da li je servis NetworkManager pokrenut. To možete provjeriti pomoću:
status NetworkManagera usluge
Ako servis ne radi, pokrenite ga sa:
pokretanje servisa NetworkManager
Sada možete pokrenuti interfejs u tekstualnom režimu kucanjem:
sudo nmtui
Na glavnom ekranu alata vidjet ćete nekoliko opcija, uključujući "Postavi naziv sistemskog hosta ". Koristite tipke sa strelicama za navigaciju do ove opcije, pritisnite Enter i pristupit ćete dijaloškom okviru u koji možete unijeti novi naziv hosta koji želite dodijeliti svom sistemu.
Unesite novo ime hosta, odaberite OK i potvrdite promjene. Nakon što izađete iz nmtui-ja, sistem će primijeniti novo ime. To možete ponovo provjeriti pomoću:
hostname
ili, ako vaša distribucija koristi systemd, sa:
hostnamectl
Korištenje cloud-init-a i očuvanje imena hosta nakon ponovnog pokretanja
Mnoge slike VPS-a i cloud servera koriste cloud-init , alat koji konfiguriše sistem pri prvom pokretanju (a ponekad i pri sljedećim pokretanjima) na osnovu predložaka koje je dostavio dobavljač. To uključuje, između ostalog, naziv hosta.
Ako ručno promijenite naziv hosta na serveru kojim upravlja cloud-init, ali ne prilagodite njegovu konfiguraciju, moguće je da će se nakon ponovnog pokretanja ponovo primijeniti originalni naziv hosta iz predloška, čime će se vaše promjene izgubiti.
Da biste ovo spriječili, uredite glavnu konfiguracijsku datoteku cloud-init, obično /etc/cloud/cloud.cfg . To možete učiniti pomoću:
sudo vim /etc/cloud/cloud.cfg
Unutar ove datoteke potražite direktivu `preserve_hostname` . Ako je postavljena na `false` ili se ne pojavljuje, dodajte ili izmijenite liniju tako da izgleda ovako:
sačuvaj_naziv_hosta: tačno
Ova opcija govori cloud-init-u da poštuje trenutno ime hosta sistema i da ga ne prepisuje pri sljedećim pokretanjima. Nakon što sačuvate datoteku, ponovo pokrenite server da biste provjerili da li je ime hosta zadržano.
sudo reboot
Nakon što se ponovo pokrene, pokrenite:
hostname
i provjerite da li je ime i dalje ono koje ste konfigurisali. Ako vaš sistem ne koristi cloud-init ili datoteka /etc/cloud/cloud.cfg ne postoji, jednostavno možete zanemariti ove korake.
Promjena imena hosta u Linuxu bez ponovnog pokretanja sistema
Ponekad je potrebno samo privremeno promijeniti ime hosta , na primjer, da biste pokrenuli određene testove ili izvršili određeni zadatak. U tim slučajevima, to možete učiniti direktno pomoću naredbe `hostname` , imajući na umu da promjena neće biti trajna nakon ponovnog pokretanja.
Osnovna sintaksa naredbe za dodjeljivanje novog imena je:
naziv hosta NOVI_NAZIV_HOSTA
Na primjer, ako želite privremeno nazvati računar "hostinger" , trebali biste pokrenuti:
naziv hosta
Ova promjena stupa na snagu odmah za trenutnu sistemsku sesiju. Da biste provjerili da li je stupila na snagu, možete ponovo pokrenuti:
hostname
Vidjet ćete novo ime hosta. Međutim, čim ponovo pokrenete mašinu, sistem će se vratiti na trajno ime hosta konfigurirano u konfiguracijskim datotekama ili pomoću `hostnamectl`, stoga nemojte mijenjati trajne korake konfiguracije ovim ako vam je potrebno da promjena bude trajna.
Dodatna razmatranja i najbolje prakse prilikom preimenovanja hosta u Linuxu
Preimenovanje hosta nije samo promjena niza znakova u nekoliko datoteka; vrijedi provjeriti neke detalje kako biste osigurali da sve funkcionira glatko , posebno na produkcijskim serverima ili u korporativnim okruženjima.
Prva preporuka je da odaberete jasno i konzistentno ime hosta koje je usklađeno s vašom shemom imenovanja. Mnoge kompanije slijede obrasce poput ULOGA-LOKACIJA-BROJ (na primjer, WEB-MAD-01, DB-BCN-02), što olakšava identifikaciju funkcije svakog servera jednostavnim pogledom na njegovo ime.
Također je važno provjeriti da li se naziv hosta pojavljuje u skriptama, servisima, certifikatima ili pravilima zaštitnog zida . Na primjer, neki servisi mogu biti konfigurirani da osluškuju određeni naziv hosta ili generiraju logove gdje je naziv računara dio putanja i datoteka. Nakon promjene, dobra je ideja brzo pregledati ove tačke.
Još jedan aspekt koji treba uzeti u obzir je potencijalna veza između imena hosta i DNS rezolucije . Ako je vaš računar registrovan na DNS serveru pod određenim imenom, promjena njegovog lokalnog imena hosta također će zahtijevati ažuriranje odgovarajućeg DNS zapisa tako da logičko ime odgovara IP adresi na koju se razrješava.
Konačno, ne zaboravite uvijek provjeriti datoteku /etc/hosts kako biste bili sigurni da su sve reference na staro ime ispravno ažurirane. Uobičajeno je da se zaboravi ovaj korak, a zatim se otkrije da neki servisi izvode nedosljedne rezolucije imena jer još uvijek postoje stare linije u toj lokalnoj datoteci.


