Como altero o nome do computador?

327

Quando eu me conecto ao meu servidor (ubuntu server 10.10), recebo o seguinte:

[email protected] ~>

Como posso remover ".belkin"?

Wolfy
fonte
1
Tente editar o / etc / hosts. gksudo gedit / etc / hosts e substitua server-name.belkin pelo nome que você desejar.
LFC_fan 26/10/10
2
Deseja alterar o nome real do servidor ou apenas a maneira como ele é exibido no prompt?
Dave Jennings
2
Votar para reabrir, porque este é um superconjunto (permite reiniciar).
Ciro Santilli escreveu:
como essa pergunta é encerrada em favor de uma pergunta mais de um ano depois?
Warren
@warren, o consenso atual é encerrar com "qualidade": meta.stackexchange.com/questions/147643/… Como "qualidade" não é mensurável, apenas aprovo. ;-) Provavelmente se resume a qual pergunta atingiu as melhores palavras-chave do Google para iniciantes no título.
Ciro Santilli escreveu:

Respostas:

420

Você precisa editar o nome do computador em dois arquivos:

/etc/hostname 

e

/etc/hosts

Ambos precisarão de acesso administrativo, portanto, execute

gksu gedit /path/to/file

Substitua quaisquer instâncias do nome do computador existente pelo seu novo. Quando a execução completa

sudo service hostname start

O nome também será alterado se você reiniciar o computador.

Veja também:

richzilla
fonte
43
Depois disso, just sudo service hostname restarte o nome do host foram alterados sem a reinicialização.
Anthony O.
6
No Ubuntu 14.04, não há serviço 'hostname'. O que posso fazer lá para evitar a reinicialização.
Arpad Horvath
8
sudo service hostname restartnão funciona na instalação padrão do ubuntu server 14.04 na AWS. Eu tive que fazer a reinicialização completa do servidor
gerrytan
9
Em 14.04, eu simplesmente corri sudo hostname, e isso fez o truque. Não notei nenhuma alteração imediata, mas quando abri um novo terminal, vi que meu nome de host havia realmente mudado.
TSJNachos117
8
sudo hostname new-host-namefuncionou para mim no ubuntu 13.10
Lekhnath
153

hostnamectl set-hostname em 13.10 ou superior na área de trabalho

Essa é a melhor maneira se você tiver systemd (13.10 em diante) e se o cloud-init não estiver ativo (veja abaixo):

hostnamectl set-hostname 'new-hostname'

Isto:

  • não requer reinicialização
  • persiste após reinicializações

Mais informações em: https://askubuntu.com/a/516898/52975

18.04 em diante: cloud-init

18.04 Introduzido cloud-init que pode controlar a configuração do nome do host para que as hostnamectlalterações não sejam mantidas após uma reinicialização se o cloud-init estiver instalado. TODO: como verificar se está instalado, está instalado por padrão na imagem da área de trabalho ou apenas no servidor?

Se você deseja que as hostnamectlalterações permaneçam após uma reinicialização, será necessário editar os arquivos de configuração do cloud-init , desabilite o módulo set / update do nome do host do cloud-init :

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

ou desative inteiramente o cloud-init:

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

Consulte também: Como altero o nome do host sem reiniciar?

Ciro Santilli adicionou uma nova foto
fonte
3
funciona perfeito no Ubuntu 15.10
AB
4
Não altera / etc / hosts em 14.04
Autodidact
7
funciona perfeitamente no Ubuntu 16.04 ... muito obrigado
Hirak
2
Confirmado para funcionar corretamente em 16.10 também
fuzzygroup
2
Eu tive que adicionar o meu novo nome do host em / etc / hosts outra pessoa usando sudo causaria algum erro "sudo: incapaz de resolver xxxxx host"
WoodyDRN
70

É bem fácil:

  1. Edite /etc/hostname, faça a alteração do nome, salve o arquivo.

  2. Você também deve fazer as mesmas alterações no /etc/hostsarquivo

  3. Corre sudo service hostname start

Contanto que você não tenha configurações de aplicativo, dependendo do nome do host 'antigo', você deve estar bem ;-)

Pavlos G.
fonte
31
ATENÇÃO: Se você fazer isso sem alterar / etc / hosts, consequentemente, você não será capaz de usar o sudo porque o seu hostname vai deixar de lookup
João Pinto
Você está certo ao editar o / etc / hosts, esqueci-o (apenas o adicionei à minha resposta), embora o sudo pareça estar funcionando bem para mim sem alterá-lo (reiniciei a máquina e ainda funciona)
Pavlos G.
1
Tudo bem, você pode fazer isso como hostnameagora é um serviço gerenciado upstart. Ele fará exatamente a mesma coisa, reinicie o serviço.
Pavlos G.
2
Nota: isso não funcionará para o ubuntu 14.x, pois hostnamenão está mais noinit.d
Rápli András
2
Aviso: não funcionará com o Ubuntu 18+, que está executando o cloud-init por padrão, que controla o nome do host na inicialização.
Nslntmnx 01/09/19
24

É seguro, basta editar o arquivo de configuração do nome do host do sistema (/ etc / hostname) e o arquivo de resolução do nome do host (/ etc / hosts). Em um terminal, execute o seguinte:

sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now
João Pinto
fonte
2
Você pode evitar o desligamento com sudo service hostname restart.
Wtower
3
@Wtower Não funciona com 14.04. :(
ankush981
Aviso: não funcionará com o Ubuntu 18+, que está executando o cloud-init por padrão, que controla o nome do host na inicialização.
Nslntmnx 01/09/19
18

Além de editar / etc / hosts e / etc / hostname, vários serviços também podem ter problemas com a alteração. Mysql e postfix são instalados por padrão no ubuntu. Um postfix quebrado não afetará a maioria dos usuários do ubuntu, pois é um servidor de email em segundo plano que não é muito usado.

Postfix:

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

A configuração padrão do mysql não usa o nome do host, portanto funcionará bem como está. Se você o personalizou, edite os arquivos em / etc / mysql / e reinicie o serviço.

Você também pode editar / etc / motd (mensagem do dia), que é mostrada em terminais virtuais e logins remotos. Esse não vai prejudicar nada.

Outros serviços que você pode ter instalado e precisariam ser corrigidos são apache, bind9, etc. Em cada caso, localize e edite o nome do host em sua configuração e reinicie o serviço.

ImaginaryRobots
fonte
14

O nome do host identifica exclusivamente o seu computador na rede local (e possivelmente também na Internet), portanto, não é uma boa ideia alterá-lo, a menos que você saiba o que está fazendo.

Mas você pode alterar o prompt do shell para não exibir o .belkin(parte do nome de domínio):

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

Consulte a página de manual do bash e, especificamente, a seção solicitando mais informações.

Riccardo Murri
fonte
14

Outra maneira melhor e segura de renomear o nome do host

Instale o ailurus

  • Adicione o PPA e atualize seu repositório

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

  • Instale o ailurus

    sudo apt-get install ailurus

  • Após a instalação, ele será encontrado em Aplicativos >> Ferramentas do sistema >> Ailurus
    texto alternativo
karthick87
fonte
5
Por que isso está recebendo votos negativos? Deve ser melhor configurar algo com uma ferramenta dedicada do que mexer na linha de comando e interromper as coisas no processo.
Endolith
38
A instalação de um grande software, tais apenas para mudar um nome de host é um pouco de um exagero
Nemo
9
Concordo que este é um exagero - em particular porque o software não está disponível nos repositórios, mas tem que ser instalado a partir de um PPA ...
Marcel Stimberg
@ karthick87 talvez mencione na sua resposta que este é um grande software (com outras opções de configuração)? - Pessoalmente, concordo com endolith que uma ferramenta com uma única e simples ponto de mudança é melhor do que muitas operações de linha de comando (eu uso Ubuntu Tweak, também disponível a partir de um PPA)
david.libremone
Eu acho que você pode quebrar muito mais coisas (e mais facilmente) usando essa ferramenta, do que apenas substituir uma palavra em alguns arquivos. Ele expôs muitas coisas para você.
gerlos
9

Se você não quiser jogar com um editor de texto, o Ubuntu Tweak (pegue a deb do site deles) tem isso como uma das pequenas coisas com as quais você pode brincar (junto com muitos outros pequenos ajustes que você pode querer fazer, mas realmente não quer brincar com o terminal e com os próprios arquivos).

dkuntz2
fonte
Por curiosidade, existe alguma razão específica para o Ubuntu Tweak não estar nos repositórios de software?
Olivier Lalonde 7/12
Eles nunca conseguiram adicioná-lo / não foram aceitos. Você pode adicionar o repo deles à sua lista logo após iniciar o ajuste ou através da lista de terminais / repo.
precisa saber é o seguinte
Você também pode adicionar o Ubuntu Tweak como um PPA com sudo add-apt-repository ppa:tualatrix/ppa, em seguida, sudo apt-get updateem seguida, sudo apt-get install ubuntu-tweak
david.libremone
1
notar que desde ~ 13.04 Ubuntu Tweak não fornece mais essa opção
david.libremone
9

Use o hostnamecomando para alterar seu nome de host

sudo hostname newname

No entanto, isso não edita o arquivo hosts, o que você deve fazer para garantir que o seu computador se reconheça

gksudo /etc/hosts

E adicione uma nova entrada para o seu nome de host apontando para 127.0.0.1

127.0.0.1 oldname newname

Você também pode remover a entrada antiga, mas eu prefiro mantê-la lá.

Nemo
fonte
7

O comando a seguir altera o nome do host em tempo real, mas para torná-lo permanente, você deve editar /etc/hostname:

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

Abra uma nova sessão do terminal e você a verá imediatamente.

No systemdlugar, a maneira correta de fazer isso é

hostnamectl set-hostname "new_name"
Terry Wang
fonte
4

Se você deseja um processo assistido por GUI, instale o Ubuntu-Tweak. Entre outros usos deste aplicativo, está a capacidade de alterar o nome do computador na guia "Detalhes do computador" -> "Nome do host"

13east
fonte
3

SystemSettings -> Details -> Overwiev (padrão aberto no U16.04) - Nome do dispositivo.

mas, além disso, você deve alterar o nome em / etc / hosts. Erro do Ubuntu ()?

udroidman
fonte
Eu acho que essa é uma maneira bastante agradável de mudar o nome do host.
Jawtheshark # 8/16
2

Abra um terminal e

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

# you need restart to effect with...

sudo shutdown -r 0
SergioAraujo
fonte
Aviso: não funcionará com o Ubuntu 18+, que está executando o cloud-init por padrão, que controla o nome do host na inicialização.
Nslntmnx 01/09/19