Come posso cambiare il nome del computer?


327

Quando mi collego al mio server (ubuntu server 10.10), ottengo questo:

name@server-name.belkin ~>

Come posso rimuovere ".belkin"?


1
Prova a modificare / etc / hosts. gksudo gedit / etc / hosts e sostituisci server-name.belkin con il nome che desideri.
LFC_fan,

2
Vuoi cambiare il nome del server attuale o solo il modo in cui viene visualizzato nel prompt?
Dave Jennings,

2
Votazione per riaprire, perché si tratta di un superset (consente il riavvio).
Ciro Santilli 5 改造 中心 法轮功 六四 事件 il

come si chiude questa domanda a favore di una domanda più di un anno dopo?
Warren,

@warren l'attuale consenso è quello di chiudere per "qualità": meta.stackexchange.com/questions/147643/… Poiché la "qualità" non è misurabile, vado semplicemente in base ai voti. ;-) Probabilmente si riduce a quale domanda ha colpito le migliori parole chiave di Google per principianti sul titolo.
Ciro Santilli 19 改造 中心 法轮功 六四 事件

Risposte:


420

Devi modificare il nome del computer in due file:

/etc/hostname 

e

/etc/hosts

Entrambi avranno bisogno dell'accesso amministrativo, quindi esegui

gksu gedit /path/to/file

Sostituisci qualsiasi istanza del nome del computer esistente con quella nuova. Al termine, eseguire

sudo service hostname start

Il nome verrà inoltre modificato se si riavvia il computer.

Guarda anche:


43
Successivamente, solo sudo service hostname restarte il nome host è stato modificato senza riavviare.
Anthony O.

6
In Ubuntu 14.04 non esiste un servizio "nomehost". Cosa posso fare lì per evitare il riavvio.
Arpad Horvath,

8
sudo service hostname restartnon funziona con l'installazione predefinita di Ubuntu Server 14.04 su AWS. Ho dovuto fare il riavvio completo del server
gerrytan,

9
Il 14.04, ho semplicemente corso sudo hostnamee questo ha funzionato. Non ho notato alcun cambiamento immediato, ma quando ho aperto un nuovo terminale, ho visto che il mio nome host era effettivamente cambiato.
TSJNachos117,

8
sudo hostname new-host-nameha lavorato per me su Ubuntu 13.10
Lekhnath il

153

hostnamectl set-hostname sul desktop 13.10+

Questo è il modo migliore se hai systemd (13.10 in poi) e se cloud-init non è attivo (vedi sotto):

hostnamectl set-hostname 'new-hostname'

It:

  • non richiede il riavvio
  • persiste dopo il riavvio

Maggiori informazioni su: https://askubuntu.com/a/516898/52975

18.04 in poi: cloud-init

18.04 Introdotto cloud-init che può controllare l'impostazione del nome host in modo che le hostnamectlmodifiche non si attacchino dopo il riavvio se è installato cloud-init. TODO: come verificare se è installato, è installato di default sull'immagine desktop o solo sul server?

Se si desidera che le hostnamectlmodifiche rimangano dopo un riavvio, è necessario modificare i file di configurazione cloud-init , disabilitare il modulo set / aggiornamento nome host cloud-init :

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

o disabilita completamente cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

Vedi anche: Come posso cambiare il nome host senza riavviare?


3
funziona perfettamente in Ubuntu 15.10
AB,

4
Non cambia / etc / hosts in 14.04
Autodidact,

7
funziona perfettamente in Ubuntu 16.04 ... grazie mille
Hirak,

2
Confermato per funzionare correttamente anche nel 16.10
fuzzygroup

2
Ho dovuto aggiungere il mio nuovo hostname in / etc / hosts altrimenti usando sudo avrebbe causato qualche errore "sudo: impossibile risolvere l'host xxxxx"
WoodyDRN

70

È abbastanza facile:

  1. Modifica /etc/hostname, modifica il nome, salva il file.

  2. Dovresti anche apportare le stesse modifiche al /etc/hostsfile

  3. Correre sudo service hostname start

Finché non hai impostazioni dell'applicazione a seconda del nome host "vecchio", dovresti essere ok ;-)


31
ATTENZIONE: Se lo fai senza cambiare / etc / hosts di conseguenza non sarai in grado di usare sudo perché il tuo nome host non riuscirà a cercare
João Pinto

