這裡介紹 CentOS Linux 7 的網路設定檔的配置方法,讓新灌好的系統可以上網。

使用最小安裝(minimal install)來安裝 CentOS Linux 7 作業系統時,若在安裝時沒有設定網路,則裝好之後就必須手動設定網路才能上網,以下是設定的方法。


進入 /etc/sysconfig/network-scripts/ 這個放置網路設定檔的目錄,並查看一下該目錄的檔案:

cd /etc/sysconfig/network-scripts/
ls
ifcfg-enp0s3  ifdown-ppp       ifup-eth     ifup-sit
ifcfg-lo      ifdown-routes    ifup-ippp    ifup-Team
ifdown        ifdown-sit       ifup-ipv6    ifup-TeamPort
ifdown-bnep   ifdown-Team      ifup-isdn    ifup-tunnel
ifdown-eth    ifdown-TeamPort  ifup-plip    ifup-wireless
ifdown-ippp   ifdown-tunnel    ifup-plusb   init.ipv6-global
ifdown-ipv6   ifup             ifup-post    network-functions
ifdown-isdn   ifup-aliases     ifup-ppp     network-functions-ipv6
ifdown-post   ifup-bnep        ifup-routes

在 CentOS Linux 中,網路卡設定檔的命名規則為 ifcfg-網路卡名稱,以這個例子來說,enp0s3 這張網路卡的設定檔就是 ifcfg-enp0s3,使用文字編輯器編輯這個檔案,預設的設定應該是自動使用 DHCP 取得 IP 位址,內容大約會像這樣:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=fc289d60-31ad-4d3c-a668-14d7445efa41
DEVICE=enp0s3
ONBOOT=no

若要改為靜態 IP 位址,可以將設定檔修改成這樣:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=fc289d60-31ad-4d3c-a668-14d7445efa41
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.10
GATEWAY=102.168.56.1
NETWORK=192.168.56.0
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=9.9.9.9

以下是一些重要的欄位解釋:

  • BOOTPROTO:IP 取得方式,static 代表靜態 IP 位址,dhcp 代表動態取得 IP 位址。
  • ONBOOT:設定為 yes 代表開機自動啟動此網路介面。
  • IPADDR:IP 位址。
  • GATEWAY:預設閘道。
  • NETWORK:網路的位址。
  • NETMASK:網路遮罩。
  • DNS1:第一台 DNS 伺服器。
  • DNS2:第二台 DNS 伺服器。

編輯好 ifcfg-enp0s3 設定檔之後,可以使用 ifupifdown 指令來啟動與停用網路介面:

# 啟動網路介面
ifup enp0s3

# 停用網路介面
ifdown enp0s3

ifupifdown 所接的參數就是網路卡設定檔 ifcfg- 之後的名稱。

啟用網路卡之後,若想要查看網路卡的狀況,通常我們會使用 ifconfig 這個指令,而 CentOS 的最小安裝中並沒有包含這個指令,所以執行時會出現這樣的錯誤訊息:

ifconfig: command not found

若要使用,請先安裝 net-tools 這個套件:

sudo yum install net-tools

這樣就可以使用 ifconfig 指令了。