我有 2 个虚拟机(A
和B
)在本地(主机上H
)使用 VirtualBox 运行,我希望能够:
A
通过B
内部 IP进行pingB
通过A
内部 IP进行ping- 从 ping 8.8.8.8
A
- 从 ping 8.8.8.8
B
- 访问
A:22
自H
- 访问
B:22
自H
A
我目前正在使用和上的 NAT 网络设置B
,因此除了第 1 和第 2 项之外,我能够满足上述所有要求。
我尝试将其更改为内部网络,但仅满足 1 和 2。
我也使用了桥接网络,它解决了所有这些问题,但问题是,A
现在B
使用 192.168.0.X 类型的地址在本地 LAN 中“暴露”,这不满足 1 和 2 的“内部 IP”要求。
为了实现这一点,我应该在这两台虚拟机上进行什么网络配置?
答案1
我通过在每个虚拟机上添加 2 个适配器解决了这个问题。一个用于NAT
,一个用于Host-only Adapter Network
。
在I 配置了从到等的NAT
端口转发。当虚拟机启动时,我必须配置它们的内部静态 IP。这些虚拟机是 ubuntu,所以我必须编辑并添加:2201
22
/etc/network/interfaces
auto eth1
iface eth1 inet static
address 10.0.0.101
netmask 255.255.255.0
在另一台虚拟机上:
auto eth1
iface eth1 inet static
address 10.0.0.102
netmask 255.255.255.0
在shutdown -r now
或 之后ifup eth1
,两个虚拟机可以通过其内部 IP10.0.0.101
和相互 ping 通10.0.0.102
。
答案2
- 在 Virtual Box 中添加(创建)NAT 网络
- 将两台虚拟机分别连接到该 NAT 网络
- 确保每个虚拟机都有唯一的 MAC 地址
- 如果您有静态分配的 IP 地址,请确保每个虚拟机在 10.0.2.0/24 IP 范围内都有不同的 IP 地址
- 如果您想通过主机名从 VM A ping VM B,请将 VM B 的主机名和匹配的 IP 添加到 VM a 上的 hosts 文件中(反之亦然)
答案3
将网络适配器更改为NAT
(每个虚拟机一个网卡就足够了)。这样它们将只暴露给主机,而不是主机正在运行的网络,并且您将能够为您提到的所有 6 点添加复选标记。
如果稍后您必须从主机所连接的网络授予这些虚拟机的访问权限,则可以使用转发规则来执行此操作。