VirtualBox在CentOS如何实现虚拟机间通信
导读:VirtualBox CentOS 虚拟机间通信的实用方案 一、方案总览与选择 使用仅主机网络 Host-Only:在宿主机与所有虚拟机之间建立一个私有二层网络,虚拟机彼此互通,宿主机也可访问;如需上网,再叠加一块 NAT 网卡。适合固定...
VirtualBox CentOS 虚拟机间通信的实用方案
一、方案总览与选择
- 使用仅主机网络 Host-Only:在宿主机与所有虚拟机之间建立一个私有二层网络,虚拟机彼此互通,宿主机也可访问;如需上网,再叠加一块 NAT 网卡。适合固定管理地址、集群内通信与主机访问。
- 使用内部网络 Internal Network:仅虚拟机之间互通,与宿主机、外网完全隔离;适合安全隔离的测试环境。
- 使用桥接 Bridged:虚拟机直接接入宿主机所在物理网络,与局域网其他主机地位等同,彼此通常可互通;但网段随物理网络变化,不利于固定地址管理。
- 使用NAT + 端口转发:单台虚拟机可被主机访问(如 SSH/RDP),但虚拟机之间默认不互通;不适合多机互联需求。
二、方案一 Host-Only 实现互通并可上网(推荐)
- VirtualBox 侧
- 打开:管理 → 全局设定 → 网络 → 仅主机网络,确认存在 VirtualBox Host-Only Ethernet Adapter;如缺失可新建,保持默认 IPv4 地址/掩码(如 192.168.56.1/24),启用 DHCP(便于自动分配)。
- 每台虚拟机:设置 → 网络 → 适配器2 → 启用并选择 仅主机网络;适配器1 可设为 NAT(用于上网)。
- CentOS 侧(以网卡 enp0s8 为例)
- 查看新网卡与 MAC:ip link;nmcli device status
- 使用 nmcli 配置静态地址(示例网段 192.168.56.0/24):
- nmcli con add type ethernet con-name enp0s8 ifname enp0s8 ipv4.addresses 192.168.56.11/24 ipv4.method manual autoconnect yes
- nmcli con up enp0s8
- 如需上网,保持适配器1 为 NAT 即可(无需为 NAT 网卡再配静态路由)。
- 验证
- 在虚拟机间:ping 192.168.56.x;在宿主机:ping 192.168.56.x;虚拟机可同时 ping 外网(如 8.8.8.8)。
- 常见问题
- 仅主机网卡未获取到地址:检查 VirtualBox 的 Host-Only 网络 DHCP 是否启用;必要时在宿主机“网络连接”中禁用/启用 VirtualBox Host-Only Ethernet Adapter 后重试。
- 防火墙阻断:在 CentOS 临时放行(firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.56.0/24” accept’ & & firewall-cmd --reload)。
三、方案二 Internal Network 仅虚拟机互访(隔离环境)
- VirtualBox 侧
- 虚拟机设置 → 网络 → 适配器2 → 选择 Internal Network,名称保持一致(如 intnet);适配器1 可保留 NAT 或桥接用于上网(不影响 Internal 的隔离特性)。
- CentOS 侧
- 为新网卡(如 enp0s8)创建配置文件(/etc/sysconfig/network-scripts/ifcfg-enp0s8),使用静态地址:
- TYPE=Ethernet;BOOTPROTO=static;ONBOOT=yes;NAME=enp0s8;DEVICE=enp0s8
- IPADDR=192.168.0.10;NETMASK=255.255.255.0
- 重启网络:nmcli con reload 或 systemctl restart NetworkManager;必要时 ifup enp0s8。
- 为新网卡(如 enp0s8)创建配置文件(/etc/sysconfig/network-scripts/ifcfg-enp0s8),使用静态地址:
- 验证
- 多台虚拟机在相同 Internal Network 名称 下,配置同网段静态 IP 后互 ping;宿主机与互联网默认不可达(符合隔离预期)。
- 注意
- Linux 的 Internal Network 实现出于安全考虑,通常只允许同一宿主机用户下的虚拟机加入同一内部网络。
四、方案三 桥接 Bridged 实现同网段互通
- VirtualBox 侧
- 虚拟机设置 → 网络 → 适配器1 → 桥接网卡,选择宿主机当前上网的物理网卡(如 Wi‑Fi 或 以太网)。
- CentOS 侧
- 通过 DHCP 获取与宿主机同网段的地址,或配置静态 IP(需与物理网络网段一致,且不冲突)。
- 验证
- 虚拟机与宿主机、以及局域网其他主机通常可直接互通;虚拟机可上网。
- 适用场景与限制
- 适合需要虚拟机“像真实主机一样”出现在物理网络中的场景;但在不同网络环境(如公司/校园网)下,网段与策略可能变化,不利于固定地址与稳定访问。
五、排错与最佳实践
- 基本连通性
- 确认虚拟机已识别新网卡:ip link;必要时 nmcli device connect enp0s8
- 确认链路与地址:nmcli con show;ip addr;ping 网关与对端 IP
- 防火墙与 SELinux
- 临时放行 ICMP/SSH:firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“< 对端子网> ” accept’ & & firewall-cmd --reload
- 测试阶段可 setenforce 0,确认非策略问题后再细化 SELinux 策略
- 多网卡路由与默认网关
- 仅主机/内部网络用于管理通信时,建议仅在该接口上配置地址,不要设置默认网关,避免与 NAT 的上网路由冲突;如需上网,确保默认路由指向 NAT 接口。
- 常见现象与定位
- “能上网但彼此不通”:多为未加入同一二层网络(未共属 Host-Only/Internal),或防火墙阻断
- “仅主机 ping 不通宿主机”:检查宿主机 VirtualBox Host-Only 网卡是否启用、IP 是否在同一网段
- “NAT 下主机无法访问虚拟机”:NAT 默认不允许外部主动入站,需使用端口转发或改用 Host-Only/桥接。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: VirtualBox在CentOS如何实现虚拟机间通信
本文地址: https://pptw.com/jishu/765252.html
