CentOS 7 採用 NetworkManager 管理網路,配置檔位於 /etc/sysconfig/network-scripts/ifcfg-<介面名>,介面名稱改為可預測命名規則(如 eno16777736、ens33),不再固定為 eth0。本文提供從介面識別到靜態 IP、DNS、主機名設定的完整標準化流程。

ip link show
# 或
nmcli device status
# 輸出範例:eno16777736, ens33, enp0s3
cd /etc/sysconfig/network-scripts/
vi ifcfg-eno16777736
關鍵參數:
| 參數 | 值範例 | 說明 |
|---|---|---|
TYPE | Ethernet | 介面類型 |
BOOTPROTO | static | 靜態 IP(none 同義) |
ONBOOT | yes | 開機自動啟用 |
IPADDR | 192.168.21.128 | IP 位址 |
PREFIX | 24 | 子網掩碼長度(/24 = 255.255.255.0) |
GATEWAY | 192.168.21.2 | 預設閘道 |
DNS1 | 8.8.8.8 | 主 DNS |
DNS2 | 8.8.4.4 | 備 DNS |
DEFROUTE | yes | 作為預設路由 |
IPV6INIT | no | 暫停 IPv6(視需求) |
存檔離開(:wq!)。
systemctl restart network
# 或
nmcli connection reload
nmcli connection up eno16777736
# 驗證
ip addr show eno16777736
ping -c 3 8.8.8.8
ping -c 3 www.google.com
# 1. 立即生效(當前會話)
hostnamectl set-hostname www
# 2. 驗證寫入檔案
cat /etc/hostname
# 輸出:www
# 3. 同步 /etc/hosts(避免 sudo 解析延遲)
vi /etc/hosts
# 確保有行:
127.0.0.1 localhost www
::1 localhost www
hostname
# 輸出:www
hostname -f
# 輸出:www (若未設定域名則同 hostname)
getent hosts www
# 應解析至 127.0.0.1
# 文字介面 (TUI)
nmtui
# 圖形介面 (GNOME)
nm-connection-editor
| 現象 | 原因與對策 |
|---|---|
修改 ifcfg 後 systemctl restart network 失敗 | 語法錯誤(如缺引號、多空格)→ nmcli connection up <name> 會顯示具體錯誤行 |
| IP 生效但無法上網 | 閘道錯誤、DNS 未生效、防火牆阻擋 → 檢查 ip route、cat /etc/resolv.conf、firewall-cmd --list-all |
主機名修改後 sudo 變慢 | /etc/hosts 缺少主機名對應 127.0.0.1 → 補上 127.0.0.1 localhost 新主機名 |
遵循「識別介面 → 編輯 ifcfg → 重啟網路 → 設定主機名 → 同步 hosts → 驗證」六步驟,CentOS 7 網路配置一次到位。