![本地计算机与远程服务器上运行的虚拟机之间的路由](https://linux22.com/image/653090/%E6%9C%AC%E5%9C%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8E%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%9A%84%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B7%AF%E7%94%B1.png)
我正在尝试在本地计算机 (LM) 和在远程服务器 (RS) 上运行的 VirtualBox VM (VM,使用 Vagrant 创建并配置) 之间建立路由Host-only Networking
。设置如下:
LM (OS: Windows 7, IP: 192.168.2.8)
VM (OS: Ubuntu server 14., IP: 192.168.50.4)
RS (OS: Ubuntu server 14., eth0: 192.168.2.204, vboxnet0: 192.168.50.1)
我尝试将以下路由添加到我的本地机器:
route add 192.168.50.0 mask 255.255.255.0 192.168.2.204
但我只能 ping 远程服务器的第二个接口(即 192.168.50.1),无法访问虚拟机。我该如何解决这个问题?
答案1
通常,VirtualBox 中的虚拟机会添加 NAT,因此虚拟机接口不会直接暴露在网络上。要暴露它,请打开“设置”->“网络”,并将“附加到:”从 NAT 更改为“桥接适配器”。然后,您可以决定是否要在虚拟机内使用 DHCP 或静态寻址。
仅主机网络仅提供对主机和同一台机器上的其他虚拟机的访问,并且在不需要主机的物理网络接口时使用。
要使用 Vagrantfile 设置桥接适配器:
DHCP
Vagrant.configure("2") do |config|
config.vm.network "public_network"
end
静态IP
Vagrant.configure("2") do |config|
config.vm.network "public_network", ip: "192.168.2.205"
end