已将条目添加到 hosts 文件 (ubuntu);可以 ping 通;无法 nslookup

已将条目添加到 hosts 文件 (ubuntu);可以 ping 通;无法 nslookup

在 /etc/hosts 中添加条目

 127.0.0.1    testjd.com

可以 ping 通

ping testjd.com

PING test.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.100 ms

但是 nslookup(和 apache2 配置)无法解析新名称...

nslookup testjd.com
;; connection timed out; no servers could be reached

sudo /etc/init.d/apache2 reload
[error] (EAI 2)Name or service not known: Could not resolve host name > -- ignoring!

注意:cat /etc/host.conf

order hosts,bind
multi on

我最终想要实现的是我的 apache2 配置能够解析新的本地名称(注意:我为 testjd.com 配置了一个虚拟主机,但我无法解决上面显示的“解析主机名”问题)

谢谢。

答案1

这是因为该nslookup命令需要与 DNS 配合使用,而您的 DNS 无法找到 testjd.com。您可以改用该host命令,它将与您的 hosts 文件进行交互。

john@awesome:~$ host localhost
localhost 的地址为 127.0.0.1
localhost 有 IPv6 地址 ::1

答案2

要同时使用hosts文件和 DNS 服务器,请使用getent。例如:

getent ahosts <hostname>


笔记:

  • 正如 John T 所回答的,nslookup将使用 DNS 服务器,而/etc/hosts文件不是 DNS 服务器
  • DNS 配置可以在/etc/resolv.conf
  • 名称服务(包括hosts文件)可以在以下位置找到:/etc/nsswitch.conf

相关内容