解决了:我通过将 vbox 网络设置重新配置为 192.168.21.19(在 VirtualBox -> 首选项 -> 网络)并注释掉指定网关的行来实现此目的,因为不需要网关(主机唯一接口上没有外部访问),如下所示这个帖子。
然后我可以通过 SSH192.168.21.20
从 OSX 连接到 Ubuntu。我更改了/etc/fstab
挂载点以指向//192.168.21.19/
我有一个配置了两个接口的 Ubuntu 客户机,eth0
正在使用 NAT 并且运行良好,我可以访问网络。
第二个接口eth1
设置为仅主机网络,并且 VirtualBoxvboxnet0
在主机上创建了一个虚拟适配器。
我vboxnet0
在 VirtualBox 适配器设置中配置了以下内容:
ip 192.168.21.20
subnet 255.255.255.0
一旦 VM 客户机运行,ifconfig
在 OSX 上vboxnet0
设置如下:
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.21.20 netmask 0xffffff00 broadcast 192.168.21.255
在客户机中,eth0
设置为使用 DHCP,我已静态分配eth1
给 192.168.21.20(这是一个错误,主机和客户机之间的 IP 冲突):
auto eth1
iface eth1 inet static
address 192.168.21.20 (should be .19)
netmask 255.255.255.0
network 192.168.21.0
broadcast 192.168.21.255
gateway 192.168.21.1
192.168.21.1 上没有设备 - 我应该将网关设置为多少?(事实证明不需要网关,因为它是仅用于主机的接口)。网络访问由 NAT 适配器提供。
在客人那里路线看起来是这样的:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.21.0 * 255.255.255.0 U 0 0 0 eth1
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
default 10.0.2.2 0.0.0.0 UG 100 0 0 eth0
default 192.168.21.1 0.0.0.0 UG 100 0 0 eth1
OSX 上的路由表:
$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.77.36.1 UGSc 28 0 en1
10.77.36/22 link#5 UCS 5 0 en1
10.77.39.38 127.0.0.1 UHS 1 2236 lo0
10.77.39.255 link#5 UHLWbI 1 66 en1
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 8642 lo0
169.254 link#5 UCS 0 0 en1
192.168.21 link#7 UC 2 0 vboxnet
192.168.21.20 a:0:27:0:0:0 UHLWI 0 4 lo0
192.168.21.255 link#7 UHLWbI 2 64 vboxnet
我无法从主机通过 SSH 连接到客户机(以前当虚拟机配置了桥接连接时我可以做到):
$ ssh 192.168.21.20
ssh: connect to host 192.168.21.20 port 22: Connection refused
我做错什么了?TIA
答案1
我重新配置了vboxnet0
主机上的虚拟适配器 IP,使其192.168.21.19
与客户机的配置不同.20
- 这样它们就不会发生冲突。请参阅帖子中的更新,了解有关解决方案的更多详细信息。