O WGET não pode resolver o host


11

Eu tenho duas máquinas na mesma sub-rede executando o Debian 5.0. Eles usam o mesmo DNS (/etc/resolv.conf), roteam para o mesmo gateway (#route) e têm as mesmas configurações de iptables (#iptables -L). Posso fazer ping de ambos, para endereços IP e nomes de host. Posso executar o #host www.google.com e obter os mesmos resultados em ambos. Mas o problema é que, em um deles, não consigo me enrolar ou enrolar.

Portanto, na máquina 1, tudo está bem, mas na máquina 2 (com as mesmas configurações da máquina 1) não consigo me enrolar ou enrolar.

O erro que recebo é:

# wget google.com
--2009-10-20 16:38:36--  http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'

Mas na máquina 1, não há problema em wget ou enrolar e retorna:

# wget google.com
--2009-10-20 16:43:55--  http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
Saving to: `index.html.3'

Etc.

Espero que alguém aqui possa me indicar a direção certa aqui, para que eu possa resolver esse problema :)


Provavelmente, isso não está relacionado ao wget, mas a um problema de rede.
jldupont

você tem uma configuração de proxy no ambiente .. minha máquina de trabalho fez :-(
lexu 20/10/2009

Tente "hospedar google.com", não "hospedar www.google.com", no servidor 2. #
Bill Weiss

Respostas:


17

Verifique seu /etc/nsswitch.confarquivo (ou qualquer outro equivalente no Debian, se não for esse o caso).

hoste nslookup sempre faça pesquisas de DNS.

No entanto, outros aplicativos procurarão no NSS primeiro outros sistemas de nomes (por exemplo /etc/hosts, NIS, etc.). Se outra coisa estiver configurada, mas não estiver funcionando, pode impedir que o aplicativo tente o DNS.


3
A maneira canônica de verificar o resolvedor está em execução getent hosts google.com. Isso usa nsswitch.conf e, em seguida, resolve.conf conforme necessário.
5119 Joe

9

Obrigado pelas respostas, pessoal!

Era o arquivo nsswitch.conf. Eu tinha configurado o LDAP a partir de um tutorial que me dizia para usar esta linha nos hosts:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Quando eu mudei para isso:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Funciona sem problemas. Então eu acho que o arquivo de configuração nsswitch estava fazendo com que ele retornasse nulo se não encontrado em arquivos ou mdns4_minimal, certo?

Obrigado pela ajuda!


7
Você provavelmente deve aceitar a resposta de Alnitak.
21811 Dan Carley

Sim, como faço isso? : - /

Aceite clicando no "V" ao lado da pontuação do voto. :)
Redsandro

2

Pode haver um proxy inválido configurado na máquina com o erro? Tente o seguinte:

# wget --no-proxy google.com

2

A primeira coisa a tentar é verificar se o DNS funciona corretamente.

# host google.com
google.com has address 74.125.67.100
google.com has address 74.125.45.100
google.com has address 74.125.53.100

Se você não obtiver essa resposta, verifique /etc/resolv.conf e encontre os servidores de nomes listados nesse arquivo. Você pode executar ping em cada um deles?

Tente consultar cada um deles individualmente:

# host google.com 12.34.56.78

Você pode resolver outro host?


2

Eu tive o mesmo problema, mas ao lado de mudar /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Eu também tive que mudar os servidores de nomes:

Mude /etc/resolv.confpara que aponte para os servidores de nomes do Google. Os adicionados pelo gerenciador de rede não funcionam para mim.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

3
Obrigado, anônimo, pelo comentário construtivo no voto negativo.
Redsandro 23/09
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.