Jak zmienić nazwę hosta bez restartu?

467

Chcę zmienić nazwę hosta systemu operacyjnego, ale nie chcę restartować.

Edytowałem /etc/hostname , ale wymaga to ponownego uruchomienia, aby zaimplementować. Jak tego uniknąć?

    
zadawane Deepak Rajput 14.12.2011, 09:56
źródło

14 odpowiedzi

605

To proste. Wystarczy kliknąć ikonę koła zębatego (znajdującą się w prawym górnym rogu ekranu), otworzyć ekran "Informacje o tym komputerze" (znajdujące się w ikonie koła zębatego) i edytować "Nazwę urządzenia".

Lub w terminalu użyj następującego polecenia:

sudo hostname your-new-name

Ustawi nazwę hosta na twoją-nową-nazwę dopóki nie uruchomisz ponownie. Zobacz man hostname i Jak zmienić nazwę komputera? , aby uzyskać więcej informacji. Nie używaj _ w twoim imieniu.

Uwaga

Po ponownym uruchomieniu zostaną użyte zmiany w /etc/hostname , 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/hosts i zmienić wiersz, który brzmi:

127.0.1.1     your-old-hostname

tak, że zawiera teraz twoją nową nazwę hosta. (Jest to wymagane, w przeciwnym razie wiele poleceń przestanie działać.)

    
odpowiedział jasperado 14.12.2011, 11:27
źródło
255

Ubuntu 13.04 wzwyż

Polecenie hostnamectl jest częścią domyślnej instalacji na komputerach i serwerach.

Łączy ustawienie nazwy hosta za pomocą polecenia hostname i edycję /etc/hostname . Oprócz ustawienia statycznej nazwy hosta, może ustawić "ładną" nazwę hosta, która nie jest używana w systemie Ubuntu. Niestety, edycja /etc/hosts nadal musi być wykonana osobno.

hostnamectl set-hostname new-hostname

To polecenie jest częścią pakietu systemd-services (który od wersji Ubuntu 14.04 obejmuje także Polecenia timedatectl i localectl ). Ponieważ system Ubuntu migruje do systemd , to narzędzie jest przyszłością.

    
odpowiedział muru 27.08.2014, 23:03
źródło
58

Bez restartu

Zmiana nazwy hosta lub komputera w Ubuntu bez restartu

Edytuj / etc / hostname i zmień na nową wartość,

nano /etc/hostname 

Edytuj / etc / hosts i zmień starą linię 127.0.1.1 na twoją nową nazwę hosta

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Uwaga : przeczytałem ją na forum > Edycja / etc / hosts i zmiana starej linii 127.0.1.1 na twoją nową nazwę hosta (jeśli tego nie zrobisz, nie będziesz mógł już używać sudo .Jeśli już to zrobiłeś, naciśnij ESC w menu grub, wybierz odzyskiwanie i edytuj plik hosta do poprawnych ustawień)

Teraz po ponownym uruchomieniu twoja nazwa hosta będzie nową, którą wybrałeś

Bez ponownego uruchamiania

Aby zmienić bez ponownego uruchamiania , możesz po prostu użyć hostname.sh po edycji / etc / hostname. Musisz zachować oba nazwy hostów w / etc / hosts (127.0.0.1 newhost oldhost), dopóki nie wykonasz poniższego polecenia:

sudo service hostname start

Uwaga : powyższe polecenie, aby zmiana była aktywna. Nazwa hosta zapisana w tym pliku (/ etc / hostname) zostanie zachowana przy ponownym uruchomieniu systemu (i będzie ustawiona przy użyciu tej samej usługi).

    
odpowiedział One Zero 13.02.2012, 21:16
źródło
42

Domyślna nazwa została ustawiona podczas instalowania Ubuntu. Możesz łatwo zmienić to, co chcesz, zarówno na pulpicie, jak i na komputerze. Serwer poprzez edycję plików hostów i hostów. Oto jak:

  1. Naciśnij klawisze Ctrl Alt t na klawiaturze, aby otworzyć terminal. Po uruchomieniu uruchom poniższą komendę: sudo hostname NEW_NAME_HERE

To zmieni nazwę hosta do następnego restartu. Zmiana nie będzie widoczna natychmiast w bieżącym terminalu. Uruchom nowy terminal, aby zobaczyć nową nazwę hosta.

  1. Aby zmienić nazwę na stałe, uruchom komendę, aby edytować pliki hosta:

    sudo -H gedit /etc/hostname i sudo -H gedit /etc/hosts

W przypadku serwera Ubuntu bez GUI, uruchom sudo vi /etc/hostname i sudo vi /etc/hosts i edytuj je jeden po drugim. W obu plikach zmień nazwę na żądaną i zapisz ją.

