Ubuntu VirtualBox 虚拟机添加虚拟网卡
一、常见用途与网络模式
- 仅主机网络 Host-Only:在宿主机与虚拟机之间建立私有网络,常用于主机访问虚拟机、虚拟机之间互联;默认不通外网。适合搭建实验网络、SSH 直连等场景。
- 桥接 Bridged:虚拟机直接接入宿主机所在局域网,与真实主机地位等同,便于局域网其他设备访问;可直接上网。
- NAT / NAT 网络:虚拟机借助宿主机上网,默认外部无法访问虚拟机;其中“NAT 网络”可自定义网段与 DHCP,便于多台虚拟机共享上网。
- 推荐组合:上网用 NAT/NAT 网络,主机直连与多机互联用 Host-Only;也可按需组合两块网卡实现“上网 + 主机直连”。
二、在 VirtualBox 中创建虚拟网卡并挂载到虚拟机
- 创建 Host-Only 网卡(宿主机侧虚拟网卡)
- 打开 VirtualBox:管理 → 全局设定 → 网络 → 仅主机网络 → 添加(如 vboxnet0)。可按需设置 IPv4 地址/掩码 与 DHCP(常见示例网段为 192.168.56.0/24)。
- 为虚拟机添加网卡
- 选中虚拟机 → 设置 → 网络:
- 网卡 1:连接方式选 网络地址转换(NAT)(保证可上网)。
- 网卡 2:勾选“启用网络连接”,连接方式选 仅主机(Host-Only) 网络,界面名称选 vboxnet0。
- 提示:不同插槽(网卡 1/2/3/4)可能导致虚拟机内网卡名变化,建议记录 VirtualBox 中该网卡的 MAC 地址,便于在系统内确认对应关系。
- 验证:启动虚拟机后执行
ip a,应能看到新增网卡(如 enp0s8)。
三、在 Ubuntu 内识别并配置新网卡
- 确认网卡名与 MAC
- 查看设备与 MAC:
ip a、cat /sys/class/net/<device>/address;用 VirtualBox 里看到的 MAC 与系统内 MAC 对应,避免配错网卡。
- 临时启用与测试(立即生效,重启后失效)
- 示例(Host-Only 使用 192.168.56.0/24 网段):
sudo ip link set enp0s8 up
sudo ip addr add 192.168.56.10/24 dev enp0s8
- 主机与虚拟机互 ping(主机侧 ping 192.168.56.1,虚拟机 ping 主机/网关)。
- 持久化配置(Ubuntu 18.04 及更早使用 ifupdown)
- 编辑
/etc/network/interfaces:
auto enp0s8
iface enp0s8 inet static
address 192.168.56.10
netmask 255.255.255.0
gateway 192.168.56.1(若此网卡用于上网;若仅 Host-Only 不通外网,可不设或仅作实验用途)
dns-nameservers 8.8.8.8 1.1.1.1
- 使配置生效:
sudo systemctl restart networking 或重启。
- 持久化配置(Ubuntu 18.04+ 使用 Netplan,常见文件名如 /etc/netplan/50-cloud-init.yaml)
- 示例(仅 Host-Only,不覆盖 NAT 的上网路由):
- 在
ethernets: 下新增:
enp0s8:
dhcp4: no
addresses: [192.168.56.10/24]
nameservers: { addresses: [8.8.8.8, 1.1.1.1] }
- 应用:
sudo netplan apply(或 sudo netplan try)。
- 说明
- 若希望该网卡用于上网,需将其设为 默认路由(设置
gateway4);若与 NAT 网卡并存,通常仅让 NAT 网卡充当默认路由,避免冲突。
- 多机互联时,各虚拟机在 同一 Host-Only 网段(如 192.168.56.0/24)即可互通。
四、常见问题与排查
- 主机无法 ping 通虚拟机或反之
- 检查宿主机与虚拟机 防火墙(如
sudo ufw status);在 Windows 防火墙启用“文件和打印机共享(回显请求 - ICMPv4-In)”规则以允许 ping。
- 虚拟机域名无法解析但 IP 可 ping 通
- 检查 DNS 配置(如
/etc/resolv.conf 或 Netplan 的 nameservers)。
- 新增网卡未获取到 IP
- 确认已
ip link set <dev> up,并按上文完成静态或 DHCP 配置;必要时 sudo systemctl restart networking 或 sudo netplan apply。
- 网卡名不一致或不确定对应关系
- 用 MAC 地址 在 VirtualBox 与系统内一一对应,避免把配置写到错误网卡。