我有一个本地测试/开发服务器(当然是HTTP),正在监听端口8000。
我正在Linux上工作,因此要在Internet Explorer 6、7、8等上测试页面。我使用VirtualBox运行虚拟机;我还需要查看Windows环境中Firefox上的外观(例如,字体是不同的)。
在我的真实计算机上,我仅使用URL打开网站http://localhost:8000
,如何从虚拟机访问该本地主机?
现在,我的解决方法是使用IP地址。还有更好的主意吗?
我有一个本地测试/开发服务器(当然是HTTP),正在监听端口8000。
我正在Linux上工作,因此要在Internet Explorer 6、7、8等上测试页面。我使用VirtualBox运行虚拟机;我还需要查看Windows环境中Firefox上的外观(例如,字体是不同的)。
在我的真实计算机上,我仅使用URL打开网站http://localhost:8000
,如何从虚拟机访问该本地主机?
现在,我的解决方法是使用IP地址。还有更好的主意吗?
Answers:
谷歌搜索发现了这一点: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/
Attached to
设置从Bridged Adapter
切换NAT
为,以适合我的工作。
localhost
不是10.0.2.2
由于某些卑鄙的身份验证想要将本地主机作为地址:(
我在macOS(以前是OS X)上运行Virtual Box,使用Virtual Box在Windows上测试IE等。
在Virtual Box中转到IE,然后localhost
通过http://10.0.2.2
for localhost
或http://10.0.2.2:3000
for 访问localhost:3000
。
我将网络设置保留为NAT,对于我的情况,则不需要上面建议的桥接。无需编辑任何配置文件。
要在OSX上启用此功能,我必须执行以下操作:
VirtualBox Preferences -> Network -> Host-only Networks ->
单击“ +”图标。单击确定。"Settings" icon -> Network -> Adapter 2 ->
“附加到:”下拉列表中的“仅主机适配器”,vboxnet0
默认情况下,您的网络()应显示在下面。单击确定。http://10.0.2.2/
您可以通过以下方式引用它,localhost
并通过将其他引用添加到hosts文件(C:\windows\system32\drivers\etc\hosts
)中来访问其他本地站点,如下所示:
10.0.2.2 localhost
10.0.2.2 subdomain.localhost
IPv4 Address
(例如192.168.56.1
)。然后,一旦启动虚拟机,请打开浏览器并转到http://192.168.56.1:3000
您很可能已将虚拟机的网络设置为NAT。如果将网络设置为“桥接”,则应该能够通过其主机名访问主机。例如,如果您的主机名是“ jsmith-Precision-7510”,并且您想打开http:// localhost:3000 /,则可以在http:// jsmith-Precision-7510:3000 /上查看该页面。
要找到您的主机名,请打开终端/控制台,然后运行命令hostname
。您的主机名将在下一行输出。
有关如何将网络设置设置为“桥接”的说明,请参见VirtualBox文档。
whatever.local
除非安装Bonjour,否则将无法使用。
我必须进入virtualbox并将网络设置更改为“ NAT”。之后,我可以localhost
通过virtualbox上的仿真器通过以下方式在主机上运行http://10.0.2.2:3000
http://10.0.2.2
完全按照@Pytth 的说明访问主机的本地主机。
如果您已经将适配器连接到NAT,那么如今,将端口转发设置为本地端口是一种更好,更优雅的解决方案。
Settings
> Network
> Adapter
> Advanced
>Port forwarding
只需插入新的规则和设置Host port
,并Guest port
以80
(用于HTTP)或22
(对于SSH),依此类推。
然后,您只需输入 http://localhost
我发现该方法10.0.2.2:<port>
有效,但前提是正确设置了混杂模式。安装我的虚拟机后,我转到设置>网络>适配器1。
NAT默认设置,并且混杂模式下拉列表被禁用。我从NAT切换到桥接适配器,该适配器启用了混杂模式下拉菜单,然后将值从“拒绝”更改为“允许VM”。然后,我切换回NAT,这再次禁用了混杂模式,但保留了新值。
只需进行此更改,我就可以启动虚拟机并在上查看虚拟机localhost:<port>
上的主机
10.0.2.2:<port>
。
现在无法将对VM中的localhost的请求重定向到主机的localhost到Windows(https://tools.ietf.org/html/rfc6761#section-6.3),包括VM的可用https: //developer.microsoft.com/zh-CN/microsoft-edge/tools/vms/
为了安全起见,Microsoft现在阻止主机文件条目将localhost的地址覆盖为回送地址:: 1以外的任何地址。因此,添加一行VM的主机文件,例如
10.0.2.2 localhost
将被忽略。
(我知道)有两种方法可以覆盖此方法:
1)使用NETSH代理到主机
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8000 connectaddress=10.0.2.2 connectport=8000
(其中10.0.2.2是VM上的默认网关,而8000是您要解析到主机上的端口。)
2)设置IIS以执行应用程序请求路由,然后将对localhost:port的请求重写为hostIP:port
netsh
是什么帮助了我,我尝试了在网上找到的所有内容,但没有成功。这将允许访问<protocol>://localhost:<port>
,而不是直接通过IP访问。这应该是适用于Windows 10接受的答案
苹果系统
如果要在Mac上使用Virtualbox设置Windows环境,只需使用适配器上的默认NAT设置,然后在Windows VM中,转到hosts文件并添加以下内容:
10.0.2.2 localhost
10.0.2.2 127.0.0.1
与上面的答案不同,同时包含这两行很重要,否则将不起作用。
您需要以与本地主机相同的方式在Windows虚拟机上编辑主机文件:
C:\ WINDOWS \ system32 \ drivers \ etc \ hosts
并将您的虚拟主机链接到10.0.2.2,如果您仅使用localhost,则替换
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
这告诉您的虚拟机指向这些域名的本地计算机。
您无需更改主机文件或任何Virtual Box配置。将设置保留在NAT中。转到Windows实例并运行“ cmd”或打开cmd.exe。执行命令“ ipconfig”并获取默认网关 IP地址。在Windows IE上浏览http://10.0.2.2:8080,您会看到与Mac Safari http:// localhost:8080 /或http://127.0.0.1:8080相同
localhost
。(例如webpack-dev-server)
10.2.2.3 or .4
?我也可以ping通.2
-VM是在Windows Server下运行的Windows Server
几件事的结合最终使事情对我有利。在macosx上运行Flask服务器。
在Windows VM中,我编辑了hosts文件:
C:\windows\system32\drivers\etc\hosts
10.0.2.2 outer
关闭VM,并在VirtualBox中关闭我的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
现在可以在我的vm上访问它了http://10.0.2.2:5000
男人在Mac上的IE上进行测试真是一场噩梦。有没有更简单的方法?
rails s -b 127.0.0.1
并从处的所有VM访问了它,http://10.0.2.2:3000
并且该服务器正常工作。我想知道即使将所有内容都回滚后,设置是否仍会从上方徘徊。
vboxnet1
,但最终还是可以工作。感谢您提供线索!
我通过在网络下的Virtualbox设置中添加端口转发来解决。主机IP设置为127.0.0.1端口:8080访客ip:为网站提供任何IP地址(例如10.0.2.5)端口:8080现在可以从客户端计算机使用IE 访问http://10.0.2.5:8080
在带有虚拟Windows 7的Windows上,唯一对我有用的方法是使用NAT和端口转发(无法运行桥接连接)。我在这里找到了一个教程: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。
我需要在本地主机上运行,而不是一些奇怪的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/
实际上,user477494的回答原则上是正确的。
我已经在其他环境(OS X主机-虚拟Windows XP)中应用了相同的逻辑,并且达到了目的。我确实必须循环使用主机LAMP堆栈来获取IP地址和Apache端口来进行解析,但是一旦我发现了这一点,我就在大笑。