Voglio cambiare il nome host del SO ma non voglio riavviare.
Ho modificato /etc/hostname
ma richiede un riavvio per essere implementato. Come evitarlo?
Voglio cambiare il nome host del SO ma non voglio riavviare.
Ho modificato /etc/hostname
ma richiede un riavvio per essere implementato. Come evitarlo?
Risposte:
È facile. Fai clic sull'icona a forma di ingranaggio (situata nell'angolo in alto a destra dello schermo), apri la schermata "Informazioni sul computer" (situata sull'icona a forma di ingranaggio) e modifica "Nome dispositivo".
Oppure, in un terminale, utilizzare il seguente comando:
sudo hostname your-new-name
Ciò imposterà il nome host su tuo-nuovo-nome fino al riavvio. Vedi man hostname
e come posso cambiare il nome del computer? per maggiori informazioni. Non usare _
a tuo nome.
Nota
Dopo un riavvio /etc/hostname
verranno utilizzate le modifiche apportate , quindi (come hai detto nella domanda), dovresti comunque utilizzare
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, eseguire:
sudo service hostname start
Dovresti anche modificare /etc/hosts
e cambiare la riga che recita:
127.0.1.1 your-old-hostname
in modo che ora contenga il tuo nuovo nome host. (Ciò è necessario altrimenti molti comandi cesseranno di funzionare.)
/etc/hosts
(vedi altre risposte)
hostname
farà sì che il nuovo nome abbia effetto immediato, non è "permanente" a meno che tu non cambi anche /etc/hostname
e /etc/hosts
, poiché questi sono i file che verranno letti dopo un riavvio o un arresto anomalo, che ovviamente non potresti essere aspettando in anticipo.
Il hostnamectl
comando fa parte dell'installazione predefinita su entrambe le edizioni Desktop e Server.
Combina l'impostazione del nome host tramite il hostname
comando e la modifica /etc/hostname
. Oltre a impostare il nome host statico, può impostare il nome host "grazioso", che non viene utilizzato in Ubuntu. Sfortunatamente, la modifica /etc/hosts
deve ancora essere eseguita separatamente.
hostnamectl set-hostname new-hostname
Questo comando fa parte del systemd-services
pacchetto (che, a partire da Ubuntu 14.04, include anche i comandi timedatectl
e localectl
). Mentre Ubuntu migra systemd
, questo strumento è il futuro.
hostnamectl
non esiste. Suppongo che alcune versioni di Ubuntu non stiano ancora utilizzando systemd.
Modifica del nome host o del nome computer in ubuntu senza riavvio
Modifica / etc / hostname e passa al nuovo valore,
nano /etc/hostname
Modifica / etc / hosts e cambia la vecchia riga 127.0.1.1 con il tuo 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> Modifica / etc / hosts e cambio la vecchia riga 127.0.1.1 con il tuo nuovo nome host (se non lo fai, non sarai più in grado di usare sudo. Se non l'hai già fatto , premi ESC dal menu di grub, scegli ripristino e modifica il tuo file host con le impostazioni corrette)
Ora dopo un riavvio, il nome host sarà quello nuovo che hai scelto
Per cambiare senza riavviare , 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 : sopra il comando 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).
sudo: unable to resolve host old-hostname
. Per quella parte, la soluzione @jesperado funziona bene.
/etc/hosts
, le cose mant iniziano a fallire su 12.04.2 LTS, incluso il w
comando, Apache /sbin/reboot
e molto altro. Assicurati di aggiornare/etc/hosts
127.0.0.1
per localhost
che 127.0.1.1
per un nome host personalizzato. Giusto? Quindi, verso la fine della tua risposta, per un'azione senza ribellione , fai riferimento /etc/hosts
e 127.0.0.1 newhost oldhost
. Quindi, non è necessario un 127.0.1.1
indirizzo?
sudo nano /etc/hosts
per rendere effettiva la modifica; senza sudo, nano /etc/hosts
non ho salvato la modifica
Il nome predefinito è stato impostato durante l'installazione di Ubuntu. Puoi facilmente cambiarlo come vuoi in Desktop e Server modificando i file host e hostname. Di seguito è riportato come:
sudo hostname NEW_NAME_HERE
Questo cambierà il nome host fino al prossimo riavvio. La modifica non sarà immediatamente visibile nel tuo attuale terminale. Avviare un nuovo terminale per vedere il nuovo nome host.
Per modificare il nome in modo permanente, eseguire il comando per modificare i file host:
sudo -H gedit /etc/hostname
e sudo -H gedit /etc/hosts
Per Ubuntu server senza interfaccia grafica, eseguire sudo vi /etc/hostname
e sudo vi /etc/hosts
e modificare uno per uno. In entrambi i file, cambia il nome nel modo desiderato e salvali.
Infine, riavvia il computer per applicare le modifiche.
Ecco uno script che modifica il nome host nel modo prescritto. Assicura che non solo sudo
ma anche le applicazioni X11 continuino a funzionare senza il riavvio richiesto.
Uso: 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}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Solo curioso.
xauth list
) e sostituisce il vecchio nome host con il nuovo nome host ( sed
). Quindi awk
inserisce le virgolette attorno al primo argomento xauth add
perché xauth
il formato di input e output non è simmetrico.
Senza riavvio:
/etc/hostname
/etc/hosts
conseguenzasudo sysctl kernel.hostname=mynew.local.host
Controlla il tuo nome host attuale con hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
. Forse perché è un CT all'interno di Proxmox.
Mentre gli approcci di cui sopra ( hostnamectl
, etc/hostname
, ecc) lavorare per il cambiamento hostname immediato, con l'avvento del cloud-init - che può controllare l'impostazione del nome host - ad ignorarti molte altre cose. Quindi non si attaccherà dopo un riavvio se è installato cloud-init. Se si desidera che la modifica rimanga dopo un riavvio, è necessario modificare i file di configurazione cloud-init , disabilitare il modulo set / aggiornamento nome host 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
/etc/cloud/cloud.cfg
. Qual è il nome del pacchetto? Giusto cloud-init
?
Per ottenere il tuo nome host attuale:
cat /etc/hostname
Questo può essere modificato in qualsiasi editor di testo. Dovresti anche aggiornare la voce diversa da localhost rispetto a 127.0.0.1 in / etc / hosts.
/etc/hostname
con il nome host desiderato (puoi modificarlo con sudo nano /etc/hostname
)/etc/hosts
, sostituisci la voce accanto a 127.0. 1 .1 con il nome host desiderato (è possibile modificare con sudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
# 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.
momento non ho Ubuntu 18, quindi non posso provarlo fino al fine settimana.
Questo è senza riavvio e senza alcun utilizzo del terminale.
Terminale aperto Guardate voi stessi.
(Per le versioni precedenti, la casella di testo non è modificabile.)
La risposta classica alla domanda del poster originale è che, una volta modificata /etc/hostname
, la fai applicare senza riavviare eseguendo hostname (1) con l' opzione -F
( --file
) come root:
sudo hostname -F /etc/hostname
Il nome host (5) che gestisce /etc/hostname
e il suddetto programma è stato lo stesso in Debian e suoi derivati da oltre vent'anni e il pacchetto che lo ha fornito è stato etichettato essenziale e richiesto , e IIRC gli script init hanno letteralmente usato la stessa cosa per decenni ( /etc/init/hostname.conf
lo contiene ancora), quindi devo dire che sono sinceramente perplesso sul fatto che nessuno lo abbia già menzionato :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Questo dovrebbe fare il lavoro, penso
Ho letto le risposte, ma penso che probabilmente stai cercando questo:
Basta eseguire questi due comandi dopo aver modificato il /etc/hostname
file.
$ sudo service hostname restart
$ exec bash
È tutto. Non è necessario riavviare. Assicurarsi inoltre di modificare anche il nome nel /etc/hosts
file.
/etc/hosts
(ho confermato il 14.04).
Soluzione basata sulla risposta della DigitalOcean Comunity.
Modifica il file hosts .
$ sudo nano /etc/hosts
Sostituisci il vecchio nome con uno nuovo.
127.0.0.1 localhost newname
Imposta un nuovo nome host.
$ sudo hostnamectl set-hostname newname