无法在我的 Linux 服务器上运行 hosts 文件

无法在我的 Linux 服务器上运行 hosts 文件

我在 VirtualBox 上运行 Ubuntu 11.10,并设置了一个虚拟命名服务器。
我可以从 Windows 7 访问此网站,但无法从 Ubuntu 访问该网站。

我的 HOSTS 文件位于/etc/文件夹中,如下所示:

127.0.0.1       localhost
127.0.1.1       ubuntu-VirtualBox
192.168.0.97     mysite.com

但每当我尝试从服务器访问 mysite.com 时,我都会被重定向到一个网站,提示该域名正在出售。

hosts 文件不起作用可能是什么原因造成的?

更新

这是我的/etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

答案1

首先,检查 nsswitch.conf 是否正确:

$ grep hosts /etc/nsswitch.conf
hosts:          files dns

确保它说的是“文件 dns”,否则它在询问 DNS 之前不会查看你的主机文件。

如果在 nsswitch 中正确,我之前曾看到过一个不可见的字符以某种方式进入了我的 hosts 文件,导致它看起来完全正常,但这个不可见的字符使它无法工作。
因此,请尝试删除该行,然后重新创建它 - 手动创建,不要粘贴。

接下来你可以尝试通过 ping 来测试它查找的内容:

$ ping mysite.com
PING mysite.com (192.168.0.97) 56(84) bytes of data.

如果您在那里看到正确的 IP 地址,则它确实解析正确,并且您的浏览器是导致问题的原因。不要使用 host、dig 或 nslookup,它们会忽略 /etc/hosts!使用 ping 解析 IP 地址,因为大多数应用程序都会看到它。

答案2

跑步curl -Iv http://mysite.com

你应该得到类似的结果(加上更多行):

* About to connect() to mysite.com port 80
*   Trying 192.168.0.97... connected
* Connected to mysite.com (192.168.0.97) port 80
> HEAD / HTTP/1.1
> User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: mysite.com
> Accept: */*
>
< HTTP/1.1 200 OK

实际上,这里有一个想法:您访问的是“mysite.com”还是“www.mysite.com”?如果是后者,则您的 hosts 文件中没有这样的条目,因此会失败。如果您要访问“mysite.com”,但您的 Web 服务器将其重定向到“www.mysite.com”,那么也会失败。

请注意我的 curl 输出片段末尾的“200 OK”。如果您收到 301,则表示您的 Web 服务器配置会将您重定向到其他地方。

答案3

在将条目添加到 /etc/hosts 后,我必须注销并重新登录

答案4

默认情况下,文件“/etc/hosts”的文件权限为 600。尝试以下命令: sudo chmod 644 /etc/hosts

相关内容