无法获取主机文件在我的Linux服务器上工作

我有在VirtualBox上运行的Ubuntu 11.10,我已经build立了一个虚拟的命名服务器。
我可以从Windows 7访问这个网站,但我无法从Ubuntu访问该网站。

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

 127.0.0.1 localhost 127.0.1.1 ubuntu-VirtualBox 192.168.0.97 mysite.com 

但是,每当我尝试从服务器访问mysite.com,我都被redirect到一个网站,说这个域名是出售的。

主机文件不能正常工作的原因是什么?

更新

这是我的/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 

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

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

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

    如果在nSwitch中是正确的,我以前就看到一个不可见的字符以某种方式进入我的主机文件,使它看起来完全正常,但看不见的字符使它无法正常工作。
    所以请尝试删除该行,然后重新创build – 手动,不要粘贴。

    接下来你可以尝试通过ping来testing它的function:

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

    如果您在那里看到正确的IP地址,那么它确实可以正确parsing,而您的浏览器是造成问题的原因之一。 不要使用主机,挖或nslookup,他们忽略/ etc / hosts! 使用ping来parsingIP地址,因为大多数应用程序都会看到它。

    运行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”? 如果是后者,则在主机文件中没有类似的条目,并且会失败。 如果你要去“mysite.com”,但你的networking服务器redirect到“www.mysite.com”,那也将失败。

    请注意我的curl输出片段末尾的“200 OK”。 如果你得到了一个301,你的Web服务器configuration就会被redirect到其他地方。

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

    你提到的名字。 如果您期望使用该DNS服务,那需要在您的resolv.conf文件中。

    默认情况下,文件“/ etc / hosts”的文件权限是600.试试这个命令: sudo chmod 644 / etc / hosts