Como altero o nome do host sem reiniciar?

468

Eu quero alterar o nome do host do sistema operacional, mas não quero reiniciar.

Eu editei /etc/hostname , mas é necessário reiniciar para ser implementado. Como evitar isso?

    
por Deepak Rajput 14.12.2011 / 09:56
fonte

14 respostas

607

É fácil. Basta clicar no ícone de engrenagem (localizado no canto superior direito da tela), abrir a tela "Sobre este computador" (localizada no ícone de engrenagem) e editar "Nome do dispositivo".

Ou, em um terminal, use o seguinte comando:

sudo hostname your-new-name

Isso definirá o nome do host como seu novo nome até que você reinicie. Veja man hostname e Como altero o nome do computador? para mais informações. Não use _ em seu nome.

Nota

Após a reinicialização, as alterações em /etc/hostname serão usadas, então (como você disse na pergunta), você ainda deve usar

sudo -H gedit /etc/hostname

(ou algum outro editor) para que o arquivo contenha o nome do host.

Para testar se o arquivo está configurado corretamente, execute:

sudo service hostname start

Você também deve editar /etc/hosts e alterar a linha que diz:

127.0.1.1     your-old-hostname

para que agora contenha seu novo nome de host. (Isso é necessário, caso contrário, muitos comandos deixarão de funcionar.)

    
por jasperado 14.12.2011 / 11:27
fonte
257

Ubuntu 13,04 em diante

O comando hostnamectl faz parte da instalação padrão nas edições Desktop e Server.

Combina a configuração do nome do host por meio do comando hostname e a edição de /etc/hostname . Além de definir o nome de host estático, ele pode definir o nome do host "bonito", que não é usado no Ubuntu. Infelizmente, editar /etc/hosts ainda precisa ser feito separadamente.

hostnamectl set-hostname new-hostname

Este comando faz parte do pacote systemd-services (que, como no Ubuntu 14.04, também inclui o timedatectl e localectl de comandos). Como o Ubuntu migra para systemd , esta ferramenta é o futuro.

    
por muru 27.08.2014 / 23:03
fonte
58

sem reiniciar

Alterando o nome do host ou nome do computador no ubuntu sem reiniciar

Edite / etc / hostname e mude para o novo valor,

nano /etc/hostname 

Edite / etc / hosts e mude a linha 127.0.1.1 antiga para o novo nome de host

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

Nota : li em um fórum > Edite / etc / hosts e mude a linha 127.0.1.1 antiga para o seu novo hostname (se você não fizer isso, você não poderá mais usar o sudo. Se você já fez isso, pressione ESC no menu grub, escolha recovery , e edite seu arquivo host para as configurações corretas)

Agora, após a reinicialização, seu nome de host será o novo que você escolheu

Sem reinicialização

Para mudar sem uma reinicialização , você pode simplesmente usar hostname.sh depois de editar / etc / hostname. Você deve manter ambos os nomes de host em / etc / hosts (127.0.0.1 newhost oldhost) até executar o comando abaixo:

sudo service hostname start

Nota : comando acima para ativar a alteração. O nome do host salvo neste arquivo (/ etc / hostname) será preservado na reinicialização do sistema (e será definido usando o mesmo serviço).

    
por One Zero 13.02.2012 / 21:16
fonte
42

O nome padrão foi definido quando você estava instalando o Ubuntu. Você pode facilmente alterá-lo para o que quiser em Desktop & amp; Servidor editando os arquivos hosts e hostname. Abaixo está como:

  1. Pressione Ctrl Alt no teclado para abrir o terminal. Quando se abre, execute o comando abaixo: sudo hostname NEW_NAME_HERE

Isso mudará o nome do host até a próxima reinicialização. A alteração não será visível imediatamente no seu terminal atual. Inicie um novo terminal para ver o novo nome do host.

  1. Para alterar o nome permanentemente, execute o comando para editar os arquivos do host:

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

Para o servidor Ubuntu sem uma GUI, execute sudo vi /etc/hostname e sudo vi /etc/hosts e edite-os um por um. Nos dois arquivos, altere o nome para o que você deseja e salve-os.

