Come cambio il nome host senza un riavvio?

448

Voglio cambiare il nome host del sistema operativo ma non voglio riavviare.

Ho modificato /etc/hostname ma richiede un riavvio per essere implementato. Come evitare questo?

    
posta Deepak Rajput 14.12.2011 - 09:56
fonte

14 risposte

583

È facile. Basta fare clic sull'icona a forma di ingranaggio (situata nell'angolo in alto a destra dello schermo), aprire la schermata "Informazioni su questo computer" (situata sull'icona di Gear) e modificare "Nome dispositivo".

Oppure, in un terminale, utilizzare il seguente comando:

sudo hostname your-new-name

Questo imposterà il nome host al tuo nuovo nome fino al tuo riavvio. Vedi man hostname e Come cambio il nome del computer? per ulteriori informazioni. Non utilizzare _ nel tuo nome.

Nota

Dopo un riavvio verranno utilizzate le modifiche in /etc/hostname , quindi (come hai detto nella domanda), dovresti comunque usare

sudo -H gedit /etc/hostname

(o qualche altro editor) in modo che il file contenga il nome host.

Per verificare che il file sia impostato correttamente, esegui:

sudo service hostname start

Dovresti anche modificare /etc/hosts e cambiare la linea che legge:

127.0.1.1     your-old-hostname

in modo che ora contenga il nuovo nome host. (Questo è richiesto altrimenti molti comandi cesseranno di funzionare.)

    
risposta data jasperado 14.12.2011 - 11:27
fonte
248

Ubuntu 13.04 in poi

Il comando hostnamectl fa parte dell'installazione predefinita su entrambe le versioni Desktop e Server.

Combina l'impostazione del nome host tramite il comando hostname e modifica /etc/hostname . Oltre a impostare il nome host statico, è possibile impostare il nome host "carino", che non è utilizzato in Ubuntu. Sfortunatamente, la modifica di /etc/hosts deve ancora essere eseguita separatamente.

hostnamectl set-hostname new-hostname

Questo comando fa parte del pacchetto systemd-services (che, come da Ubuntu 14.04, include anche timedatectl e localectl comandi). Mentre Ubuntu migra verso systemd , questo strumento è il futuro.

    
risposta data muru 27.08.2014 - 23:03
fonte
58

Senza riavvio

Modifica del nome host o del computer in ubuntu senza riavviare

Modifica / etc / hostname e passa al nuovo valore,

nano /etc/hostname 

Modifica / etc / hosts e modifica la vecchia linea 127.0.1.1 nel nuovo nome host

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

Nota : l'ho letto su un forum & gt; Modifica / etc / hosts e cambia la vecchia linea 127.0.1.1 con il tuo nuovo hostname (se non lo fai, non sarai più in grado di usare sudo. Se lo hai già fatto, premi ESC nel menu di grub, scegli recovery e modifica il tuo file host con le impostazioni corrette)

Ora dopo il riavvio, il tuo nome host sarà il nuovo che hai scelto

Senza riavvio

Per cambiare senza un riavvio , puoi semplicemente usare hostname.sh dopo aver modificato / etc / hostname. È necessario mantenere entrambi i nomi host in / etc / hosts (127.0.0.1 newhost oldhost) fino a quando non si esegue il comando seguente:

sudo service hostname start

Nota : comando precedente per rendere attiva la modifica. Il nome host salvato in questo file (/ etc / hostname) verrà conservato al riavvio del sistema (e verrà impostato utilizzando lo stesso servizio).

    
risposta data One Zero 13.02.2012 - 21:16
fonte
42

Il nome predefinito è stato impostato durante l'installazione di Ubuntu. Puoi facilmente cambiarlo con quello che vuoi sia in Desktop che in amp; Server modificando i file host e hostname. Di seguito è come:

  1. Premere Ctrl Alt t sulla tastiera per aprire il terminale. Quando si apre, esegui il comando seguente: sudo hostname NEW_NAME_HERE

Questo cambierà il nome host fino al successivo riavvio. La modifica non sarà visibile immediatamente nel tuo terminale corrente. Avvia un nuovo terminale per vedere il nuovo nome host.

  1. Per cambiare il nome in modo permanente, esegui il comando per modificare i file host:

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

Per il server Ubuntu senza una GUI, esegui sudo vi /etc/hostname e sudo vi /etc/hosts e modificali uno per uno. In entrambi i file, cambia il nome in quello che vuoi e salvalo.

Infine, riavvia il computer per applicare le modifiche.

    
risposta data Mohsen Gh. 01.11.2014 - 23:47
fonte
16

Ecco uno script che modifica il nome host nel modo prescritto. Garantisce che non solo sudo ma anche applicazioni X11 continuino a funzionare senza necessità di riavvio.

Utilizzo: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bash
NEW_HOSTNAME=
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(,"\"&\""); print}')"
    