Na koniec uruchom ponownie komputer, aby zastosować zmiany.

    
odpowiedział Mohsen Gh. 01.11.2014, 23:47
źródło
16

Oto skrypt, który zmienia nazwę hosta w określony sposób. Zapewnia to, że nie tylko aplikacje sudo , ale także X11 nadal działają bez konieczności restartowania.

Wykorzystanie: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
    
odpowiedział Lucas 07.03.2014, 07:30
źródło
12

Bez restartu:

  1. zmień nazwę hosta w /etc/hostname
  2. odpowiednio zaktualizuj /etc/hosts
  3. sudo sysctl kernel.hostname=mynew.local.host

Sprawdź swoją obecną nazwę hosta za pomocą hostname -f

    
odpowiedział Tombart 31.03.2015, 16:46
źródło
7

Aby uzyskać aktualną nazwę hosta:

cat /etc/hostname

Można to zmienić w dowolnym edytorze tekstów. Będziesz także musiał zaktualizować wpis inny niż localhost w stosunku do 127.0.0.1 w / etc / hosts.

    
odpowiedział tagMacher 14.09.2014, 03:12
źródło
4
  1. Zastąp zawartość /etc/hostname żądaną nazwą hosta (możesz edytować za pomocą sudo nano /etc/hostname )
  2. W /etc/hosts zastąp wpis obok 127.0. 1 .1 z żądaną nazwą hosta (możesz edytować za pomocą sudo nano /etc/hosts )
  3. Wykonaj sudo service hostname restart; sudo service networking restart
odpowiedział George 08.05.2015, 20:26
źródło
4

Ubuntu 16.04

To jest bez restartu i bez użycia terminala.

  • Przejdź do Ustawienia systemu - > Szczegóły .
  • Tam jest. Obok Nazwa urządzenia znajduje się pole tekstowe.
  • Edytuj pole tekstowe i zamknij okno.

Otwórz terminal. Zobaczcie sami.

(W starszych wersjach pole tekstowe nie jest edytowalne.)

    
odpowiedział shonku 13.03.2017, 19:26
źródło
3

Czytałem odpowiedzi, ale myślę, że prawdopodobnie tego szukasz:

Po prostu wykonaj te dwa polecenia po edycji pliku /etc/hostname .

$ sudo service hostname restart
$ exec bash

To wszystko. Nie trzeba się restartować. Upewnij się, że zmienisz również nazwę w pliku /etc/hosts .

    
odpowiedział Raman 28.09.2016, 20:55
źródło
3

Klasyczna odpowiedź na pytanie oryginalnego plakatu polega na tym, że po edycji /etc/hostname , możesz zastosować go bez restartu, uruchamiając nazwa hosta (1) z opcją -F ( --file ) jako root:

sudo hostname -F /etc/hostname

Adres nazwa hosta (5) z /etc/hostname i wymieniony program ma było takie samo w Debianie i jego pochodnych od ponad dwudziestu lat, a pakiet dostarczający go został oznaczony tagiem essential i required , a IIRC skrypty init używają tego samego od dziesięcioleci ( /etc/init/hostname.conf nadal je zawiera), więc muszę powiedzieć, że jestem naprawdę zdziwiony, że nikt już o tym nie wspominał:)

    
odpowiedział Josip Rodin 14.10.2017, 19:55
źródło
3
sudo hostname your-new-name
sudo /etc/init.d/networking restart

To powinno zrobić zadanie, o którym myślę

    
odpowiedział OmarQunsul 20.12.2013, 13:43
źródło
2

Zachowanie nazwy hosta Cloud-init (Ubuntu 18+)

Podczas gdy powyższe podejścia ( hostnamectl , etc/hostname , itd.) pracują dla natychmiastowej zmiany nazwy hosta, wraz z nadejściem cloud-init - które może kontrolować ustawienie nazwy hosta - wśród wielu innych rzeczy. Tak więc nie będzie się trzymał po ponownym uruchomieniu, jeśli zainstalowano chmurę-init. Jeśli chcesz, aby zmiana pozostała po ponownym uruchomieniu, musisz zmodyfikować pliki konfiguracyjne chmurek init , wyłącz zestaw / moduł nazwy hosta w chmurze-init:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

lub całkowicie wyłącz chmurę-init:

sudo touch /etc/cloud/cloud-init.disabled
    
odpowiedział Pierz 18.06.2018, 16:20
źródło
1

Ubuntu 16.04

Rozwiązanie oparte na odpowiedz ze Społeczności DigitalOcean.

Edytuj plik hosts .

$ sudo nano /etc/hosts

Zastąp starą nową.

127.0.0.1 localhost newname

Skonfiguruj nową nazwę hosta.

$ sudo hostnamectl set-hostname newname

    
odpowiedział Jekis 12.01.2018, 07:29
źródło

Przeczytaj inne pytania na temat tagów