Por que, no Windows, a conexão 'localhost' é redefinida enquanto o 127.0.0.1 e outros especificados no arquivo 'hosts' funcionam?

3

Eu quero testar alguns servidores HTTP no endereço do host local no Windows (XP) e obtenho um comportamento estranho: quando eu insiro link no meu navegador eu recebo erro de redefinição de conexão, enquanto colocar link ou qualquer outra coisa mapeada para esse endereço no arquivo 'hosts' funciona bem e a página inicial é exibida .

Fechei alguns processos que suspeitei, desativaram o firewall e isso não ajudou. Por um momento, o 'localhost' voltou e depois desapareceu novamente sem qualquer motivo. Como posso rastrear o que está interferindo no endereço do host local no Windows?

Editar1:
Aqui está o meu arquivo 'hosts':

127.0.0.1       localhost
127.0.0.1       moin

A entrada 'moin' funciona bem, 'localhost' é resetada. O servidor HTTP é jogado! framework, e a maneira que devo usá-lo é ' link '.

Edit2:
A resposta do ping indica que o 'localhost' resolve o endereço IPv6 :: 1:

C:\> ping localhost

Checking IZABELA [::1] using 32 bytes of data:

Response from ::1: time<1 ms
Response from ::1: time<1 ms
Response from ::1: time<1 ms
Response from ::1: time<1 ms
...
    
por Rajish 04.04.2011 / 18:30

1 resposta

3

Isso ocorre porque seu localhost passa seu adaptador de rede (observe o LMHOSTS em sua configuração avançada, isso basicamente faz o processamento do arquivo HOSTS ser ativado e desativado) e seu adaptador de rede pode fazer algo extra com ele. Se você visitar 127.0.0.1 , ele irá diretamente para o adaptador de loopback, pois, para as outras entradas, seu adaptador de rede pode simplesmente optar por encaminhá-las em vez de manipulá-las (como a entrada localhost ). Você pode obter informações de roteamento usando route PRINT em um prompt de comando:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.100    281 <--
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306 <==
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306 <==
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306 <==
      192.168.1.0    255.255.255.0         On-link     192.168.1.100    281
    192.168.1.100  255.255.255.255         On-link     192.168.1.100    281
    192.168.1.255  255.255.255.255         On-link     192.168.1.100    281
     192.168.11.0    255.255.255.0         On-link      192.168.11.1    276
     192.168.11.1  255.255.255.255         On-link      192.168.11.1    276
   192.168.11.255  255.255.255.255         On-link      192.168.11.1    276
     192.168.40.0    255.255.255.0         On-link      192.168.40.1    276
     192.168.40.1  255.255.255.255         On-link      192.168.40.1    276
   192.168.40.255  255.255.255.255         On-link      192.168.40.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.40.1    276
        224.0.0.0        240.0.0.0         On-link      192.168.11.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.1.100    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.40.1    276
  255.255.255.255  255.255.255.255         On-link      192.168.11.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.1.100    281

Note que quando eu defino o <== no final, eles garantem que a interface 127.0.0.1 seja usada quando você visitar um loopback endereço .

Note que eu defino o <-- no final e 0.0.0.0 significa qualquer IP, eles garantem que coisas como localhost , qualquer outra coisa enviada em HOSTS e a maioria dos IPs que você visita sejam manipuladas pela sua rede adaptador que usa a interface 192.168.1.100 e o gateway 192.168.1.1 .

Uma métrica mais alta significa mais prioridade, por isso, <== tem preferência sobre <-- .

Mais informações podem ser encontradas em sub-redes para entender as máscaras de rede.

Quanto ao seu problema:

  • Verifique sua configuração do IIS / Apache.
  • Desative seu anti-vírus e firewall.
  • Redefina seu adaptador de rede para ver se ele resolve o problema.
  • Use a opção Troubleshoot Problems para ver se resolve algo.
  • Use ipconfig /flushdns para limpar a resolução de DNS.
  • Veja o que você ganha por ping localhost .
  • Tente desativar o IPv6.
  • Atualize os drivers para o seu adaptador de rede.

Relate se você ainda tem o problema, você pode querer capturar um rastreamento Wireshark .

    
por 04.04.2011 / 18:49