risposta data Lucas 07.03.2014 - 07:30
fonte
11

Senza riavvio:

  1. cambia nome host in /etc/hostname
  2. aggiorna /etc/hosts di conseguenza
  3. sudo sysctl kernel.hostname=mynew.local.host

Controlla il tuo nome host attuale con hostname -f

    
risposta data Tombart 31.03.2015 - 16:46
fonte
7

Per ottenere il nome host corrente:

cat /etc/hostname

Questo può essere modificato in qualsiasi editor di testo. Dovresti anche aggiornare una voce diversa da localhost rispetto a 127.0.0.1 in / etc / hosts.

    
risposta data tagMacher 14.09.2014 - 03:12
fonte
4
  1. Sostituisci il contenuto di /etc/hostname con il nome host desiderato (puoi modificare con sudo nano /etc/hostname )
  2. In /etc/hosts , sostituisci la voce accanto a 127.0. 1 .1 con il nome host desiderato (puoi modificare con sudo nano /etc/hosts )
  3. Esegui sudo service hostname restart; sudo service networking restart
risposta data George 08.05.2015 - 20:26
fonte
4

Ubuntu 16.04

Questo è senza restart e senza alcun utilizzo da terminale.

  • Vai a Impostazioni di sistema - & gt; Dettagli .
  • Eccolo. Accanto a Nome dispositivo , c'è una casella di testo.
  • Modifica casella di testo e chiudi finestra.

Apri terminale. Guardate voi stessi.

(Per le versioni precedenti, la casella di testo non è modificabile.)

    
risposta data shonku 13.03.2017 - 19:26
fonte
3
sudo hostname your-new-name
sudo /etc/init.d/networking restart

Questo dovrebbe fare il lavoro che penso

    
risposta data OmarQunsul 20.12.2013 - 13:43
fonte
3

Ho letto le risposte, ma penso che probabilmente stai cercando questo:

Esegui questi due comandi solo dopo aver modificato il file /etc/hostname .

$ sudo service hostname restart
$ exec bash

Questo è tutto. Non è necessario riavviare. Assicurati inoltre di cambiare il nome in /etc/hosts file.

    
risposta data Raman 28.09.2016 - 20:55
fonte
3

La classica risposta alla domanda del poster originale è che, una volta modificato /etc/hostname , lo fai applicare senza riavviare eseguendo hostname (1) con l'opzione -F ( --file ) come utente root:

sudo hostname -F /etc/hostname

Il hostname (5) gestione con /etc/hostname e il suddetto programma ha è stato lo stesso in Debian e nei suoi derivati ​​da oltre vent'anni ora, e il pacchetto che lo fornisce è stato taggato essential e richiesto , e IIRC gli script di init hanno letteralmente usato la stessa cosa per decenni ( /etc/init/hostname.conf lo contiene ancora), quindi devo dire che sono sinceramente perplesso di come nessuno lo abbia già detto:)

    
risposta data Josip Rodin 14.10.2017 - 19:55
fonte
1

Ubuntu 16.04

Soluzione basata su answer dalla community DigitalOcean.

Modifica il file hosts .

$ sudo nano /etc/hosts

Sostituisci oldname con uno nuovo.

127.0.0.1 localhost newname

Imposta nuovo nome host.

$ sudo hostnamectl set-hostname newname

    
risposta data Jekis 12.01.2018 - 07:29
fonte
0

Persistenza del nome host di Cloud-init (Ubuntu 18+)

Mentre gli approcci di cui sopra ( hostnamectl , etc/hostname , ecc.) funzionano per la modifica immediata del nome host, con l'avvento di cloud-init - che può controllare l'impostazione del nome host - tra molte altre cose. Quindi non si attaccherà dopo un riavvio se è installato cloud-init. Se vuoi che la modifica rimanga dopo il riavvio, dovrai modificare i file di configurazione di cloud-init , disattiva il modulo nome host / modulo aggiornamento di cloud-init:

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

o disabilita completamente cloud-init:

sudo touch /etc/cloud/cloud-init.disabled
    
risposta data Pierz 18.06.2018 - 16:20
fonte

Leggi altre domande sui tag