我本质上想从VirtualBox中的来宾访问我的主机。是否为我的主机提供了IP地址,我可以从访客那里使用它?设置此步骤是否需要其他步骤?我想访问主机的Apache,FTP和SSH服务。
我本质上想从VirtualBox中的来宾访问我的主机。是否为我的主机提供了IP地址,我可以从访客那里使用它?设置此步骤是否需要其他步骤?我想访问主机的Apache,FTP和SSH服务。
Answers:
这个答案几乎与VirtualBox中的来宾操作系统设置有关。您只需要使用来宾OS上的网络网关地址从来宾OS连接到主机OS。
在默认的Vagrant设置中,您应该能够通过默认网关访问主机。
在基于Windows的客户机上,您可以通过运行以下命令轻松确定此IP地址:
ipconfig
它应该转储这样的东西:
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.0.2.15
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.2.2
在此示例中,来宾可以访问主机10.0.2.2
。
在基于Unix / Linux的客户机上,使用以下命令:
netstat -rn
它应该转储这样的东西:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
在此示例中,来宾可以访问主机192.168.1.1
。
10.0.2.2
,并且该IP的nmap失败。192.168.33.1似乎是正确的IP。(我曾config.vm.network :hostonly, "192.168.33.52"
在我的配置。)
netstat -rn
在CentOS 7.2上,Docker 1.11显示了一个172.17
地址作为我的网关,但是该IP与我的主机不匹配。事实证明10.0.2.2
确实如此。
从来宾访问主机的Web服务器很容易。使用两种方法可以轻松完成此操作。首先执行以下操作
如果值为NAT,请执行以下操作
设置“虚拟”框时,默认网关通常
10.0.2.2
为默认值。如果您未进行任何更改,则将起作用。但是,如果已更改它,并且正在运行的客户机是Windows,则运行以下命令并找到默认网关
ipconfig /all
如果您使用的是Linux,Unix或Mac OS,请运行以下命令进行获取
netstat -rn | grep 'default' | awk '{print $2}'
转到Web浏览器并键入此默认网关,然后按Enter。可以访问Web服务器。
ipconfig
并获取IP地址ifconfig | grep 'inet'
并获取IP地址执行此操作的另一种方法是使用“主机”类型的虚拟网络。这样就可以在来宾OS中为您提供一个接口,该接口的地址位于与您的主机所在的“外部”子网不同的本地子网中。为了使这项工作有效,您必须确保以下几点:
完成此操作后,您应该能够通过编码到主机文件中的名称从VM中“查看”主机。
例如,在我的Ubuntu 11.04主机上,我在192.168.56.1上获得了一个“ vboxnet0”虚拟接口。机器中的适配器带有类似192.168.56.101的内容。我并不需要去在我的虚拟机,但我猜想会通过对称改变主机的主机文件成为可能。我加
192.168.56.1 mymachine
到来宾OS主机文件,它们可以(例如)在以下位置查看我的主机的Web服务器
http://mymachine/whatever
您当然可以同时设置桥接适配器和仅主机适配器。
您可以在VirtualBox中创建共享文件夹。这将在Virtual Box中自动创建一个“网络共享”,以访问主机OS中的文件夹。
在Windows XP来宾操作系统中,这是一个不错的步骤:
echo "GET /\r\n\r\n" | nc 192.168.100.100 80
从来宾向我的主机发送HTTP GET请求。)