Ostrzeżenie: nie będzie działać z Ubuntu 18+, który domyślnie uruchamia chmurę-init, która kontroluje nazwę hosta podczas rozruchu.
nslntmnx
@nslntmnx, Dziękujemy!
MiB
Odpowiedzi:
642
To jest łatwe. Po prostu kliknij ikonę koła zębatego (znajdującą się w prawym górnym rogu ekranu), otwórz ekran „Informacje o tym komputerze” (znajdujący się pod ikoną koła zębatego) i edytuj „Nazwa urządzenia”.
Lub w terminalu użyj następującego polecenia:
sudo hostname your-new-name
Spowoduje to ustawienie nazwy hosta na twoją nową nazwę do momentu ponownego uruchomienia. Zobacz man hostnamei jak zmienić nazwę komputera? w celu uzyskania dalszych informacji. Nie używaj _w swoim imieniu.
Uwaga
Po ponownym uruchomieniu twoje zmiany /etc/hostnamezostaną wykorzystane, więc (jak powiedziałeś w pytaniu), powinieneś nadal używać
sudo -H gedit /etc/hostname
(lub inny edytor), aby plik zawierał nazwę hosta.
Aby sprawdzić, czy plik jest poprawnie skonfigurowany, uruchom:
sudo service hostname start
Powinieneś również edytować /etc/hostsi zmienić wiersz o treści:
127.0.1.1 your-old-hostname
aby zawierała teraz nową nazwę hosta. (Jest to wymagane, w przeciwnym razie wiele poleceń przestanie działać.)
Wiem. dlatego powinieneś użyć polecenia „nazwa hosta”. Chciałem tylko wyjaśnić, że polecenie „nazwa hosta” zmienia tylko nazwę hosta do momentu ponownego uruchomienia / awarii / etc. Następnie ponownie odczyta nazwę z pliku.
jasperado
5
Zależy. Jeśli wprowadziłeś polecenie, nie musisz restartować. Nazwa hosta została już zmieniona. Ale tylko do następnego uruchomienia.
jasperado
19
Pamiętaj, że musisz również zmienić /etc/hosts(patrz inne odpowiedzi)
JB.
9
Krótko mówiąc, chociaż hostnamespowoduje, że nowa nazwa zacznie obowiązywać natychmiast, nie będzie ona jednak „trwała”, chyba że ulegniesz zmianie, /etc/hostnamea /etc/hostsponieważ są to pliki, które zostaną odczytane po ponownym uruchomieniu lub awarii, co oczywiście może nie być oczekując z wyprzedzeniem.
Tim Parenti
280
Ubuntu 13.04 i nowsze
hostnamectlKomenda jest częścią domyślnej instalacji na obu wydań Desktop i Server.
Łączy ustawianie nazwy hosta za pomocą hostnamepolecenia i edycji /etc/hostname. Oprócz ustawienia statycznej nazwy hosta, można ustawić „ładną” nazwę hosta, która nie jest używana w Ubuntu. Niestety, edycja /etc/hostsmusi być jeszcze wykonana osobno.
hostnamectl set-hostname new-hostname
To polecenie jest częścią systemd-servicespakietu (który, począwszy od Ubuntu 14.04, zawiera także polecenia timedatectli localectl). W miarę migracji Ubuntu systemdto narzędzie jest przyszłością.
Uwaga: to nie jest dostępne wszędzie. Właśnie obejrzałem moją instalację Ubuntu 14.04 LTS ARM-7 i hostnamectlnie istnieje. Zgadnij, niektóre smaki Ubuntu nie używają jeszcze systemd.
Stéphane,
1
@ Stéphane polecenia są częścią pakietu systemd, ale są dostępne niezależnie. W tym przypadku 13.04-14.10 nie używaj systemd jako init, ponieważ polecenie jest dostępne.
muru
1
@ H2ONaCl zmienna powłoki jest ustawiana podczas uruchamiania, wystarczy otworzyć kolejną powłokę, a zmienna nazwy hosta powinna działać poprawnie. Jeśli chodzi o sudo, błąd dotyczący rozpoznawania nazwy hosta nigdy nie przeszkodził mi w zrobieniu czegokolwiek.
muru
1
@ H2ONaCl ah, ale zmienna HOSTNAME nie jest standardem - myślnik IIRC i ksh go nie mają, zsh używa HOST, więc jeśli chodzi o zmienne powłoki, jest to dno stosu.
muru
3
Nadal działa w systemie Ubuntu 18.04 LTS.
LucaM
63
Bez ponownego uruchomienia
Zmiana nazwy hosta lub nazwy komputera w Ubuntu bez restartu
Edytuj / etc / hostname i zmień na nową wartość,
nano /etc/hostname
Edytuj plik / etc / hosts i zmień stary wiersz 127.0.1.1 na nową nazwę hosta
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Uwaga : przeczytałem go na forum> Edytuj / etc / hosts i zmieniłem stary wiersz 127.0.1.1 na nową nazwę hosta (jeśli tego nie zrobisz, nie będziesz już mógł używać sudo. Jeśli już to zrobiłeś , naciśnij ESC w menu grub, wybierz odzyskiwanie i edytuj plik hosta, aby uzyskać prawidłowe ustawienia)
Teraz po ponownym uruchomieniu twoja nazwa hosta będzie nową, którą wybrałeś
Bez ponownego uruchomienia
Aby zmienić bez ponownego uruchomienia , możesz po prostu użyć hostname.sh po edycji / etc / hostname. Musisz zachować obie nazwy hostów w / etc / hosts (127.0.0.1 newhost oldhost), dopóki nie wykonasz poniższej komendy:
sudo service hostname start
Uwaga : powyższe polecenie, aby aktywować zmianę. Nazwa hosta zapisana w tym pliku (/ etc / hostname) zostanie zachowana przy ponownym uruchomieniu systemu (i zostanie ustawiona przy użyciu tej samej usługi).
W systemie Ubuntu 12.10 ostatnia część nie działa z następującym komunikatem o błędzie sudo: unable to resolve host old-hostname. W tej części rozwiązanie @jesperado działa dobrze.
Frédéric Grosshans
3
Jeśli się nie zaktualizujesz /etc/hosts, niektóre rzeczy zaczną zawieść 12.04.2 LTS, w tym wpolecenie, Apache /sbin/rebooti wiele innych. Zaktualizuj/etc/hosts
Josh
Odwołujesz się zarówno 127.0.0.1do niestandardowej nazwy hosta, jak localhosti 127.0.1.1do niej. Dobrze? Następnie, pod koniec swojej odpowiedzi, w przypadku akcji bez ponownego uruchomienia odwołujesz się /etc/hostsi 127.0.0.1 newhost oldhost. Więc nie potrzebujesz 127.0.1.1adresu?
Nikos Alexandris,
1
nie działało dla mnie. musiałem użyć, sudo nano /etc/hostsaby zmiana zaczęła obowiązywać; bez sudo, po prostu nano /etc/hostsnie
zapisałem
2
Jaka jest różnica między restartem a restartem?
burza
43
Domyślna nazwa została ustawiona podczas instalacji Ubuntu. Możesz łatwo zmienić to, co chcesz na komputerze i serwerze, edytując pliki hostów i nazwy hostów. Poniżej znajduje się, jak:
Naciśnij CtrlAlttna klawiaturze, aby otworzyć terminal. Po otwarciu uruchom poniższe polecenie:sudo hostname NEW_NAME_HERE
Spowoduje to zmianę nazwy hosta do następnego uruchomienia. Zmiana nie będzie widoczna od razu w twoim obecnym terminalu. Uruchom nowy terminal, aby zobaczyć nową nazwę hosta.
Aby trwale zmienić nazwę, uruchom polecenie, aby edytować pliki hosta:
sudo -H gedit /etc/hostname i sudo -H gedit /etc/hosts
Na serwerze Ubuntu bez GUI, uruchom sudo vi /etc/hostnamei sudo vi /etc/hostsi edytować je jeden po drugim. W obu plikach zmień nazwę na odpowiednią i zapisz ją.
Na koniec uruchom ponownie komputer, aby zastosować zmiany.
Oto skrypt, który zmienia nazwę hosta w określony sposób. Zapewnia to, że nie tylko, sudoale także aplikacje X11 będą nadal działać bez konieczności restartu.
Co robi ostatni wiersz skryptu su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"? Po prostu ciekawy.
Fr0zenFyr
4
@ Fr0zenFyr: pobiera prawidłowy token uwierzytelniania X11 ( xauth list) i zastępuje starą nazwę hosta nową nazwą hosta ( sed). Następnie awkumieszcza cudzysłowy wokół pierwszego argumentu, xauth addponieważ xauthformat wejściowy i wyjściowy nie są symetryczne.
Lucas
Dziękuję za wyjaśnienie. Zawsze zrestartowałem się, aby zmiany zaczęły obowiązywać. +1
Fr0zenFyr
@trakz: Właściwie 127.abc, bez względu na numer, jest wszystkim hostem lokalnym zgodnie z IETF RFC. (większość ludzi po prostu tego nie wie, ale jak większość nie, edytuj zatwierdzona)
Fabby
14
Bez ponownego uruchomienia:
zmień nazwę hosta w /etc/hostname
zaktualizuj /etc/hostsodpowiednio
sudo sysctl kernel.hostname=mynew.local.host
Sprawdź swoją bieżącą nazwę hosta za pomocą hostname -f
Z 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Może dlatego, że jest CT wewnątrz Proxmox.
Pablo A
14
Trwałość nazwy hosta przez chmurę init (Ubuntu 18+)
Chociaż powyższe podejścia ( hostnamectl, etc/hostnameitp) pracować dla natychmiastowej zmiany nazwy hosta, wraz z pojawieniem się chmury inicjalizacji - które może kontrolować ustawienia nazwy hosta - amoungst wiele innych rzeczy. Więc nie pozostanie po ponownym uruchomieniu, jeśli zainstalowana jest inicjacja chmurowa. Jeśli chcesz, aby zmiana pozostała po ponownym uruchomieniu, musisz edytować pliki konfiguracyjne inicjowania chmury, wyłącz moduł ustawiania / aktualizacji nazwy hosta chmury :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
Proszę głosować za odpowiedzią. To zadziałało dla mnie świetnie. Inne odpowiedzi nie działają z przyjęciem chmurowego inicjowania.
nslntmnx
@nslntmnx czy jest domyślnie instalowany na pulpicie 18.04, tylko na serwerze? Pulpit nie ma /etc/cloud/cloud.cfg. Jaka jest nazwa pakietu? Po prostu cloud-init?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Ponadto, czy jest jakiś sposób na zmianę nazwy hosta za pomocą inicjowania w chmurze zamiast wyłączania jego zastępowania?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Tak, możesz zmienić wiele ustawień za pomocą inicjowania w chmurze - zobacz link do dokumentów w mojej odpowiedzi - oto link do ustawiania nazwy hosta: cloudinit.readthedocs.io/en/latest/topics/…
Pierz
7
Aby uzyskać bieżącą nazwę hosta:
cat /etc/hostname
Można to zmienić w dowolnym edytorze tekstu. Musisz także zaktualizować wpis inny niż localhost w stosunku do 127.0.0.1 w / etc / hosts.
Ostrzeżenie: nie będzie działać z Ubuntu 18+, który domyślnie uruchamia chmurę-init, która kontroluje nazwę hosta podczas rozruchu.
nslntmnx
@nslntmnx jesteś tego pewien? Widzę w cloud-config.txt # if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.Obecnie nie mam Ubuntu 18, więc nie mogę go przetestować do weekendu.
George,
4
Ubuntu 16.04
Jest to bez ponownego uruchamiania i bez użycia terminala.
Przejdź do Ustawienia systemu -> Szczegóły .
Tu jest. Obok nazwy urządzenia znajduje się pole tekstowe.
Edytuj pole tekstowe i zamknij okno.
Otwórz terminal. Sprawdźcie sami.
(W starszych wersjach pola tekstowego nie można edytować).
Klasyczna odpowiedź na pytanie oryginalnego plakatu jest taka, że po edycji /etc/hostnamewprowadzasz ją bez ponownego uruchamiania, uruchamiając nazwę hosta (1) z opcją -F( --file) jako root:
sudo hostname -F /etc/hostname
Hosta (5) postępowania z /etc/hostnamea wspomniany program jest taki sam w Debianie i jego pochodne od ponad dwudziestu lat, a pakiet pod warunkiem, że zostały oznaczone istotne i potrzebne , i IIRC skrypty startowe dosłownie stosować to samo dla dziesięciolecia ( /etc/init/hostname.confwciąż go zawiera), więc muszę powiedzieć, że jestem naprawdę zdziwiony tym, że nikt już o tym nie wspominał :)
Ostrzeżenie: nie będzie działać z Ubuntu 18+, który domyślnie uruchamia chmurę-init, która kontroluje nazwę hosta podczas rozruchu.
nslntmnx
@nslntmnx erm, co? Jaką nową zależność wprowadził Ubuntu 18, aby domyślnie pobierał inicjację z chmury? Być może myślisz o niektórych obrazach dostosowanych do chmury, w takim przypadku nie powinno dziwić, że działają na nich niestandardowe narzędzia do udostępniania chmury.
Odpowiedzi:
To jest łatwe. Po prostu kliknij ikonę koła zębatego (znajdującą się w prawym górnym rogu ekranu), otwórz ekran „Informacje o tym komputerze” (znajdujący się pod ikoną koła zębatego) i edytuj „Nazwa urządzenia”.
Lub w terminalu użyj następującego polecenia:
Spowoduje to ustawienie nazwy hosta na twoją nową nazwę do momentu ponownego uruchomienia. Zobacz
man hostname
i jak zmienić nazwę komputera? w celu uzyskania dalszych informacji. Nie używaj_
w swoim imieniu.Uwaga
Po ponownym uruchomieniu twoje zmiany
/etc/hostname
zostaną wykorzystane, więc (jak powiedziałeś w pytaniu), powinieneś nadal używać(lub inny edytor), aby plik zawierał nazwę hosta.
Aby sprawdzić, czy plik jest poprawnie skonfigurowany, uruchom:
Powinieneś również edytować
/etc/hosts
i zmienić wiersz o treści:aby zawierała teraz nową nazwę hosta. (Jest to wymagane, w przeciwnym razie wiele poleceń przestanie działać.)
źródło
/etc/hosts
(patrz inne odpowiedzi)hostname
spowoduje, że nowa nazwa zacznie obowiązywać natychmiast, nie będzie ona jednak „trwała”, chyba że ulegniesz zmianie,/etc/hostname
a/etc/hosts
ponieważ są to pliki, które zostaną odczytane po ponownym uruchomieniu lub awarii, co oczywiście może nie być oczekując z wyprzedzeniem.Ubuntu 13.04 i nowsze
hostnamectl
Komenda jest częścią domyślnej instalacji na obu wydań Desktop i Server.Łączy ustawianie nazwy hosta za pomocą
hostname
polecenia i edycji/etc/hostname
. Oprócz ustawienia statycznej nazwy hosta, można ustawić „ładną” nazwę hosta, która nie jest używana w Ubuntu. Niestety, edycja/etc/hosts
musi być jeszcze wykonana osobno.To polecenie jest częścią
systemd-services
pakietu (który, począwszy od Ubuntu 14.04, zawiera także poleceniatimedatectl
ilocalectl
). W miarę migracji Ubuntusystemd
to narzędzie jest przyszłością.źródło
hostnamectl
nie istnieje. Zgadnij, niektóre smaki Ubuntu nie używają jeszcze systemd.Bez ponownego uruchomienia
Zmiana nazwy hosta lub nazwy komputera w Ubuntu bez restartu
Edytuj / etc / hostname i zmień na nową wartość,
Edytuj plik / etc / hosts i zmień stary wiersz 127.0.1.1 na nową nazwę hosta
Uwaga : przeczytałem go na forum> Edytuj / etc / hosts i zmieniłem stary wiersz 127.0.1.1 na nową nazwę hosta (jeśli tego nie zrobisz, nie będziesz już mógł używać sudo. Jeśli już to zrobiłeś , naciśnij ESC w menu grub, wybierz odzyskiwanie i edytuj plik hosta, aby uzyskać prawidłowe ustawienia)
Teraz po ponownym uruchomieniu twoja nazwa hosta będzie nową, którą wybrałeś
Bez ponownego uruchomienia
Aby zmienić bez ponownego uruchomienia , możesz po prostu użyć hostname.sh po edycji / etc / hostname. Musisz zachować obie nazwy hostów w / etc / hosts (127.0.0.1 newhost oldhost), dopóki nie wykonasz poniższej komendy:
Uwaga : powyższe polecenie, aby aktywować zmianę. Nazwa hosta zapisana w tym pliku (/ etc / hostname) zostanie zachowana przy ponownym uruchomieniu systemu (i zostanie ustawiona przy użyciu tej samej usługi).
źródło
sudo: unable to resolve host old-hostname
. W tej części rozwiązanie @jesperado działa dobrze./etc/hosts
, niektóre rzeczy zaczną zawieść 12.04.2 LTS, w tymw
polecenie, Apache/sbin/reboot
i wiele innych. Zaktualizuj/etc/hosts
127.0.0.1
do niestandardowej nazwy hosta, jaklocalhost
i127.0.1.1
do niej. Dobrze? Następnie, pod koniec swojej odpowiedzi, w przypadku akcji bez ponownego uruchomienia odwołujesz się/etc/hosts
i127.0.0.1 newhost oldhost
. Więc nie potrzebujesz127.0.1.1
adresu?sudo nano /etc/hosts
aby zmiana zaczęła obowiązywać; bez sudo, po prostunano /etc/hosts
nieDomyślna nazwa została ustawiona podczas instalacji Ubuntu. Możesz łatwo zmienić to, co chcesz na komputerze i serwerze, edytując pliki hostów i nazwy hostów. Poniżej znajduje się, jak:
sudo hostname NEW_NAME_HERE
Spowoduje to zmianę nazwy hosta do następnego uruchomienia. Zmiana nie będzie widoczna od razu w twoim obecnym terminalu. Uruchom nowy terminal, aby zobaczyć nową nazwę hosta.
Aby trwale zmienić nazwę, uruchom polecenie, aby edytować pliki hosta:
sudo -H gedit /etc/hostname
isudo -H gedit /etc/hosts
Na serwerze Ubuntu bez GUI, uruchom
sudo vi /etc/hostname
isudo vi /etc/hosts
i edytować je jeden po drugim. W obu plikach zmień nazwę na odpowiednią i zapisz ją.Na koniec uruchom ponownie komputer, aby zastosować zmiany.
źródło
Oto skrypt, który zmienia nazwę hosta w określony sposób. Zapewnia to, że nie tylko,
sudo
ale także aplikacje X11 będą nadal działać bez konieczności restartu.Stosowanie:
sudo ./change_hostname.sh new-hostname
źródło
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Po prostu ciekawy.xauth list
) i zastępuje starą nazwę hosta nową nazwą hosta (sed
). Następnieawk
umieszcza cudzysłowy wokół pierwszego argumentu,xauth add
ponieważxauth
format wejściowy i wyjściowy nie są symetryczne.Bez ponownego uruchomienia:
/etc/hostname
/etc/hosts
odpowiedniosudo sysctl kernel.hostname=mynew.local.host
Sprawdź swoją bieżącą nazwę hosta za pomocą
hostname -f
źródło
sudo: unable to resolve host oldname
,sysctl: setting key "kernel.hostname": Read-only file system
. Może dlatego, że jest CT wewnątrz Proxmox.Trwałość nazwy hosta przez chmurę init (Ubuntu 18+)
Chociaż powyższe podejścia (
hostnamectl
,etc/hostname
itp) pracować dla natychmiastowej zmiany nazwy hosta, wraz z pojawieniem się chmury inicjalizacji - które może kontrolować ustawienia nazwy hosta - amoungst wiele innych rzeczy. Więc nie pozostanie po ponownym uruchomieniu, jeśli zainstalowana jest inicjacja chmurowa. Jeśli chcesz, aby zmiana pozostała po ponownym uruchomieniu, musisz edytować pliki konfiguracyjne inicjowania chmury, wyłącz moduł ustawiania / aktualizacji nazwy hosta chmury :lub całkowicie wyłącz chmurę:
źródło
/etc/cloud/cloud.cfg
. Jaka jest nazwa pakietu? Po prostucloud-init
?Aby uzyskać bieżącą nazwę hosta:
Można to zmienić w dowolnym edytorze tekstu. Musisz także zaktualizować wpis inny niż localhost w stosunku do 127.0.0.1 w / etc / hosts.
źródło
/etc/hostname
na żądaną nazwę hosta (możesz edytować za pomocąsudo nano /etc/hostname
)/etc/hosts
zastąp wpis obok 127.0. 1 .1 z żądaną nazwą hosta (można edytować za pomocąsudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
źródło
# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.
Obecnie nie mam Ubuntu 18, więc nie mogę go przetestować do weekendu.Ubuntu 16.04
Jest to bez ponownego uruchamiania i bez użycia terminala.
Otwórz terminal. Sprawdźcie sami.
(W starszych wersjach pola tekstowego nie można edytować).
źródło
Klasyczna odpowiedź na pytanie oryginalnego plakatu jest taka, że po edycji
/etc/hostname
wprowadzasz ją bez ponownego uruchamiania, uruchamiając nazwę hosta (1) z opcją-F
(--file
) jako root:Hosta (5) postępowania z
/etc/hostname
a wspomniany program jest taki sam w Debianie i jego pochodne od ponad dwudziestu lat, a pakiet pod warunkiem, że zostały oznaczone istotne i potrzebne , i IIRC skrypty startowe dosłownie stosować to samo dla dziesięciolecia (/etc/init/hostname.conf
wciąż go zawiera), więc muszę powiedzieć, że jestem naprawdę zdziwiony tym, że nikt już o tym nie wspominał :)źródło
To powinno wystarczyć do pracy
źródło
Przeczytałem odpowiedzi, ale myślę, że prawdopodobnie tego szukasz:
Wystarczy wykonać te dwa polecenia po edycji
/etc/hostname
pliku.To wszystko. Nie ma potrzeby ponownego uruchamiania. Upewnij się również, że zmienisz nazwę w
/etc/hosts
pliku.źródło
/etc/hosts
(potwierdziłem 14.04).Ubuntu 16.04
Rozwiązanie oparte na odpowiedzi od DigitalOcean Comunity.
Edytuj plik hosts .
$ sudo nano /etc/hosts
Zastąp starą nazwę nową.
127.0.0.1 localhost newname
Ustaw nową nazwę hosta.
$ sudo hostnamectl set-hostname newname
źródło