1.给virtualbox里的虚拟机配置网卡
网卡1:网络地址转换(NAT) 。实现了上网
网卡2:桥接网卡,混杂模式:全部允许。
实现了局域网内的主机ping通。如果设置的是仅主机(Host-Only)网络 混杂模式设为:全部允许
,那么只能主机才能ping通虚拟机,局域网内其他电脑不行。
注意:界面名称要选择当前电脑所使用网络连接下方的名称。比如我之前用的wifi连接,选择了Intel(R) Wireless-AC 9462
,然后将电脑用网线连接时,没有换成Realtek PCIe GbE Family Controller
,导致了虚拟机无法上网,且无法ssh连接。
2.进入虚拟机后配置网络
前面在virtualbox里加了网卡,进入虚拟机后,发现linux系统的 /etc/sysconfig/network-script/
里没有网卡2enp0s8
的配置文件,虽然此时用ip a
命令能看到新的网卡enp0s8
,但是实际上并不算成功,需要执行命令nmcli connection add type ethernet con-name enp0s8
来生成配置文件。
centos9之前的版本:
在 /etc/sysconfig/network-script/
里编辑ifcfg-enp0s8
:
#修改
BOOTPROTO=static
#添加
IPADDR=192.168.1.2 #静态IP 网段和VirtualBox Host-Only Network的网段一样
NETMASK=255.255.255.0 #子网掩码
centos9版本:
在/etc/NetworkManager/system-connections/
里编辑enp0s8.nmconnection
:
在[ipv4]下
method=manual #初始是auto,自动获取,改成手动指定
address=192.168.1.2
3.重启网络
执行service NetworkManager restart
(安装了NetworkManager就不要用network那个命令了,用不起,centos9默认就有NetworkManager )
然后用ip a
命令看ip,如果发现没变,只好重启虚拟机,重启后改变。
然后在局域网的另一台电脑也能ping到虚拟机了,同时虚拟机也能上网了。
4.主机网络虚拟界面(额外的)
在virtualbox管理器的工具一栏里,可以添加主机网络虚拟界面,前面网卡2那里提到过的连接方式仅主机(Host-Only)网络
就需要选择这里创建的这个虚拟界面。创建了虚拟界面后在网络连接里就能看到创建的这个网络连接。
注意:Host-only
的意思是仅主机,所以不要试图用局域网里的其他电脑ping通这个ip,只能用本机ping通。
5.关于网卡连接方式:NAT网络(额外的)
上面的网卡1使用的连接方式是 网络地址转换(NAT),这种方式大家都用一个地址,然后配置端口转发,哪个端口就转到哪里。
输入命令 ip route show
,可以看到默认网卡为enp0s3
。
此时3个不同的虚拟机中网卡1的连接方式都是 网络地址转换(NAT),查看他们的默认网卡ip都相同且为10.0.2.15
此时肯定不能用默认网卡的ip在不同的虚拟机间相互ping通,前面文中是使用的网卡2 桥接网卡 互相ping通,且能够在与局域网内其他电脑ping通。
如果想要虚拟机间的默认网卡ip能够相互ping通,需要网卡1的连接方式使用 NAT网络
创建NAT网络网卡
要想使用NAT网络,需要先创建NAT网络网卡
虚拟机网卡1连接方式选择 NAT网络
给所有虚拟机都设置后,再去看不同虚拟机的默认网卡ip,已经不同了。且能够相互的ping通(在网卡2为仅主机网络的情况下能ping通,没有网卡2的情况没测试)。