1 问题描述
在 VirtualBox 中安装好 centos7 后,发现使用 ping 命令测试连接外网 IP 地址,会报错。具体如下:
2 分析
2.1 查看 VirtualBox 设置
打开 VirtualBox 中这台虚拟机的设置,发现默认的连接方式是“网络地址转换(NAT)”。这种方式下,虚拟机可以访问本机,也可以访问外网。这里的设置没问题。
2.2 查看 centos7 网络设置
使用 nmcli 命令,查看当前虚拟机的所有网络基本信息:
nmcli connection show
具体参数说明如下:
参数名称 | 说明 |
---|---|
NAME | 连网代号,通常与 DEVICE 一样 |
UUID | 识别码 |
TYPE | 网卡的类型;802-3-ethernet 就是以太网 |
DEVICE | 网卡名称 |
因为我本机开了无线网络,所以虚拟机也跟着有了无线和有线的以太网。我们继续使用 nmcli 命令,看看 enp0s3 的有线网络配置:
nmcli connection show enp0s3
- 这里的 enp0s3 是 centos7 自动生成的带随机数的网卡名称,每台机都不一样。
很明显,这里的 IP 地址和网关配置的都不正确,原因找到啦。O(∩_∩)O~
3 解决问题
- 设置 centos7 虚拟机的网络获取方式为自动获取 IP(这种方法最方便啦 O(∩_∩)O~)
nmcli connection modify enp0s3 \
connection.autoconnect yes \
ipv4.method auto
- 上面的命令只是修改了设定档,还要使用 nmcli 的 up 参数让它实际生效:
nmcli connection up enp0s3
- 实际测试
报错啦,ping 外网 IP,出现 Destination Host Unreachable 的错误!
一查,发现 virtualBox 的 NAT 方式下,centos7 并不能使用自动获取 IP 的连网方式,看来必须换成桥接模式!
到 virtualBox 中换成桥接模式后,立即就生效,马上再测试下:
成功啦,我们的 centos7 虚拟机终于连上外网啦 O(∩_∩)O~