在Windows XP上覆盖本地主机

在Windows XP上覆盖本地主机,windows,networking,Windows,Networking,我已经安装了Windows XP,我想将localhost从127.0.0.1覆盖到另一个地址。我已经编辑了。/windows/system32/drivers/etc/hosts,但是ping localhost仍然得到127.0.0.1的响应。我该如何更改它呢?这是Windows主机文件中的一段代码: # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1

我已经安装了Windows XP,我想将localhost从127.0.0.1覆盖到另一个地址。我已经编辑了
。/windows/system32/drivers/etc/hosts
,但是
ping localhost
仍然得到127.0.0.1的响应。我该如何更改它呢?

这是Windows主机文件中的一段代码:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

换句话说,本地主机的处理是硬编码到Windows DNS堆栈中的,您试图覆盖的操作将被忽略。

为了解决您的问题,您可以在VM中运行一个小型服务器重定向程序,该程序在传入连接时与同一端口上的主机联系,并在这两个套接字之间提供数据


想象一下像xinetd这样的东西,在端口80上监听并执行
netcat主机80
左右。

稍后回答,以供参考。从VM中访问localhost上的主机非常有用,因此不需要修改配置。 hosts文件的技巧在windows7中有效,但在XP和windows8中都失败了。如果您有要转发的特定端口,可以使用netsh进行转发。以管理员身份运行
cmd
提示符,然后:

对于Windows XP,请先安装ipv6:

netsh int ipv6 install
要添加转发端口,请执行以下操作:

netsh interface portproxy add v4tov4 80 192.168.1.123

端口80上本地主机的所有通信现在都将转发到192.168.1.123。

我肯定您不希望这样。这听起来像是麻烦、问题和痛苦。请解释为什么要这样做。在编辑
hosts
时,请查看注释“localhost name resolution是在DNS本身内处理的”。这说明您不能使用
hosts
来进行此操作。我不相信有一种简单的方法可以重定向
localhost
(并且同意@glglgl的说法,它可能会导致奇怪的行为)。嗯,我在虚拟机中安装了Windows XP。在主机中,我运行一个web服务器。我希望以与从主机相同的方式从vm访问。那么,是什么阻止您使用主机名而不是
localhost
?这是最好的答案!