靜態 IP 是服務器上架、集群互通、服務發布的基石。本文以 CentOS 6/7 為例,系統講解網卡配置文件結構、網關/ DNS 設置、驗證方法,並對比 network 與 NetworkManager 兩套管理體系的差異。
| 文件 | 用途 | 適用版本 |
|---|---|---|
/etc/sysconfig/network-scripts/ifcfg-ethX | 單網卡 IP/掩碼/啟動模式 | CentOS 6/7 |
/etc/sysconfig/network | 主機名、網關、IPv6 全局開關 | CentOS 6/7 |
/etc/resolv.conf | DNS 解析器配置 | 全版本 |
/etc/hostname | 持久化主機名 | CentOS 7+ |
ifcfg-eth0)DEVICE="eth0" # 設備名,必須與文件名後綴一致 TYPE="Ethernet" # 接口類型 BOOTPROTO="static" # static|dhcp|bootp HWADDR="08:00:27:F8:E3:10" # MAC 地址(可選,防止網卡名漂移) IPADDR=192.168.1.88 # 靜態 IP NETMASK=255.255.255.0 # 子網掩碼(等同 PREFIX=24) NETWORK=192.168.1.0 # 網絡地址(可選,系統自動推導) BROADCAST=192.168.1.255 # 廣播地址(可選) IPV6INIT="no" # 禁用 IPv6 IPV6_AUTOCONF="no" ONBOOT="yes" # 開機自動啟動 NM_CONTROLLED="no" # 【關鍵】交由 network 服務管理,不受 NetworkManager 干擾
| 參數 | 說明 | CIDR 等價 |
|---|---|---|
NETMASK=255.255.255.0 | 傳統掩碼寫法 | PREFIX=24 |
NETMASK=255.255.255.192 | /26 | PREFIX=26 |
/etc/sysconfig/network)NETWORKING=yes HOSTNAME=web01.example.com # 需與 /etc/hosts 內容一致 GATEWAY=192.168.1.1 # 默認網關 GATEWAYDEV=eth0 # 多網卡時指定出口設備(可選)
/etc/resolv.conf)nameserver 192.168.1.1 # 內網 DNS(通常為網關/AD) nameserver 8.8.8.8 # Google 公共 DNS nameserver 8.8.4.4 # 備用 search example.com # 域名補全後綴(可選) options timeout:2 attempts:1 rotate single-request-reopen # 性能優化參數(可選)
CentOS 7 注意:若啟用 NetworkManager,resolv.conf 由其動態生成,手動修改會被覆蓋。建議靜態 IP 场景下執行 systemctl disable NetworkManager && systemctl stop NetworkManager,改用傳統 network 服務。
# CentOS 6/7 通用 service network restart # 或 CentOS 7 systemctl restart network # 驗證 IP ip addr show eth0 # 或 ifconfig eth0 # 驗證路由 ip route show # 默認路由應指向 GATEWAY # 驗證解析 ping -c 3 www.baidu.com dig @8.8.8.8 www.baidu.com # 驗證連通性 ping -c 3 192.168.1.1
同一物理網卡綁定多個 IP,創建 ifcfg-eth0:0、ifcfg-eth0:1 等別名文件:
# ifcfg-eth0:0 DEVICE="eth0:0" TYPE="Ethernet" BOOTPROTO="static" IPADDR=192.168.1.89 NETMASK=255.255.255.0 ONBOOT="yes" NM_CONTROLLED="no"
eth1,需同步修改文件名與 DEVICE。sudo、hostname -f 卡頓、郵件發送失敗。iptables/firewalld 及雲廠商安全組。# 交互式 TUI(推薦新手) nmtui # 命令行批量配置 nmcli con add type ethernet con-name eth0 ifname eth0 ip4 192.168.1.88/24 gw4 192.168.1.1 nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4" nmcli con up eth0
nmcli 修改即時生效並持久化,適合自動化腳本與 Ansible 劇本。
靜態 IP 配置核心三步:網卡文件定 IP/掩碼 → network 文件定網關 → resolv.conf 定 DNS。生產環境強烈建議關閉 NetworkManager,使用 network 服務或 nmcli 統一管理,避免「雙管齊下」導致配置衝突。