WGET 无法解析主机

WGET 无法解析主机

我有两台机器在同一个子网上运行 Debian 5.0。它们使用相同的 DNS(/etc/resolv.conf),它们路由到相同的网关(#route),并且它们具有相同的 iptables 设置(#iptables -L)。我可以从这两台机器 ping 通 IP 地址和主机名。我可以运行 #host www.google.com 并在两台机器上获得相同的结果。但问题是,在其中一台机器上,我无法使用 wget 或 curl。

因此在机器 1 上一切正常,但在机器 2 上(使用与机器 1 相同的设置)我无法使用 wget 或 curl。

我收到的错误是:

# 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'

但是在机器 1 上,wget 或 curl 没有问题并返回:

# 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。

我希望这里有人可以给我指出正确的方向,以便我可以解决这个问题:)

答案1

检查您的/etc/nsswitch.conf文件(如果不是该文件,则检查 Debian 上的其他等效文件)。

hostnslookup 总是进行 DNS 查找。

但是其他应用程序会首先在 NSS 中查找其他命名系统(例如/etc/hostsNIS 等)。如果配置了其他东西但不起作用,则可能会阻止应用程序尝试 DNS。

答案2

谢谢你们的回答!

这是 nsswitch.conf 文件。我根据教程设置了 LDAP,该教程告诉我在主机中使用以下行:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

当我将其改为这样时:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

它运行正常。所以我猜 nsswitch 配置文件让它在文件或 mdns4_minimal 中未找到时返回 null,对吗?

感谢您的帮助!

答案3

我遇到了同样的问题,但接下来要进行以下改变/etc/nsswitch.conf

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

我还必须更改名称服务器:

更改/etc/resolv.conf以使其指向 google 名称服务器。网络管理员添加的那些对我来说不起作用。

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

答案4

首先要尝试的是检查 DNS 是否正常工作。

# 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

如果您没有收到该响应,请检查 /etc/resolv.conf 并查找该文件中列出的名称服务器。您能 ping 每一个服务器吗?

尝试单独查询每一个:

# host google.com 12.34.56.78

您能解析另一个主机吗?

相关内容