温馨提示×

CentOS下VirtualBox如何实现虚拟机之间的通信

小樊
49
2025-10-04 20:00:34
栏目: 云计算

CentOS下VirtualBox实现虚拟机间通信的方法

在VirtualBox中,虚拟机之间的通信需通过网络模式配置实现,主要支持**Host-Only Adapter(仅主机模式)Internal Network(内部网络模式)**两种方式,以下是具体配置步骤及注意事项:

一、前置准备:确认VirtualBox网络组件

  1. 打开VirtualBox,进入管理→全局设定→网络,检查是否已创建所需的虚拟网络:
    • Host-Only网络:用于主机与虚拟机、虚拟机之间的私有通信(默认会创建一个VirtualBox Host-Only Ethernet Adapter);
    • 内部网络:用于虚拟机之间的隔离通信(需手动创建并命名)。

二、方法1:使用Host-Only Adapter(推荐,兼顾主机与虚拟机通信)

适用场景:需要虚拟机之间互相通信,同时主机也能访问虚拟机(如共享文件夹、远程管理)。

1. 配置VirtualBox全局Host-Only网络
  • 进入管理→全局设定→网络,点击“Host-Only网络”标签;
  • 点击“添加”(+)创建新的Host-Only网络(如vboxnet0),确保“启用DHCP服务器”(可选,方便虚拟机自动获取IP);
  • 记录该网络的IP段(如192.168.56.0/24),后续虚拟机IP需在此范围内。
2. 配置虚拟机网络适配器
  • 选中目标虚拟机,点击“设置→网络”;
  • 选择“网卡1”,将“连接方式”改为Host-Only Adapter,并在“名称”下拉菜单中选择刚创建的Host-Only网络(如vboxnet0);
  • (可选)添加“网卡2”并设置为NAT模式(用于虚拟机访问外网,不影响Host-Only通信)。
3. 配置虚拟机内部网络(CentOS系统)
  • 登录虚拟机,编辑网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-enp0s3,对应“网卡1”):
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static       # 静态IP(推荐)或dhcp(自动获取)
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s3
    UUID=<虚拟机网卡UUID>  # 可通过`ip addr`命令查看
    DEVICE=enp0s3
    ONBOOT=yes             # 开机自启
    IPADDR=192.168.56.10   # 静态IP(需与Host-Only网络同网段,且不冲突)
    NETMASK=255.255.255.0  # 子网掩码(与Host-Only网络一致)
    GATEWAY=192.168.56.1   # 网关(通常为Host-Only网络的虚拟网卡IP)
    DNS1=8.8.8.8           # DNS服务器(可选)
    
  • 若使用DHCP,将BOOTPROTO改为dhcp,无需手动设置IP;
  • 保存文件后,重启网络服务:
    systemctl restart network
    # 或(CentOS 8及以上)
    systemctl restart NetworkManager
    
  • 验证网络连通性:
    ping 192.168.56.1      # 测试网关(Host-Only虚拟网卡)
    ping <另一台虚拟机的IP> # 测试虚拟机间通信
    ping 192.168.1.117     # 测试主机通信(若配置了NAT网卡)
    

三、方法2:使用Internal Network(纯虚拟机间通信)

适用场景:仅需虚拟机之间通信,不涉及主机或外部网络(如虚拟机集群测试)。

1. 配置虚拟机网络适配器
  • 选中目标虚拟机,点击“设置→网络”;
  • 选择“网卡1”,将“连接方式”改为Internal Network
  • 在“名称”输入框中填写自定义网络名称(如intnet1,需与后续其他虚拟机的名称一致)。
2. 配置虚拟机内部网络(CentOS系统)
  • 登录虚拟机,编辑网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-enp0s3):
    TYPE=Ethernet
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.100.10  # 静态IP(需与Internal Network名称对应的网段一致)
    NETMASK=255.255.255.0
    # 无需设置GATEWAY和DNS(Internal Network不与外部通信)
    
  • 重启网络服务:
    systemctl restart network
    
  • 验证虚拟机间通信:
    登录另一台配置了相同Internal Network名称的虚拟机,执行ping <本机IP>,若通则表示配置成功。

四、常见问题排查

  1. 无法ping通
    • 检查虚拟机网络适配器模式是否一致(如均为Host-Only或Internal);
    • 确认IP地址在同一网段(如192.168.56.x)且不冲突;
    • 关闭虚拟机防火墙(测试时):systemctl stop firewalld(CentOS 7)或systemctl disable firewalld(永久关闭)。
  2. Host-Only网络未创建
    进入VirtualBox“管理→全局设定→网络”,点击“添加”创建新的Host-Only网络。

通过上述配置,可实现CentOS虚拟机在VirtualBox中的通信需求。根据场景选择合适的网络模式:若需兼顾主机访问,选Host-Only Adapter;若仅需虚拟机间通信,选Internal Network

0