为什么我的浏览器无法通过 /etc/hosts 解析主机名?

为什么我的浏览器无法通过 /etc/hosts 解析主机名?

我在公司内部(防火墙)网络的一台新 Solaris 机器上设置了 Apache2,并将其配置为基于名称的虚拟主机

我们还没有为新机器创建域名,因此我创建了自己的域名“lsiden.net”,并在 httpd.conf <VirtualHost> 指令中将主机命名为“myhost.lsiden.net”。

由于没有注册这样的域名,我在 /etc/hosts 文件中创建了条目“wxyz myhost.lsiden.net”。 (当我们获得真正的域名时,我会将其删除。)

我可以 ping myhost.lsiden.net,但如果我在 IE7 或 Google Chrome 10 中输入它,它就不会解析。是否有东西阻止每个浏览器查看 /etc/hosts 文件?

(为了访问我公司的 VPN,我必须使用他们为我配置的装有 Windows XP 的机器。因此 /etc/hosts 实际上是类似于 c:\Windows\system32\drivers\etc\hosts 的东西,但这并不重要。)

答案1

至于“为什么一个能工作而另一个不能”,要记住的一件事是 ping 使用的协议 (icmp) 与 http (tcp) 不同。你能检查 Windows 主机上的防火墙吗?许多 VPN 都配置为防火墙某些东西。

ping 之后的下一步是旧的网站管理员(我使用这个术语来表明自己已经过时了)工具:telnet。

你能试一下吗:

telnet <machine> <port>

从您的 Windows 框中。

如果连接不上,则表示连接有问题。可能是防火墙或其他原因。

如果确实连接,请尝试输入:

GET / HTTP/1.0
Host: <nameOfVirtualHost>

ReturnReturn

然后它就会显示您的页面。

如果您还没有,我会刷新系统 DNS 缓存:

ipconfig /flushdns

浏览器本身可能会使用 DNS 缓存。我知道 Chrome 会这样做,但找不到清除它的方法。Firefox 有一个刷新 DNS 缓存的插件

答案2

(扩展 M'vy 的评论)

它是客户执行名称解析。

在 Windows 上,可以通过hosts 文件(链接包含所有解决方法)。

快乐...社交。

相关内容