首页 文章

从VirtualBox虚拟机寻址localhost

提问于
浏览
690

我有一个本地测试/开发服务器(当然是HTTP),监听端口8000 .

我正在使用Linux,所以要在Internet Explorer 6,7,8等上测试页面 . 我使用VirtualBox运行虚拟机;我还需要看看它在Windows环境中的外观如何(例如字体不同) .

在我的真机中,我只是使用URL http://localhost:8000 打开网站,如何从虚拟机中寻址此本地主机?

现在我的解决方法是使用IP地址 . 还有更好的想法?

21 回答

  • 75

    我发现 10.0.2.2:<port> 有效,但只有正确设置了混杂模式 . 安装我的VM后,我转到设置>网络>适配器1 .

    默认设置NAT,并禁用混杂模式下拉列表 . 我从NAT切换到桥接适配器,它启用了混杂模式下拉列表,然后将值从“拒绝”更改为“允许虚拟机” . 然后我切换回NAT,再次禁用混杂模式,但保留了新值 .

    仅在此更改后,我能够启动我的VM并在 10.0.2.2:<port> 上查看我的VM上的主机 localhost:<port> .

  • 22

    谷歌搜索引起了反响:http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

    它建议使用IP: http://10.0.2.2 ,它对我有用 .

    所以,我编辑了hosts文件 C:\windows\system32\drivers\etc\hosts ,并添加了这个条目:

    10.0.2.2   outer
    

    如果您在IE8上进行测试,请记得将 http:// 放在地址栏中 . 只是直接放入IP将无法正常工作 .

    例如:

    http://10.0.2.2:3000/
    
  • 1

    macOS

    我在macOS(以前的OS X)上运行Virtual Box,使用Virtual Box在Windows上测试IE等 .

    转到Virtual Box中的IE并通过 http://10.0.2.2 访问 localhost 获取 localhost ,或 http://10.0.2.2:3000 访问 localhost:3000 .

    我将网络设置保留为NAT,在我的情况下不需要如上所述的桥接 . 无需编辑任何配置文件 .

  • -1

    要在OSX上启用此功能,我必须执行以下操作:

    • 关闭虚拟机 .

    • 转到 VirtualBox Preferences -> Network -> Host-only Networks -> 单击"+"图标 . 单击确定 .

    • 选择您的方框并单击 "Settings" icon -> Network -> Adapter 2 -> 在"Attached to:"下拉列表中,选择"Host-only Adapter",默认情况下,您的网络( vboxnet0 )应显示在下方 . 单击确定 .

    • 再次启动你的盒子后,你应该能够访问 http://10.0.2.2/ 的localhost

    您可以通过 localhost 引用它并通过添加对hosts文件( C:\windows\system32\drivers\etc\hosts )的引用来访问其他本地主机站点,如下所示:

    10.0.2.2    localhost
    10.0.2.2    subdomain.localhost
    
  • 376

    您最有可能将虚拟机的网络设置为NAT . 如果将网络设置为Bridged,则应该能够通过其主机名访问主机 . 例如,如果您的主机名是“jsmith-Precision-7510”并且您想打开http://localhost:3000/,则可以在http://jsmith-Precision-7510:3000/查看该页面 .

    要查找主机名,请打开终端/控制台,然后运行命令 hostname . 您的主机名将在下一行输出 .

    有关如何将网络设置设置为Bridged的说明,请参阅VirtualBox documentation .

  • 0

    如果您将适配器连接到 NAT ,那么现在将端口转发设置为本地端口是更好,更优雅的解决方案 .

    Settings > Network > Adapter > Advanced > Port forwarding

    只需插入新规则并将 Host portGuest port 设置为 80 (对于http)或 22 (对于ssh),依此类推 .

    然后您只需输入 http://localhost 即可访问该计算机

    You may also want to switch NAT to transparent mode.

  • 0

    您需要在Windows虚拟机上编辑主机文件,方法与本地主机相同:

    C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \主机

    并将您的虚拟主机链接到10.0.2.2,如果您只是使用localhost然后替换

    127.0.0.1 localhost with 10.0.2.2 localhost

    例如:

    10.0.2.2 localhost
    10.0.2.2 local.site1.com
    10.0.2.2 local.site2.com
    

    这会告诉您的虚拟机指向您的本地计算机以获取这些域名 .

  • 7

    MacOS

    如果要在Mac上使用Virtualbox设置Windows环境,只需使用适配器上的默认NAT设置,并在Windows VM中,转到hosts文件并添加以下内容:

    10.0.2.2       localhost
    10.0.2.2       127.0.0.1
    

    与上面的答案不同,重要的是包括两条线,否则它将无法工作 .

  • 27

    我不得不进入virtualbox并将我的网络设置更改为'NAT' . 之后,我能够通过虚拟机上的模拟器在我的主机上运行 localhost ,尽管 http://10.0.2.2:3000

  • 15

    您无需更改主机文件或任何Virtual Box配置 . 在NAT中保留设置 . 转到Windows实例并运行"cmd"或打开cmd.exe . 执行命令"ipconfig"并获取 Default Gateway IP地址 . 在Windows IE上浏览http://10.0.2.2:8080您会看到与您的Mac Safari http://localhost:8080/http://127.0.0.1:8080相同

  • 19

    一些事情的组合最终让我的事情发生了变化 . 在macosx上运行烧瓶服务器 .

    在我的Windows VM中,我编辑了hosts文件:

    • 以管理员身份运行记事本

    • 打开 C:\windows\system32\drivers\etc\hosts

    • 添加此项: 10.0.2.2 outer

    在VirtualBox中关闭VM和我的Mac:

    • 转到 VirtualBox > preferences > Network > Host-only Networks > + 添加网络 vboxnet1

    • 转到 My_VM > settings > Network > Adapter 1 .

    • 选择 Enable Network Adapter 并将 Attached to: 设置为 Bridged Adapter .

    • 然后将 Advanced > Promiscuous Mode: 设置为 Allow VMs .

    • 点击 OK

    • 转到 My_VM > settings > Network > Adapter 1 .

    • Attached to: 设置回 NAT .

    然后我去了 Adapter 2

    • Attached to: 设置为 Host-only Adapter 并选择先前添加的网络 vboxnet1 .

    我在我的Mac上启动了我的服务器,在 127.0.0.1:5000 上运行,现在可以在我的虚拟机上访问 http://10.0.2.2:5000

    男人在Mac上的IE上测试什么是噩梦 . 怎么没有更简单的方法?

  • 10

    我通过在网络下的Virtualbox设置中添加端口转发解决了问题 . 主机IP设置127.0.0.1端口:8080访客IP:为网站提供任何IP(比如10.0.2.5)端口:8080现在从访客机器访问http://10.0.2.5:8080使用IE

  • 2

    在虚拟Box中如上所述,您可以添加此行主机文件

    10.0.2.2   outer
    

    但要保存它,如果您的VM中没有管理员,只需将主机文件移动到桌面,然后编辑它以添加10.0 ....行,保存文件,然后移动到其原始位置 .

  • 870

    检查您是否可以使用以下命令查看父机: ipconfig (获取您的IP地址)

    ping <ip>telnet <ip> <port>

    如果无法访问端口,请尝试在父防火墙中添加新的入站规则,以允许本地端口 .

    然后我才能访问 http://<ip>:<port>

  • 2

    在虚拟框中

    • 将您的网络设置为Bridge网络

    • 转到高级设置混杂模式:全部允许

    现在棘手的一点是你的本地主机,如果从Node.js运行,则将IP地址设置为0.0.0.0,然后查找自己的IP地址,例如cmd:ipconfig - > 10.0.1.3

    使用端口号键入该地址 . 它会工作 .

  • 0

    一般步骤:

    • 一个通用网络,(添加仅主机或网桥NIC)

    • 配置首选服务以侦听适当的接口(连接到共享NIC的接口)

    • 使用IP:端口到达目标服务,使用属于共享网络的IP .

  • 4

    在具有虚拟Windows 7的Windows上,唯一对我有用的是使用 NAT and port-forwarding (无法运行桥接连接) . 我在这里找到了一个教程:http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/(向下滚动到“将端口转发到虚拟机”部分) .

    通过这些更改,我可以在我的虚拟机上的Internet Explorer 10中使用“http://192.168.xx.x:8888/mywebsite”访问xampp网站 .

    我在XAMPP控制面板> Netstat(“系统”)中找到了IP .

  • 49

    如果您使用Virtual Box,您可以使用一行代码将Mac OSX(我认为Linux)连接到您的虚拟Windows机器 - >我建议在终端中运行之前先停止该框 .

    VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

    我会注意到这是来自我正在运行的Dinghy文档,但它是一个虚拟框命令,所以它不应该真正关心你使用的只要它的虚拟框

  • 3

    我需要运行localhost,而不是一些奇怪的IP .

    1)在Mac终端上,执行 iconfig -a 查找本地IP地址 . 这可能是最后一个 .

    en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active

    例如10.1.5.60

    2)启动你的Windows镜像 . 开始>键入 cmd 以获取终端

    3) notepad c:\windows\system32\drivers\etc\hosts

    4)添加以下行 10.1.5.60 localhost

    5)打开IE,以下网址应该是你的mac上运行的服务器: http://localhost:3000/

  • -1

    获取运行Apache的机器的IP(inet addr:in ifconfig )并在虚拟框浏览器地址栏中输入 .

  • 19

    实际上,user477494的答案原则上是正确的 .

    我在其他环境(OS X主机 - 虚拟Windows XP)中应用了相同的逻辑,这就是诀窍 . 我确实需要循环主机LAMP堆栈来获取IP地址和Apache端口来解决,但是一旦我想出来,我就笑了 .

相关问题