首先在虚拟机添加仅主机网络和nat网络这两张网卡
VBoxManage hostonlyif create
VBoxManage natnetwork add --netname NatNetwork --network "192.168.60.0/24" --enable
在VirtualBox7.1里面是修改不了仅主机网络的ip的
所以我们修改ubuntu的网络配置文件
首先查看仅主机网络的网卡信息(要启动虚拟机):
netplan status
(base) mieya@mieya-desktop:/etc/netplan$ netplan status
● 6: vboxnet0 ethernet UP (unmanaged)
MAC Address: 0a:00:27:00:00:00
Addresses: 192.168.56.1/24
fd48:2d7:e728:0:c01e:ef70:9ab7:b9fb/64
fd48:2d7:e728:0:800:27ff:fe00:0/64
fe80::800:27ff:fe00:0/64 (link)
Routes: 192.168.56.0/24 from 192.168.56.1 (link)
fd48:2d7:e728::/64 metric 256
fe80::/64 metric 256
vboxnet0就是我们的仅主机网络的网卡
创建网络配置文件(复制一份)
cd /etc/netplan
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/10-static-config.yaml
sudo vim /etc/netplan/10-static-config.yaml
修改写入(可以直接复制):
network:
version: 2
renderer: NetworkManager
ethernets:
vboxnet0:
dhcp4: false
optional: true # 启用非阻塞模式
addresses:
- 192.168.1.240/24
- 192.168.66.240/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
- 192.168.10.1 # 与宿主机一致
保存文件并应用新的网络配置:
检查
sudo netplan generate
一般缩进要注意,就像我碰到的:
(base) mieya@mieya-desktop:/etc/netplan$ sudo netplan generate
** (generate:16504): WARNING **: 16:07:44.837: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.
** (generate:16504): WARNING **: 16:07:44.837: Permissions for /etc/netplan/10-static-config.yaml are too open. Netplan configuration should NOT be accessible by others.
/etc/netplan/10-static-config.yaml:14:11: Error in network definition: malformed address '192.168.10.1~', must be X.X.X.X or X:X:X:X:X:X:X:X
- 192.168.10.1~
^
然后第二个是权限问题,要修改为600权限仅root可以读写
这样做:
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
sudo chmod 600 /etc/netplan/10-static-config.yaml
再次检查
sudo netplan generate
如果没问题就不会返回信息,然后应用:
sudo netplan apply
就像这样:
(base) mieya@mieya-desktop:/etc/netplan$ sudo netplan generate
(base) mieya@mieya-desktop:/etc/netplan$ sudo netplan apply
这时候就可以检查ip
ip addr show vboxnet0
nmcli connection show vboxnet0
如果nmcli connection show vboxnet0出错:
Error: vboxnet0 - no such connection profile.
说明NetworkManager 没有管理这个接口
添加一个接口:
sudo nmcli connection add type ethernet ifname vboxnet0 con-name vboxnet0 \
ipv4.addresses "192.168.1.240/24,192.168.66.240/24" \
ipv4.gateway 192.168.1.1 \
ipv4.dns "192.168.10.1 8.8.8.8 8.8.4.4" \
ipv4.method manual \
autoconnect yes
# 启用并激活连接
sudo nmcli connection up vboxnet0
这样就可以了,可以再次检查:
nmcli connection show vboxnet0
就可以看到很长一段的网络信息,说明已经添加进NetworkManager了
这时候主机网络和nat就已经配置完成了
我查了一下在配置文件看不见第二个ip的信息的,说是存储在NetworkManager内部数据库,所以/etc/netplan/10-static-config.yaml文件里面是没有第二个ip的信息的,对了,设置仅root读写后用vim查看的时候需要加上sudo
在配置vbox的时候遇到的问题:
设置完上面后发现无法ping
查了不少资料后还是没法ping
后来把vbox的网络模式nat的混杂模式改为“允许虚拟电脑”,然后就可以的哈哈哈
在我使用的过程中,我发现每次开启有这个网卡的虚拟机都需要重新激活vboxnet0这张网卡自定义的主机网络才能生效,目前还没有找到别的好办法,我也是开启虚拟机手动激活网卡的,就这条命令,放在这里吧:
sudo nmcli connection up vboxnet0