Por fim, reinicie o computador para aplicar as alterações.

    
por Mohsen Gh. 01.11.2014 / 23:47
fonte
16

Aqui está um script que altera o nome do host da maneira prescrita. Ele garante que não apenas sudo , mas também os aplicativos X11 continuem a funcionar, sem necessidade de reinicialização.

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}')"
    
por Lucas 07.03.2014 / 07:30
fonte
12

Sem reiniciar:

  1. alterar o nome do host em /etc/hostname
  2. atualize /etc/hosts de acordo
  3. sudo sysctl kernel.hostname=mynew.local.host

Verifique seu nome de host atual com hostname -f

    
por Tombart 31.03.2015 / 16:46
fonte
7

Para obter seu nome de host atual:

cat /etc/hostname

Isso pode ser alterado em qualquer editor de texto. Você também precisaria atualizar a entrada diferente de localhost contra 127.0.0.1 em / etc / hosts.

    
por tagMacher 14.09.2014 / 03:12
fonte
4
  1. Substitua o conteúdo de /etc/hostname pelo nome de host desejado (você pode editar com sudo nano /etc/hostname )
  2. Em /etc/hosts , substitua a entrada ao lado de 127.0. 1 .1 com o nome do host desejado (você pode editar com sudo nano /etc/hosts )
  3. Executar sudo service hostname restart; sudo service networking restart
por George 08.05.2015 / 20:26
fonte
4

Ubuntu 16.04

Isso é sem restart e sem uso de terminal.

  • Vá para Configurações do sistema - > Detalhes .
  • Ali está. Ao lado de Nome do dispositivo , há uma caixa de texto.
  • Edite a caixa de texto e feche a janela.

Abra o terminal. Veja por si mesmos.

(Para versões mais antigas, a caixa de texto não é editável.)

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

Isso deve fazer o trabalho que eu acho

    
por OmarQunsul 20.12.2013 / 13:43
fonte
3

Li as respostas, mas acho que provavelmente você está procurando por isso:

Basta executar esses dois comandos depois de editar o arquivo /etc/hostname .

$ sudo service hostname restart
$ exec bash

Isso é tudo. Não é necessário reiniciar. Também certifique-se de alterar o nome no arquivo /etc/hosts .

    
por Raman 28.09.2016 / 20:55
fonte
3

A resposta clássica para a pergunta do autor original é que, uma vez que você tenha editado /etc/hostname , você o faz aplicar sem reiniciar, executando hostname (1) com a opção -F ( --file ) como root:

sudo hostname -F /etc/hostname

O hostname (5) que está sendo manipulado com /etc/hostname e o programa mencionado tem sido o mesmo no Debian e seus derivados há mais de vinte anos, e o pacote que o fornece foi marcado essential e obrigatório , e IIRC os scripts init literalmente usaram a mesma coisa por décadas ( /etc/init/hostname.conf ainda o contém), então eu tenho que dizer que estou genuinamente confuso como ninguém já havia mencionado isso:)

    
por Josip Rodin 14.10.2017 / 19:55
fonte
3

Cloud-init (Ubuntu 18+) persistência de nome de host

Embora as abordagens acima ( hostnamectl , etc/hostname , etc) funcionem para a mudança imediata do nome do host, com o advento do cloud-init - que pode controlar a configuração do nome do host - entre muitas outras coisas. Portanto, ele não ficará após a reinicialização se o cloud-init estiver instalado. Se você quiser que a alteração permaneça após a reinicialização, será necessário editar os arquivos de configuração do cloud-init , desative o conjunto de nome de host / módulo de atualização do cloud-init:

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

ou desative o cloud-init completamente:

sudo touch /etc/cloud/cloud-init.disabled
    
por Pierz 18.06.2018 / 16:20
fonte
1

Ubuntu 16.04

Solução baseada em responder da Comunidade DigitalOcean.

Edite o arquivo hosts .

$ sudo nano /etc/hosts

Substitua oldname por um novo.

127.0.0.1 localhost newname

Configure o novo nome do host.

$ sudo hostnamectl set-hostname newname

    
por Jekis 12.01.2018 / 07:29
fonte