O arquivo hosts em computadores Windows é usado para vincular determinadas sequências de nomes a endereços IP específicos para substituir outros métodos de resolução de nomes.
Frequentemente, decide-se alterar o arquivo hosts e descobre-se que as alterações se recusam a ter efeito ou que até mesmo entradas antigas do arquivo hosts são ignoradas posteriormente. Vários erros de "pegadinha" podem causar isso, e pode ser frustrante descobrir qual deles.
Quando confrontado com o problema do Windows ignorar um arquivo de hosts, qual é um protocolo abrangente de solução de problemas que pode ser seguido?
Esta pergunta tem duplicatas no SO, como o arquivo HOSTS sendo ignorado
No entanto, eles tendem a lidar com um caso específico e, uma vez que qualquer erro cometido pelo OP seja descoberto, a discussão termina. Se você não cometeu o mesmo erro, essa discussão não é muito útil. Então, pensei que seria mais útil ter um protocolo geral para resolver todos os problemas relacionados a hosts que abrangesse todos os casos.
Com base na minha própria experiência e no que encontrei enquanto pesquisava 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 de resolução de nomes para que os registros antigos possam ser usados por algum tempo. Abra uma linha de comando (Windows+R,
cmd
, Enter) e digite:Para descartar 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):
E veja se ele usa o IP correto. Se sim, seu arquivo hosts está bem 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á):
Você pode verificar os dados atuais no cache DNS com:
NB:
nslookup
não olha para o arquivo hosts. Consulte NSLOOKUP e NBLOOKUP fornecem um endereço IP; PING encontra outro2. Noções básicas
hosts
e nãohost
, etc.hosts
nãohosts.txt
) - tenha cuidado se você configurou as janelas para ocultar extensões conhecidas, verifique as propriedades para ter certeza: O tipo de arquivo de hosts correto aparecerá apenas como "Arquivo".#
) que indica comentários?www.example.com
eexample.com
- mais seguro apenas adicionar as duas)?3. Espaço em branco
O formato de cada linha é
IP address
, depois uma tabulação horizontal (código de escape\t
, ASCIIHT
, hex0x09
) ou um espaço simples (hex0x20
), depois o nome do host, ou seja.www.example.com
, então finalmente um retorno de carro seguido por um avanço de linha (códigos de escape\r\n
, ASCIICRLF
, hex0x0d 0x0a
).Entradas de exemplo, usando imagens de controle Unicode para indicar caracteres de controle. (Não copie e cole estes em seu arquivo hosts!)
Os bytes individuais podem ser visualizados no Notepad++ com o plugin 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 separando as duas colunas, mas é outra coisa tentar se nada mais funcionar.
Para estar no lado seguro, certifique-se de que todas as linhas em seu arquivo hosts usem tabulações ou espaços, não ambos.
Por fim, encerre o arquivo com uma linha em branco.
4. Chave do Registro
Há uma chave de registro especificando o local do arquivo hosts. Supostamente, o Windows não suporta colocar o arquivo hosts em outros locais, mas você pode querer verificar. A chave é:
A entrada deve ser:
Ou, em uma janela do prompt de comando, digite:
que deve exibir algo semelhante a:
5. Permissões
Às vezes, há problemas com permissões no arquivo, os atributos do arquivo e coisas semelhantes. Para recriar o arquivo com permissões padrão:
hosts
.%SystemRoot%\System32\drivers\etc
diretório e sobrescreva o arquivo antigo.O último ponto é importante: copiar funciona, mover não.
A
Users
conta local deve ser capaz de ler o arquivo hosts . Para ter certeza (no Windows 7):%SystemRoot%\System32\drivers\etc
no Windows Explorer.hosts
arquivo, verifique se consegue ver os arquivos ocultos e do sistema .hosts
arquivo e selecioneProperties
no menu de contexto.hosts Properties
janela, clique naSecurity
guia.Group or user names:
caixa. Se%COMPUTERNAME%\Users
estiver presente, clique nele para visualizar as permissões.Users
não estiver presente ou estiver presente, mas não tiverRead
permissão, clique emEdit...
.Users
não estiver presente, clique emAdd...
, digiteUsers
, clique emCheck Names
e clique em OK ou pressione Enter.Users
e verifiqueRead & execute
se está marcado naAllow
coluna. Clique OK. Se umaWindows Security
caixa de alerta aparecer, escolhaYes
continuar.hosts Properties
janela.Ou, em uma janela do prompt de comando, digite:
que deve exibir algo como:
Você deve ver um
(R)
depoisBUILTIN\Users
.6. Codificação
O arquivo hosts deve ser codificado em ANSI ou UTF-8 sem BOM. Você pode fazer isso com Arquivo -> Salvar como.
7. Procuradores
Se você tiver um proxy configurado, ele pode 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 seu Internet Explorer -> Opções da Internet -> Conexões -> Configurações de LAN. Se tudo estiver em branco e a opção "Detectar configurações automaticamente" estiver marcada, você não está usando um proxy.
Se você depende de um proxy para acessar a web e, portanto, não deseja desativá-lo, pode adicionar exceções acessando Internet Explorer -> Opções da Internet -> Conexões -> Configurações de LAN -> Servidor Proxy / Avançado. Em seguida, adicione suas exceções à caixa de texto Exceções. por exemplo
localhost;127.0.0.1;*.dev
8. Endereço DNS
(Isso também pode resolver problemas de proxy.)
Vá para as propriedades de conexões de rede, depois para as configurações de 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 que o arquivo hosts funcione , mas pode ajudar no seu caso se algo estiver configurado de forma estranha.
9. .endereços locais
Se você estiver usando uma entrada de domínio .local na forma de myhost.local e ela for ignorada, tente o seguinte:
mesmo que o www.myhost.local não exista. O Windows de alguma forma não acrescenta seu grupo de trabalho ou domínio local.
10. Limites de linha/contagem
(adicionado a esta resposta para torná-la visível, pois foi mencionada algumas vezes)
O arquivo hosts do Windows parece ter um limite de linha ou host. Se você tiver mais de 150 caracteres em uma linha ou mais de 8 entradas de hosts para um IP, crie uma nova linha
por exemplo, em vez de:
Tente isto:
Certifique-se de ter colocado o ipaddress primeiro e depois o "domínio" assim:
Por favor, adicione verificando permissões de arquivo. Descobri que, embora tivesse direitos de administrador local no computador e, portanto, nos hosts. Não foi até que eu adicionei usuários locais às permissões do arquivo hosts com Read and Read & Execute e depois um ipconfig /flushdns que os hosts se tornaram ativos.
Nos meus casos, tentei o arquivo criado pelo Windows 7: C:\Windows\System32\drivers\etc\hosts.ics.
hosts.ics:
Como resultado, o Windows ignora as configurações em C:\Windows\System32\drivers\etc\hosts e as usa em hosts.ics.
Eu estava enfrentando o mesmo problema, as entradas do arquivo hosts sendo ignoradas. Eu tentei de tudo neste e muitos outros tópicos sem sorte. Eu pensei em postar o que funcionou para mim, caso alguém se depare com isso.
Nota: simplesmente abrir o arquivo hosts e deletar o conteúdo, verificar se era 0kb e re-adicioná-lo não funcionou. Suspeito de um problema de permissões no arquivo.
Passei 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.
Acho que, como parte de sua segurança, impede que malware ou vírus o desviem para sites alternativos.
Tirei meusite da lista de sites confiáveis e ele não verifica mais e "corrige" meu desvio de arquivos de hosts.
Espero que ajude alguém a resolver seu problema.
Um problema perdido na discussão acima são os nomes não qualificados (nomes que não incluem um ponto) no arquivo hosts. Suas configurações de rede podem entrar em ação 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 resolver, ou pior ainda, resolver para uma máquina completamente diferente.
Certifique-se de ter inserido os valores como
IP NAME
, não comoNAME IP
.Isso pode acontecer se houver, digamos, apenas uma entrada no arquivo e quando você ignorar o texto do comentário.
No Windows, certifique-se de que HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath esteja apontado para o diretório do arquivo hosts.
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 olhar as propriedades e desmarcar a caixa de seleção "criptografar arquivo".