hospeda o arquivo ignorado, como solucionar problemas?


148

O arquivo de hosts nos computadores Windows é usado para vincular determinadas cadeias de nomes a endereços IP específicos para substituir outros métodos de resolução de nomes.

Geralmente, decide-se alterar o arquivo hosts e descobre que as alterações se recusam a entrar em vigor ou que mesmo as entradas antigas do arquivo hosts são ignoradas a partir de então. Vários erros de "pegadinha" podem causar isso, e pode ser frustrante descobrir qual deles.

Quando confrontado com o problema do Windows ignorando um arquivo de hosts, o que é um protocolo abrangente de solução de problemas que pode ser seguido?


Esta pergunta possui duplicatas no SO, como o arquivo HOSTS sendo ignorado

No entanto, eles tendem a lidar com um caso específico e, uma vez que seja descoberto qualquer erro do OP, a discussão termina. Se você não cometeu o mesmo erro, essa discussão não é muito útil. Por isso, pensei que seria mais útil ter um protocolo geral para resolver todos os problemas relacionados a hosts que abrangeriam todos os casos.


11
Além disso, como alguém postado em outro lugar, não use "nslookup" para testar isso, porque esse comando ignora o arquivo hosts. Em vez disso, use "ping".
LatinSuD 4/14

Possível duplicata do arquivo HOSTS sendo ignorada
030 de

Respostas:


220

Com base na minha própria experiência e no que encontrei no Google, aqui estão algumas coisas para tentar:

1. Você verificou se funciona corretamente?

As alterações nos hosts devem entrar em vigor imediatamente, mas o Windows armazena em cache os dados da resolução de nomes; portanto, por algum tempo, os registros antigos podem ser usados. Abra uma linha de comando (Windows + R cmd,, Enter) e digite:

ipconfig /flushdns

Para soltar os dados antigos. Para verificar se funciona, use (supondo que você tenha uma entrada ipv4 em seus hosts para www.example.com ou uma entrada ipv6 em seus hosts para ipv6.example.com):

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

E veja se ele usa o IP correto. Se sim, o arquivo do seu host está bom e o problema está em outro lugar.

Além disso, você pode redefinir o cache do NetBios com (abra o console como administrador ou ele falhará):

nbtstat -R

Você pode verificar os dados atuais no cache DNS com:

ipconfig /displaydns | more

