从虚拟机虚拟机寻址本地主机

我有一个本地testing/开发服务器(当然是http),监听端口8000,

我在Linux上工作,所以testingIE6 / 7/8等页面我运行一个虚拟机使用虚拟框; 我还需要看看它是如何在Windows环境下的Firefox看起来(例如字体是不同的)。

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

现在我的解决方法是使用IP地址。 任何更好的想法?

谷歌search转向了这一点: http : //data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

它build议使用IP: http://10.0.2.2http://10.0.2.2 ,它为我工作。

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

 10.0.2.2 outer 

如果您在IE8上进行testing,请记得在地址栏中inputhttp:// 。 只是直接把IP不起作用。

例如:

 http://10.0.2.2:3000/ 

MACOS

我在macOS(以前的OS X)上运行Virtual Box,使用Virtual Box在Windows上testingIE等。

转到虚拟Box中的IE浏览器,通过localhost http://10.0.2.2访问localhost localhost ,或者localhost:3000 http://10.0.2.2:3000 localhost:3000 http://10.0.2.2:3000 localhost:3000访问localhost localhost:3000

我把networking设置保持为NAT,不需要上面提到的桥接。 没有必要编辑任何configuration文件。

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

  1. closures你的虚拟机。
  2. 进入VirtualBox Preferences -> Network -> Host-only Networks ->点击“+”图标。 点击OK。
  3. select您的方框,然后点击"Settings" icon -> Network -> Adapter 2 ->在“附加到:”下拉菜单中,select“仅适配器”,networking( vboxnet0 )默认显示在下面。 点击OK。
  4. 一旦你重新启动你的盒子,你应该能够访问本地主机在http://10.0.2.2/

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

 10.0.2.2 localhost 10.0.2.2 subdomain.localhost 

您很可能已将您的虚拟机的networking设置为NAT。 如果将networking设置为桥接,则应该能够通过主机名访问主机。 例如,如果您的主机名是“jsmith-Precision-7510”,并且您想要打开http:// localhost:3000 / ,则可以在http:// jsmith-Precision-7510:3000 /中查看该页面。

要find您的主机名,请打开terminal/控制台,然后运行命令hostname 。 你的主机名将被输出在下一行。

有关如何将networkingbuild立设置为Bridged的说明,请参阅VirtualBox文档 。

我发现10.0.2.2:<port>作品,但只有当混杂模式设置正确。 安装我的虚拟机后,我去了设置>networking>适配器1。

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

只有这个改变后,我才能启动我的虚拟机,并在我的虚拟机10.0.2.2:<port>上看到我的主机localhost:<port> 10.0.2.2:<port>

如果你有适配器连接到NAT ,现在是更好和更优雅的解决scheme来设置端口转发到本地端口。

Settings > Network > Adapter > Advanced > Port forwarding

只需插入新的规则,并将Host portGuest port80 (对于http)或22 (对于SSH)​​,依此类推。

然后你可以通过inputhttp://localhost访问那台机器

您可能还想要将NAT切换到透明模式。

您需要像在本地主机上一样编辑Windows虚拟机上的主机文件:

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

并将您的虚拟主机链接到10.0.2.2,如果您只是使用本地主机,然后replace

127.0.0.1本地主机与10.0.2.2本地主机

例如:

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

这告诉您的虚拟机指向您的本地机器的这些域名。

我不得不进入virtualbox,并将我的networking设置更改为“NAT”。 之后,我可以在我的虚拟机上仿真器上运行我的主机上运行的localhost ,虽然http://10.0.2.2:3000

MacOS的

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

 10.0.2.2 localhost 10.0.2.2 127.0.0.1 

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

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

几件事情的结合最终使事情在我的最后工作。 在macosx上运行一个烧瓶服务器。

在我的Windows VM我编辑的主机文件:

  • 以pipe理员身份运行记事本
  • 打开C:\windows\system32\drivers\etc\hosts
  • 添加这个条目: 10.0.2.2 outer

在VirtualBox中closuresVM并在我的Mac上:

  • 转至VirtualBox > preferences > Network > Host-only Networks > +添加networkingvboxnet1
  • 转至My_VM > settings > Network > Adapter 1
  • select“ 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并select以前添加的networkingvboxnet1

我开始我的服务器在我的Mac上,运行在127.0.0.1:5000 ,这是现在可以访问我的虚拟机http://10.0.2.2:5000

男子多么噩梦testingIE上的Mac。 怎么没有一个更简单的方法?

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

 10.0.2.2 outer 

但要保存它,如果你的虚拟机中没有pipe理员权限,只需将主机文件移动到桌面,然后编辑它以添加10.0 ….行,保存文件,并移动到原来的位置。

检查你是否可以用你的父机器: ipconfig (获取你的IP地址)

ping <ip>telnet <ip> <port>

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

然后我可以访问http://<ip>:<port>

在虚拟箱中

  1. 将您的networking设置为网桥
  2. 转到高级设置混杂模式:全部允许

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

用该端口号input该地址。 它会工作。

其实user477494的答案原则上是正确的。 我已经在其他环境中应用了相同的逻辑(osx主机 – 虚拟XP),这是诀窍。 我不得不循环主机LAMP堆栈以获得IP地址和apache端口来解决,但是一旦我明白了这一点,我就笑了。

在使用虚拟Windows 7的Windows上,唯一对我有用的是使用NAT和端口转发 (无法使桥接连接运行)。 我在这里find了一个教程: 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(“系统”)中find了IP。

如果你使用Virtual Box,你可以使用一行代码将Mac OSX(和我认为Linux)连接到你的虚拟Windows机器上 – >我build议在terminal中运行这个程序之前停止这个盒子。

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

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

毕竟,请确保您允许http和https通过要访问的计算机上的防火墙设置。 之后,你可以使用上述的答案。

获取运行Apache的计算机的IP(inet addr:in ifconfig ),并在虚拟框浏览器地址栏中inputIP。