VirtualBox 中 centos7 下 ping 命令出現 Network is unreachable 問題的解決方法

NO IMAGE

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 解決問題

  1. 設定 centos7 虛擬機器的網路獲取方式為自動獲取 IP(這種方法最方便啦 O(∩_∩)O~)
nmcli connection modify enp0s3 \
connection.autoconnect yes \
ipv4.method auto
  1. 上面的命令只是修改了設定檔,還要使用 nmcli 的 up 引數讓它實際生效:
nmcli connection up enp0s3

  1. 實際測試

報錯啦,ping 外網 IP,出現 Destination Host Unreachable 的錯誤!

一查,發現 virtualBox 的 NAT 方式下,centos7 並不能使用自動獲取 IP 的連網方式,看來必須換成橋接模式!

到 virtualBox 中換成橋接模式後,立即就生效,馬上再測試下:

成功啦,我們的 centos7 虛擬機器終於連上外網啦 O(∩_∩)O~