Hai ragione riguardo alla modifica di / etc / hosts, me ne sono dimenticato (l'ho appena aggiunto alla mia risposta), anche se sudo sembra funzionare bene per me senza cambiarlo (ho riavviato la macchina e funziona ancora)
Pavlos G.,

1
Va bene, puoi farlo come hostnameè ora un servizio gestito da upstart. Farà esattamente la stessa cosa, riavvia il servizio.
Pavlos G.

2
Nota: questo non funzionerà con Ubuntu 14.x, come hostnamenon è più ininit.d
Rápli András

2
Attenzione: non funzionerà con Ubuntu 18+ che esegue cloud-init per impostazione predefinita, che controlla il nome host all'avvio.
nslntmnx,

24

È sicuro, devi solo essere sicuro di modificare sia il file di configurazione del nome host di sistema (/ etc / hostname) che il file di risoluzione del nome host (/ etc / hosts). Da un terminale eseguire quanto segue:

sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now

2
È possibile evitare lo spegnimento con sudo service hostname restart.
Wtower,

3
@Wtower non funziona con 14.04. :(
ankush981

Attenzione: non funzionerà con Ubuntu 18+ che esegue cloud-init per impostazione predefinita, che controlla il nome host all'avvio.
nslntmnx,

18

Oltre a modificare / etc / hosts e / etc / hostname, anche vari servizi potrebbero avere problemi con la modifica. Mysql e postfix sono installati di default in Ubuntu. Un postfix interrotto non influirà sulla maggior parte degli utenti di Ubuntu, poiché è un server di posta elettronica in background che non viene utilizzato da molti.

Postfix:

sudo editor /etc/postfix/main.cf
sudo service postfix restart

La configurazione predefinita per mysql non usa il nome host, quindi funzionerà perfettamente così com'è. Se lo hai personalizzato, modifica i file in / etc / mysql / e riavvia il servizio.

Potresti anche voler modificare / etc / motd (messaggio del giorno), che viene mostrato su terminali virtuali e accessi remoti. Quello comunque non danneggerà nulla.

Altri servizi che potresti aver installato e che dovrebbero essere riparati sono apache, bind9, ecc. In ogni caso, trova e modifica il nome host nella loro configurazione e riavvia il servizio.


14

Il nome host identifica in modo univoco il tuo computer sulla rete locale (e possibilmente anche su Internet), quindi non è una buona idea cambiarlo a meno che tu non sappia cosa stai facendo.

Ma è possibile modificare il prompt della shell per non visualizzare la .belkin(parte del nome di dominio):

export PS1='\u@\h \w> '

Vedere la pagina man di bash e in particolare la sezione sulla richiesta di ulteriori informazioni.


14

Un altro modo migliore e sicuro per rinominare il nome host

Installa ailurus

  • Aggiungi il PPA e aggiorna il tuo repository

    sudo add-apt-repository ppa:ailurus && sudo apt-get update

  • Installa ailurus

    sudo apt-get install ailurus

  • Dopo l'installazione si troverà in Applicazioni >> Strumenti di sistema >> Ailurus
    testo alternativo

5
Perché sta ottenendo voti negativi? Dovrebbe essere meglio configurare qualcosa con uno strumento dedicato piuttosto che spostarsi sulla riga di comando e interrompere le cose nel processo.
endolito il

38
Installare un software così grande solo per cambiare un nome host è un po 'eccessivo
Nemo,

9
Sono d'accordo che questo è eccessivo, in particolare perché il software non è disponibile nei repository ma deve essere installato da un PPA ...
Marcel Stimberg

@ karthick87 forse menzionerai nella tua risposta che si tratta di un software di grandi dimensioni (con altre opzioni di configurazione)? - personalmente concordo con Endolith sul fatto che uno strumento con un singolo, semplice punto di cambio è migliore di molte operazioni da riga di comando (utilizzo Ubuntu Tweak, attualmente disponibile anche da un PPA)
david.libremone,

Penso che puoi rompere molte più cose (e più facilmente) usando questo strumento, piuttosto che sostituire una parola in un paio di file. Ti ha esposto troppe cose.
Gerlos,

9

Se non vuoi giocare con un editor di testo, Ubuntu Tweak (prendi il deb dal loro sito Web) ha questa come una delle piccole cose con cui puoi giocare (insieme a molte altre piccole modifiche che potresti voler fare ma non voglio davvero giocare con il terminale e con i file stessi).


Per curiosità, c'è qualche motivo particolare per cui Ubuntu Tweak non è nei repository software?
Olivier Lalonde,

Non sono mai andati in giro per aggiungerlo / non sono stati accettati. Puoi aggiungere il loro repository al tuo elenco o subito dopo aver iniziato a modificare o tramite l'elenco dei terminali / repository.
dkuntz2,

È inoltre possibile aggiungere Ubuntu Tweak come PPA con sudo add-apt-repository ppa:tualatrix/ppaallora sudo apt-get updatepoi sudo apt-get install ubuntu-tweak
david.libremone

1
nota che da ~ 13.04 Ubuntu Tweak non fornisce più questa opzione
david.libremone,

9

Utilizzare il hostnamecomando per modificare il nome host

sudo hostname newname

Tuttavia, ciò non modifica il file hosts, cosa che devi fare per assicurarti che il tuo computer si riconosca

gksudo /etc/hosts

E aggiungi una nuova voce per il tuo nome host che punta a 127.0.0.1

127.0.0.1 oldname newname

Potresti anche rimuovere la vecchia voce, ma preferisco tenerla lì.


7

Il seguente comando cambia il nome host al volo ma per renderlo permanente, è necessario modificare /etc/hostname:

echo 'new_hostname' > /proc/sys/kernel/hostname

Apri una nuova sessione di terminale e la vedrai subito.

Con il systemdposto giusto, il modo corretto per farlo è

hostnamectl set-hostname "new_name"

4

Se si desidera un processo assistito dalla GUI, installare Ubuntu-Tweak. Tra gli altri usi di questa app c'è la possibilità di cambiare il nome del computer tramite la scheda "Dettagli del computer" -> "Nome host"


3

Impostazioni di sistema -> Dettagli -> Overwiev (impostazione predefinita aperta in U16.04) - Nome dispositivo.

ma devi anche cambiare il nome in / etc / hosts. Ubuntu BUG ()?


Penso che sia un bel modo di cambiare il nome host.
Jawtheshark,

2

Aprire un terminale e

sudo sed -i '1s/.*/desired-name/g' /etc/hostname

# you need restart to effect with...

sudo shutdown -r 0

Attenzione: non funzionerà con Ubuntu 18+ che esegue cloud-init per impostazione predefinita, che controlla il nome host all'avvio.
nslntmnx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.