Não é possível obter o arquivo hosts funcionando no meu servidor Linux

3

Tenho o Ubuntu 11.10 rodando no VirtualBox e configurei um servidor virtual nomeado.
Consigo acessar este site do Windows 7, mas não consigo acessar o site pelo Ubuntu.

Meu arquivo HOSTS está localizado na pasta /etc/ e é assim:

127.0.0.1       localhost
127.0.1.1       ubuntu-VirtualBox
192.168.0.97     mysite.com

Mas sempre que tento acessar o mysite.com no servidor, sou redirecionado para um site dizendo que esse domínio está à venda.

Qual poderia ser a causa do arquivo hosts não funcionar?

Atualizar

Este é meu /etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the 'glibc-doc-reference' and 'info' packages installed, try:
# 'info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
    
por Steven 29.01.2012 / 10:43

5 respostas

9

Primeiro, verifique se o nsswitch.conf está correto:

$ grep hosts /etc/nsswitch.conf
hosts:          files dns

Certifique-se de que ele diz "arquivos dns", caso contrário, ele não procurará em seu arquivo de hosts antes de solicitar o DNS.

Se estiver correto no nsswitch, eu já vi que um personagem invisível de alguma forma entrou no meu arquivo de hosts, fazendo com que parecesse perfeitamente normal, mas o caracter invisível não funcionou.
Portanto, tente excluir a linha e, em seguida, crie-a novamente - à mão, não cole.

A próxima coisa que você pode tentar é testar o que ele procura fazendo o ping:

$ ping mysite.com
PING mysite.com (192.168.0.97) 56(84) bytes of data.

Se você vir o endereço IP correto, ele será resolvido corretamente e o navegador será o causador do problema. Não use host, dig ou nslookup, eles ignoram / etc / hosts! Use ping para ter o endereço IP resolvido como a maioria dos aplicativos o veria.

    
por 29.01.2012 / 10:54
1

Executar curl -Iv http://mysite.com

Você deve receber algo como (mais algumas linhas):

* About to connect() to mysite.com port 80
*   Trying 192.168.0.97... connected
* Connected to mysite.com (192.168.0.97) port 80
> HEAD / HTTP/1.1
> User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: mysite.com
> Accept: */*
>
< HTTP/1.1 200 OK

Na verdade, aqui está uma ideia: você está acessando "mysite.com" ou "www.meusite.com"? Se é o último, você não tem uma entrada como essa em seu arquivo hosts, e ele irá falhar. Se você estiver indo para "mysite.com", mas o seu servidor da web estiver redirecionando para "www.mysite.com", isso também falhará.

Observe o "200 OK" no final do meu snippet de saída de onda. Se você está recebendo, digamos, um 301, você está sendo redirecionado para outro lugar pela configuração do seu servidor web.

    
por 29.01.2012 / 13:21
1

Eu tive que sair e voltar depois de adicionar as entradas ao / etc / hosts

    
por 24.01.2013 / 12:43
0

Você mencionou o nome. Se você está esperando para usar esse serviço DNS, isso precisa estar no seu arquivo resolv.conf .

    
por 29.01.2012 / 18:15
0

Por padrão, as permissões de arquivo do arquivo "/ etc / hosts" são 600. Tente este comando: sudo chmod 644 / etc / hosts

    
por 14.02.2012 / 17:01