localhost como confusão de nome de host

2

Eu tenho um conhecimento básico sobre o nome do host e o FQDN. Agora estou confuso, tenho mesmo que especificar um nome para o meu nome de host? Então, por exemplo:

Hostname: somename
Domain: mydomain.com
FQDN: somename.mydomain.com

Agora, vejo algo em que o nome do host é localhost . Qual é a diferença e o impacto disso? Então, meu FQDN se localhost for meu nome de host seria localhost.mydomain.com , certo?

    
por Baboon 09.11.2013 / 04:48

4 respostas

2

localhost é um "nome especial" que aponta para o endereço IP 127.0.0.1, que deve existir em qualquer computador capaz de usar a Internet, e se refere à própria máquina. (Qualquer endereço IP começando com 127.x.x.x refere-se à máquina local).

localhost não é o mesmo que localhost.mydomain.com.

O arquivo / etc / hostname aparece o que seu computador acha que é o seu nome. No Debian, parece ligar 127.0.1.1 a este nome no arquivo / etc / hosts. [Você provavelmente poderia definir isso para um endereço IP "válido" se você tiver um atribuído estatisticamente]

Idealmente, você não deve usar "localhost" como seu nome de host, pois isso (em teoria, não pode pensar em nenhum exemplo, pois eu não o fiz) causa problemas em alguns programas.

    
por 09.11.2013 / 05:23
1

"localhost" é o "nome" para a interface de loopback, que sempre tem o IP de servidor reservado 127.0.0.1 e normalmente o nome do dispositivo "lo" ou "lo0"

Ok, seems I get it now. But why does hostname -f gives me localhost then?

se você não der um nome ao seu host, o nome do host será padronizado para localhost, já que os sistemas sem nome não são considerados "prontos para rede / internet"

se você fizer atribuir um nome ao seu host, o nome do host deverá ser resolvido para o endereço IP do host. dependendo do sabor do linux que você executa, existem arquivos diff conf para configurar isso. para ver isso em ação, a partir de uma máquina nomeada (ou seja, uma caixa host cujo nome de host não é "localhost"), execute isto:

ping localhost
ping $hostname

você deve ver dois diferentes ips voltar, 127.0.0.1, e o ip da sua máquina ... se não verificar os arquivos conf, interface de hup / scripts de rede, ou apenas reiniciar depois de fazer as alterações

So my FQDN if localhost is my hostname would be localhost.mydomain.com, right?

não, o localhost não é usado para conectar fora da máquina, então não existe um "fqdn" real para o localhost (embora eu tenha visto o padrão para localhost.localdomain, mas isso não é real na internet, então não "totalmente" qualificada "imo).

"localhost", ou lo, é um pseudo-dispositivo que só existe e é relevante em uma máquina local. a razão de ser é percorrer a pilha localmente ... por exemplo, código python que se conecta a um banco de dados em execução em "localhost"

    
por 09.11.2013 / 08:19
0

O impacto é que você insira localhost em seu arquivo de zona DNS como o endereço IP dessa máquina ou insira-o como 127.0.0.1. Seja qual você escolher, algumas coisas não funcionarão corretamente.

Se você inseri-lo como 127.0.0.1 (isso é o recomendado), então você não será capaz de alcançar esta máquina localhost nomeada de quaisquer outras máquinas. Por isso, seria prático usar um nome diferente ...

Se você inseri-lo como o endereço IP desta máquina, então você terá um desacordo em outras máquinas entre os resultados da resolução de nomes feita através de arquivos (/ etc / hosts) e o serviço DNS, porque todos os outros a máquina terá uma linha localhost no arquivo / etc / hosts com o endereço 127.0.0.1 e o serviço DNS conterá um endereço diferente.

    
por 09.11.2013 / 05:49
0

localhost é um loopback para sua máquina local. Você não precisa sair do seu caminho para nomeá-lo como localhost , pois ele deve ser localhost fora da caixa. Você instala o Linux - ou qualquer sistema operacional - em qualquer máquina & sem você fazer nada, sempre haverá um localhost na sua configuração de rede.

Quero dizer, o Mac Mini que estou digitando agora responde a localhost . O que significa que é minha máquina & minha máquina local. Se você estivesse em sua máquina local, localhost seria sua máquina local.

hostname é simplesmente o apelido para sua máquina que pode ou não ser usado como referência para outros serviços. Em muitos casos, você pode substituir hostname.local (com hostname sendo seu nome de host real) como outra maneira de ter um loop de rede local em sua máquina. Essa combinação de hostname e .local é considerada um nome de domínio totalmente qualificado (FQDN).

Por exemplo, eu brinco muito com as configurações do Apache, e há um benefício para eu configurar configurações separadas para localhost ou hostname.local se eu estiver usando NameVirtualHost no Apache.

Agora, se você deseja expandir além de seu .local , que se encaixa no domínio de obter um domínio real conectado à configuração do mundo externo. Que é uma outra discussão.

EDITAR: Com base nos seus comentários abaixo, parece que a máquina em questão tem localhost como um nome de host. O que significa que você pode tecnicamente alcançar localhost.local , o que não é 100% errado, mas é altamente confuso. Para alterar o nome do host para algo novo, faça o seguinte. Eu presumo que o novo host deve ser chamado de coolnewhost , por exemplo:

Isso mudará temporariamente seu nome de host para coolnewhost :

sudo hostname coolnewhost

Para alterá-lo permanentemente, edite o arquivo (eu gosto de usar nano mas use o que você gosta):

sudo nano /etc/hostname

Em seguida, edite o nome do host nesse arquivo para ler coolnewhost .

Outra opção é usar sysctl para alterar o nome do host no kernel.

sudo sysctl kernel.hostname= coolnewhost

E você deve ser relativamente bom. Mas eu também verificaria o seu arquivo /etc/hosts para ver a configuração antiga do localhost é estranha:

sudo nano /etc/hosts

Deve haver apenas uma linha lá que diz:

127.0.0.1       localhost

Se houver algo mais que NÃO corresponda a essa linha, você precisará editá-la, comentá-la ou removê-la.

    
por 09.11.2013 / 06:12