CentOS 上 VirtualBox 多网卡配置指南
一 方案选择
- 推荐组合:NAT + Host-Only。NAT 负责出网,Host-Only 提供与宿主机及同主机上其它虚拟机的稳定内网段,便于设置固定 IP 和 SSH 访问。桥接可直接融入物理网络,但易受物理网络变化影响,且可能占用局域网 IP。若需要虚拟机与物理机同网段互通,可再加一块桥接网卡。NAT 默认网段通常为 10.0.2.0/24,Host-Only 常见为 192.168.56.0/24,桥接则与所桥接网卡所在网段一致。
二 VirtualBox 侧设置
- 全局仅主机网络:打开 VirtualBox → 管理 → 全局设定 → 网络 → 仅主机网络,确认或新增 VirtualBox Host-Only Ethernet Adapter(必要时再新增 #2 用于管理/实验网)。可按需启用/禁用该网络的 DHCP 服务器(若禁用,则需在系统内配置静态 IP)。
- 虚拟机网卡:选中虚拟机 → 设置 → 网络 → 适配器,启用 适配器1= NAT;再启用 适配器2= 仅主机网络(选择上一步的 Host-Only 适配器);如需与物理网络同网段互通,可再启用 适配器3= 桥接(选择宿主机实际上网网卡)。各适配器 MAC 地址不同,便于在系统内对应网卡名称。
三 CentOS 内配置
- 确认网卡名称与 MAC:在虚拟机内执行 ip addr,依据 MAC 地址确认网卡名(如 enp0s3/enp0s8)。若新增网卡未生成配置文件,可用 nmcli 创建设备连接,或复制现有 ifcfg 模板为 ifcfg-enp0s8 并修改 DEVICE/HWADDR/NAME 等字段。
- 配置示例(静态 IP,示例网段可按需替换):
- 仅主机网卡(示例网段 192.168.56.0/24):
- 文件:/etc/sysconfig/network-scripts/ifcfg-enp0s8
- 关键项:BOOTPROTO=static;ONBOOT=yes;IPADDR=192.168.56.10;PREFIX=24;通常不设置 GATEWAY(避免与 NAT 默认路由冲突)。
- NAT 网卡(默认网段 10.0.2.0/24):
- 文件:/etc/sysconfig/network-scripts/ifcfg-enp0s3
- 关键项:BOOTPROTO=static;ONBOOT=yes;IPADDR=10.0.2.15;PREFIX=24;GATEWAY=10.0.2.1;DNS1=8.8.8.8(或宿主机 DNS)。
- 如使用 NetworkManager,可用 nmcli 配置(示例将 enp0s8 设为 192.168.56.10/24):
- nmcli con mod enp0s8 ipv4.addresses 192.168.56.10/24 ipv4.method manual autoconnect yes
- nmcli con up enp0s8
- 应用与验证:
- 重启网络:systemctl restart NetworkManager(或 service network restart,视系统而定)。
- 验证:ip addr;ip route;ping 网关与外网域名;从宿主机 ping 虚拟机仅主机 IP。
四 常见问题与排查
- 默认路由冲突:仅主机网卡不要配置 GATEWAY;默认网关应只来自 NAT 或你指定的桥接网络,避免多默认路由导致外网不通或回程异常。
- 新增网卡无配置文件:nmcli con show 查看连接名;必要时 nmcli con add type ethernet ifname enp0s8 con-name enp0s8 生成连接,再按上节写入 IP;或复制现有 ifcfg 模板并修正 DEVICE/HWADDR/NAME。
- DNS 解析失败:在相应连接或 /etc/resolv.conf 中配置 DNS(如 nameserver 8.8.8.8 或宿主机 DNS),确保 NAT 网卡可解析外网域名。
- 仅主机网段不一致:宿主机上查看 Host-Only 适配器 IP(常见 192.168.56.1),虚拟机仅主机 IP 必须与其同网段(如 192.168.56.x/24)。
- 服务名称差异:部分系统无 network.service,请使用 NetworkManager 管理网络;nmcli 与 ifcfg 文件修改后注意 reload/up。