2. Noções básicas

  • O arquivo do seu host está nomeado corretamente? Deve ser hostse não host, etc.
  • A extensão está correta? Ele não deve ter extensão ( hostsnão hosts.txt) - tenha cuidado se você configurou janelas para ocultar extensões conhecidas, verifique as propriedades para ter certeza: O tipo de arquivo correto do host será exibido apenas como "Arquivo".
  • Você seguiu a sintaxe correta ? Você acidentalmente prefixou as linhas com um hash ( #) que indica comentários?
  • Você cuidou de todas as variantes ( www.example.come example.com- o mais seguro é adicionar apenas as duas)?

3. Espaço em branco

O formato para cada linha é IP address, em seguida, uma guia horizontal (código de escape \t, ASCII HT, hex 0x09) ou um único espaço (hex 0x20), depois o nome do host, ou seja. www.example.com, finalmente, um retorno de carro seguido de um avanço de linha (códigos de escape \r\n, ASCII CRLF, hex 0x0d 0x0a).

Entradas de amostra, usando imagens de controle Unicode para indicar caracteres de controle. (Não copie e cole-os no arquivo hosts!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

Os bytes individuais podem ser visualizados no Notepad ++ com o plug-in do editor hexadecimal . O Notepad ++ também mostrará caracteres especiais (Exibir -> Mostrar símbolo) para que você possa inspecionar facilmente o número e o tipo de caracteres de espaço em branco.

Se você copiou e colou entradas de hosts de algum lugar, pode acabar com vários espaços. Em teoria, os hosts suportam vários espaços que separam as duas colunas, mas outra coisa é tentar se nada mais funcionar.

Para garantir a segurança, verifique se todas as linhas do seu arquivo hosts usam tabulações ou espaços, não as duas.

Por fim, encerre o arquivo com uma linha em branco.

4. Chave do Registro

Há uma chave do Registro especificando o local do arquivo hosts. Supostamente, o Windows não suporta realmente colocar o arquivo de hosts em outros locais, mas convém verificar. A chave é:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

A entrada deve ser:

%SystemRoot%\System32\drivers\etc

5. Permissões

Às vezes, há problemas com permissões no arquivo, nos atributos do arquivo e coisas semelhantes. Para recriar o arquivo com permissões padrão:

  1. Crie um novo arquivo de texto na sua área de trabalho.
  2. Copie e cole o conteúdo do seu arquivo atual de hosts neste arquivo no Bloco de Notas.
  3. Salve o novo arquivo de texto e renomeie-o para hosts.
  4. Copie ( não mova ) o arquivo para o seu %SystemRoot%\System32\drivers\etcdiretório e substitua o arquivo antigo.

O último ponto é importante: copiar funciona, mover não.

A Usersconta local deve poder ler o arquivo hosts . Para ter certeza (no Windows 7):

  1. Navegue para %SystemRoot%\System32\drivers\etcno Windows Explorer.
  2. Se você não conseguir ver o hostsarquivo, verifique se consegue ver arquivos ocultos e do sistema .
  3. Clique com o botão direito do mouse no hostsarquivo e selecione Propertiesno menu de contexto.
  4. Na hosts Propertiesjanela, clique na Securityguia.
  5. Examine a lista de nomes na Group or user names:caixa. Se %COMPUTERNAME%\Usersestiver presente, clique nele para visualizar as permissões.
  6. Se Usersnão estiver presente ou estiver presente, mas não tiver Readpermissão, clique em Edit....
  7. Se Usersnão estiver presente, clique em Add..., digite Users, clique Check Namese clique em OK ou pressione Enter.
  8. Selecione Userse verifique se Read & executeestá marcado na Allowcoluna. Clique OK. Se uma Windows Securitycaixa de alerta aparecer, escolha Yescontinuar.
  9. Clique em OK para fechar a hosts Propertiesjanela.
  10. Vá para a seção 1 desta resposta e siga as instruções para verificar se está funcionando agora.

6. Codificação

O arquivo de hosts deve ser codificado em ANSI ou UTF-8 sem BOM. Você pode fazer isso com Arquivo -> Salvar como.

7. Proxies

Se você tiver um proxy configurado, ele poderá ignorar o arquivo hosts. A solução é não usar o proxy ou configurá-lo para não fazer isso.

Para verificar, vá para o Internet Explorer -> Opções da Internet -> Conexões -> Configurações da LAN. Se tudo estiver em branco e "Detectar configurações automaticamente" estiver marcado, você não está usando um proxy.

Se você conta com um proxy para acessar a Web e, portanto, não deseja desativá-lo, pode adicionar exceções acessando o Internet Explorer -> Opções da Internet -> Conexões -> Configurações da LAN -> Servidor Proxy / Avançado. Em seguida, adicione suas exceções à caixa de texto Exceções. Por exemplolocalhost;127.0.0.1;*.dev

8. endereço DNS

(Isso também pode resolver problemas de proxy.)

Vá para as propriedades das conexões de rede, configurações TCP / IP e altere o primeiro servidor DNS para 127.0.0.1(localhost). O segundo provavelmente deve ser o IP do seu DNS real.

Isso não é necessário para o arquivo hosts funcionar , mas pode ajudar no seu caso, se algo estiver configurado estranhamente.

9. endereços locais

Se você estiver usando uma entrada de domínio .local no formato myhost.local e ela for ignorada, tente o seguinte

x.x.x.x myhost.local www.myhost.local

mesmo que o www.myhost.local não exista. De alguma forma, o Windows não anexa seu grupo de trabalho ou domínio local.


3
MUITO OBRIGADO! Estou quase chorando, tantos nossos enlouquecendo por um ESPAÇO no início de uma entrada em branco entre duas linhas. Obrigado Obrigado Obrigado Obrigado Obrigado !!!!!

1
Outro problema é que as versões de 64 bits do Windows redirecionam a pasta System32 para aplicativos de 32 bits (como o Notepad ++). Assim, quando você salva o arquivo, é exibido na pasta SystemWOW64 em vez de System32. A melhor solução alternativa é usar a versão Windows do bloco de notas, que é de 64 bits. O segundo melhor é conectar-se ao compartilhamento administrativo (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc) para abrir o arquivo se você usar um editor de 32 bits.
Tim Lewis

4
Bom post, mas com alguns erros. 1) "Detectar configurações automaticamente" no IE pode levar você (mesmo que sem saber) a usar um proxy, se sua rede realmente fornecer configuração automática de proxy. 2) Alterar os servidores DNS nas configurações de rede não tem nada a ver com como / quando / se o hostsarquivo é usado, e alterá-lo para 127.0.0.1 é efetivamente um erro, a menos que você esteja realmente executando um servidor DNS no seu computador.
Massimo

1
# 5 (criar um novo arquivo e copiá-lo) fez o truque para mim. Win7 pode ser engraçado com permissões.
chris

1
Eu editei o arquivo hosts no Cygwin usando o vim, acho que isso causou o problema do meu arquivo hosts parar de funcionar. Eu tive que criar um novo arquivo e copiei o conteúdo do arquivo hosts anterior e isso foi corrigido.
forloop

16

Certifique-se de colocar o endereço ip primeiro e depois o "domínio" como este:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

6
Eu prefiro usar uma única linha:127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk 28/03

1
Cuidado, o arquivo hosts do Windows permite apenas Nove ou Menos entradas por linha! Isso me mordeu e demorou um pouco para descobrir.
andrew

Não use o .devTLD localmente, pensando que você não sofrerá colisões. É um TLD global genérico válido, de propriedade do Google, e você terá muitos problemas ao usá-lo. Veja ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek

Erro de novato, mas funcionou. Doh! tinha-os para trás nome, em seguida, IP
ransems

