我正在测试一个新服务器并且一直在使用 /etc/hosts。
我已经能够让它在 domain.com 上运行,但如果我尝试 www.domain.com,它会指向当前委派的实际域的位置,而不是测试服务器。
IE
xxx.xx.xx.xx domain.com
如果我加载 domain.com,我会得到我输入的 IP 地址。这样,我输入 www.domain.com 就可以得到域名当前的托管位置。
如果我尝试:
xxx.xx.xx.xx www.domain.com
我最终还是选择了域名当前托管的位置,而不是测试服务器。
我在这里遗漏了什么?
答案1
xxx.xx.xx.xx www.domain.com 应该可以正常工作,前提是您已将解析器配置为首先使用 hosts 文件。(接下来尝试 DNS 并将 host 文件作为备份也是允许的,并且在某些发行版中可能是默认设置)。
我检查了 FreeBSD 和 Fedora,它们都有如下默认行:
>cat /etc/host.conf # 从 nsswitch.conf 自动生成 主办方 域名系统
Fedora
订购主机,绑定
编辑:我刚刚看到你的评论说你使用 OS X。这使得这个帖子相关的
答案2
您对 /etc/hosts 文件的设置很好。
查看文件 /etc/nsswitch.conf,检查以“host: ”开头的行的第一个参数是否为“files”。如果不是,则说明 /etc/hosts 文件和 DNS 递归(dns 参数)之间存在优先级问题。