24Aug

Qual é a diferença entre Locahost e endereço IP local?


Se você estiver fazendo muitos ajustes de rede, configurando aplicativos baseados em LAN e ferramentas de servidor, ou simplesmente curioso, provavelmente notou que há uma diferença entre o host local o endereço IP local. Continue lendo para aprender as diferenças.

Today's Question &A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.

A Pergunta

Leitor de superutilizador Diogo quer saber por que o comando de ping trata o localhost e o endereço IP local de forma diferente quando, na superfície, eles parecem ser a mesma coisa:

Usando cmd e ping no Windows me deram os seguintes resultados:

Pinging "localhost":

Pinging "192.168.0.10"( endereço IP local):

As duas situações não são exatamente as mesmas?

Quero dizer, estou fazendo um ping na mesma interface, na mesma máquina e no mesmo endereço. Por que recebo resultados tão diferentes?

Obviamente, há uma diferença de algum tipo, mas o que exatamente acontece quando você alterna entre os dois?

A resposta

Contribuinte do SuperUser Tom Wijsman oferece a seguinte visão sobre as diferenças sutis entre os dois:

Você não está fazendo o ping da mesma interface , sem quaisquer interfaces físicas, você ainda possui um "host local".

Seu localhost é usado para se referir ao seu computador a partir do seu IP "interno", não de quaisquer IPs "externos" do seu computador. Assim, os pacotes de ping não passam por qualquer interface de rede física;somente através de uma interface de loopback virtual que envia diretamente os pacotes de porta para porta sem qualquer lúpulo físico.

Você ainda pode se perguntar por que localhost está resolvendo para: : 1, enquanto tradicionalmente esperamos que ele resolva o endereço IPv4 127.0.0.1.Observe que. localhost é tradicionalmente um TLD( veja RFC 2606) que remete para o endereço IP de volta ao loop( para IPv4, veja RFC 3330, especialmente 127.0.0.0/8).

Olhando para o localhost usando nslookup nos dá:

nslookup localhost

. .. Nome: localhost Endereços:: : 1 127.0.0.1

Assim, o Windows prefere usar o endereço IP do loop IPv6: : 1( consulte RFC 2373) como estálistados primeiro.

Ok, então, de onde é que vem, vejamos o arquivo hosts.

tipo% WINDIR% \ System32 \ Drivers \ Etc \ Hosts

. .. # a resolução de nomes do local local é tratada no próprio DNS.# 127.0.0.1 localhost #: : 1 localhost. ..

Hmm, temos que olhar para as configurações de DNS do Windows.

Este artigo da KB nos informa sobre uma configuração que afeta o que o Windows prefere, enfatizado em negrito:

  1. No Editor do registro, localize e clique na seguinte subchave de registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters
  2. Clique duas vezes em DisabledComponents paramodifique a entrada DisabledComponents. Observação: se a entrada DisabledComponents não estiver disponível, você deve criá-la. Para fazer isso, siga estas etapas:
    1. No menu Editar, aponte para Novo e, em seguida, clique em Valor DWORD( 32 bits).
    2. Digite DisabledComponents e, em seguida, pressione ENTER.
    3. Clique duas vezes em DisabledComponents.
  3. Digite qualquer um dos seguintes valores no campo Dados do valor: para configurar o protocolo IPv6 no estado desejado e, em seguida, clique em OK:
    • Digite 0 para habilitar todos os componentes IPv6.(Configuração padrão do Windows)
    • Digite 0xffffffff para desativar todos os componentes IPv6, exceto a interface de loopback IPv6.Esse valor também configura o Windows para preferir usar o Protocolo de Internet versão 4( IPv4) em IPv6 modificando entradas na tabela de políticas de prefixo. Para obter mais informações, consulte Seleção de endereço de origem e destino.
    • Digite 0x20 para preferir IPv4 sobre IPv6 modificando entradas na tabela de políticas de prefixo.
    • Digite 0x10 para desativar o IPv6 em todas as interfaces nontunnel( tanto na LAN como nas interfaces do protocolo ponto a ponto [PPP]).
    • Digite 0x01 para desativar IPv6 em todas as interfaces de túnel. Estes incluem o protocolo de endereçamento de túnel automático do Intra-Site( ISATAP), 6to4 e Teredo.
    • Tipo 0x11 para desativar todas as interfaces IPv6, exceto para a interface de loopback IPv6.
  4. Reinicie o computador para que esta configuração entre em vigor.

Qual é esta tabela de política de prefixo?

interface netsh ipv6 mostra prefixpolicies( ou prefixpolicy em versões anteriores)

Precedence Label Prefix ---------- ----- -------------------------------- 50 0: : 1/128 45 13 fc00: : / 7 40 1: : / 0 10 4: : ffff: 0: 0/96 7 14 2002: :/ 16 5 5 2001: : / 32 1 11 fec0: : / 10 1 12 3ffe: : / 16 1 10: : / 96

Esta tabela decide quais prefixos têm precedência sobre outros prefixos durante o DNS resolve.

Ah, então, usando esse KB, poderíamos adicionar entradas aqui que indicam que o IPv4 tem precedência maior que o IPv6.

Nota: Não há motivos para substituir esse comportamento, a menos que você esteja enfrentando problemas compatíveis. Alterar esta configuração no nosso Servidor Windows quebrou o nosso servidor de correio, por isso deve ser manuseado com cuidado. ..

Não há nada que desejemos mais do que uma resposta completa e informativa com documentos de suporte vinculados de sobra. Claramente, o local e o endereço IP local são entidades distintas, servem diferentes propósitos, e agora todos sabemos o porquê.

Tem alguma coisa a adicionar à explicação? Som na parte dos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.