11

Por favor, adicione a verificação de permissões de arquivo. Descobri que, embora eu tivesse direitos de administrador local no computador e, portanto, nos hosts. Não foi até eu adicionar usuários locais às permissões de arquivo de hosts com Leitura e Leitura e Execução e, em seguida, um ipconfig / flushdns que os hosts se tornaram ativos.


3
Foi isso! Fico perplexo com esse problema há anos . Eu adicionei (machine)\USERScom permissões de leitura e leitura e execução e depois ipconfig /flushdnsfuncionou. Muito obrigado. Estou muito satisfeito por finalmente ter meus arquivos de hosts de volta.
Clement Cherlin

7

Nos meus casos, tentei o arquivo criado pelo Windows 7: C: \ Windows \ System32 \ drivers \ etc \ hosts.ics.

hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

Como resultado, o Windows ignora as configurações em C: \ Windows \ System32 \ drivers \ etc \ hosts e as usa em hosts.ics.


1
Em support.microsoft.com/en-us/kb/309642/en-us , que é antigo, talvez não seja mais preciso: "O arquivo Hosts.ics é usado pelo ICS para armazenar informações sobre clientes configurados dinamicamente. Evite fazer alterações em para impedir a perda de conectividade ou dados. O arquivo Hosts (sem extensão de nome de arquivo) é o arquivo ao qual você adiciona informações sobre clientes configurados estaticamente. " Portanto, eu NÃO esperaria que o Windows ignorasse o Hostsarquivo apenas porque Hosts.icsestá presente. Outra coisa pode estar fazendo com que o Windows ignore os arquivos Hosts, como talvez uma extensão errada (mas oculta).
Arjan

1
Eu vejo essa informação. Mas eu não sei, por que consegui fazer com que os hosts funcionassem apenas eu editei hosts.ics. Antes de editar o hosts.ics, tentei todos os métodos deste tópico, mas o host não funciona.
Unick

Obrigado! Você salvou minha vida. Trabalhou no Windows 10
Xatenev

3

Eu estava enfrentando o mesmo problema, as entradas de arquivos do host eram ignoradas. Eu tentei de tudo neste e em muitos outros tópicos sem sorte. Imaginei que iria postar o que funcionou para mim, caso alguém se deparar com isso.

  1. Abra o Windows Explorer como administrador
  2. EXCLUIR o arquivo hosts
  3. Abra o bloco de notas como administrador e crie um novo arquivo de hosts
  4. Comece do zero e adicione entradas.
  5. Verifique se o arquivo hosts não possui uma extensão .txt

Nota: basta abrir o arquivo hosts e excluir o conteúdo, verificar se o arquivo é 0kb e adicioná-lo novamente não funcionou. Suspeito de um problema de permissão no arquivo.


observação rápida - ao modificar arquivos do sistema (como o arquivo hosts), é prudente criar um backup primeiro. Para evitar a perda de dados, considere renomear o arquivo hosts existente, como para hosts.bake, em seguida,
continue

1

Passaram horas, provavelmente dias nisso.

A segurança do IBM Trusteer Endpoint Rapport pode causar esse problema.

Eu adicionei mysite.com à sua lista de sites confiáveis.

Eu acho que, como parte de sua segurança, evita que malware ou vírus o desviem para sites alternativos.

Tomou o site da lista de sites confiáveis ​​e ele não verifica e "corrige" o desvio de arquivos dos meus hosts.

Espero que ajude alguém a resolver seu problema.


1

Certifique-se de ter inserido os valores como IP NAME, não como NAME IP.

Isso pode acontecer se houver, digamos, apenas uma entrada no arquivo e quando você ignora o texto do comentário.


1

Um problema esquecido na discussão acima são nomes não qualificados (nomes que não incluem um ponto final) no arquivo hosts. Suas configurações de rede podem entrar nesse ponto e adicionar automaticamente seu próprio domínio ao final de um domínio não qualificado. Consequentemente, o nome pode não ser resolvido ou, pior ainda, ser resolvido para uma máquina completamente diferente.


0

No Windows, verifique se HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath está apontado para o diretório do arquivo de hosts.


0

No meu caso, o problema era que eu estava copiando um arquivo hosts de um diretório criptografado e substituindo o etc / hosts por isso. Eu tive que examinar as propriedades e desmarcar a caixa de seleção "criptografar arquivo".


0

O arquivo Meus hosts é ignorado até que eu tenha uma conexão de rede no meu laptop (Windows 7). Depois que eu me conecto a uma rede, tudo funciona como esperado. Obviamente, sem uma rede, não consigo executar ping nos hosts, etc., mas ainda esperava que o Windows obtivesse seus endereços IP no arquivo hosts. Não faz. Mesmo depois de desconectado, ele ainda procura os endereços OK, mas entre reiniciar o computador e conectar-se primeiro a uma rede, ele ignora o arquivo de hosts.

(Aliás, tabulações, espaços e nenhum retorno de carro são todos irrelevantes, até onde eu sei).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.