在 /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