![virtualbox - 如何让“localhost”指向主机的“localhost”?](https://linux22.com/image/1167374/virtualbox%20-%20%E5%A6%82%E4%BD%95%E8%AE%A9%E2%80%9Clocalhost%E2%80%9D%E6%8C%87%E5%90%91%E4%B8%BB%E6%9C%BA%E7%9A%84%E2%80%9Clocalhost%E2%80%9D%EF%BC%9F.png)
我知道我可以使用 访问主机的本地主机10.0.2.2
。但是,我需要的是能够在 VirtualBox Edge 浏览器中输入“localhost”,并使其指向我的计算机的本地主机。
我已经尝试对文件进行了一些操作host
,但尚未成功。是否可以实现我想要的功能?
干杯!
答案1
您无法改变其localhost
单独含义,但问题实际上并不在于重新映射本地主机,而在于获取 http://localhost:80 来加载主机操作系统的端口 80。这当然是可能的!
在以下示例中,主机的 LAN IP 为 10.0.2.2 – 如果您的 IP 不同,请更改此值:
如果客人视窗您可以使用 netsh portproxy。以管理员身份运行 cmd.exe,然后输入
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1 connectaddress=10.0.2.2 connectport=80
现在如果您浏览,http://localhost
它会将请求传递到主机上的端口 80。
如果 netsh 对你不起作用/你的客户不是 Windows,但你有远程控制客户机和主机之间的访问,您可以从客户机运行此命令:ssh -L 80:localhost:80 10.0.2.2
现在,如果您从客户机浏览,http://localhost
它会将请求传递到主机上的端口 80。
答案2
总结
不行!抱歉!无法完成!
长版本:
按照RFC1122,第 3.2.1.3 节本地主机定义为:
(g)
{ 127, <any> }
内部主机环回地址。这种形式的地址不得出现在主机外部。
因此,localhost
即使在文件级别也无法重新映射,/etc/host
因为驱动程序会绕过host
该特定项目的文件。
综上所述,这是免费软件,因此你可以使用内核的源代码但即使你成为内核开发人员并开始创建自定义内核那可以让你做到这一点,你会在各处遇到大量的例程,它们会假设localhost
=127.0.0.1
硬编码所以那只是极其困难(= 多年的工作)但是当您谈论 Edge 浏览器时,您还必须让微软站在您这边......好吧......
这是不会发生的!:-(
抱歉,想法不错,但不可行......