——掌控传统与现代 Linux 网络配置的桥梁之钥!
一、前言:为什么 ifcfg-*
文件依然重要?
尽管现代 Linux 以 nmcli
和 nmtui
为主,但 ifcfg-*
文件作为底层配置文件,仍然在以下场景中发挥作用:
初始部署中脚本静默配置网卡
和 Anaconda 安装器配合预设网络
与 kickstart 文件结合实现无人值守安装
麒麟V10/UOS中,某些运维软件仍依赖该格式进行网络检测
精通 ifcfg-*
,是国产服务器环境中“人手必备”的技能。
二、ifcfg-*
文件的存放路径和命名规则
路径:
/etc/sysconfig/network-scripts/
命名方式:
单网卡:
ifcfg-eth0
Bond 接口:
ifcfg-bond0
VLAN 接口:
ifcfg-eth0.100
Bridge 接口:
ifcfg-br0
ℹ️ 注意:银河麒麟 V10 SP3 中默认同时支持 ifcfg 和 NetworkManager
.nmconnection
文件,但推荐只保留一种方式配置网络。
三、语法字段大全
以下为 ifcfg 文件中支持的字段及其含义,已按照用途分类整理:
基础标识字段
静态 IP 配置
高级配置
Bond/VLAN 示例字段
Bond 主接口:
DEVICE=bond0
NAME=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=none
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
从属网卡(Slave):
DEVICE=eth1
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
ONBOOT=yes
VLAN 接口:
DEVICE=eth0.100
VLAN=yes
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.10
PREFIX=24
四、如何生成唯一的 UUID?
每个 ifcfg-*
配置文件推荐包含 UUID
字段以避免 NetworkManager 冲突。
自动生成方法一:使用 nmcli
命令
nmcli connection add type ethernet ifname eth0 con-name my-eth0
nmcli connection show my-eth0 | grep UUID
然后将该 UUID 填入 ifcfg-eth0
文件中。
自动生成方法二:使用 uuidgen
命令
uuidgen
示例输出:
a13f89b1-7fcd-42ea-bae5-bcbe1e2f2124
然后手动写入:
UUID=a13f89b1-7fcd-42ea-bae5-bcbe1e2f2124
推荐方式:使用
uuidgen
配合脚本统一分配,适合 DevOps 场景。
五、实战案例:银河麒麟 V10 SP3 初始网络脚本
#!/bin/bash
NIC=eth0
IP=192.168.10.100
GW=192.168.10.1
MASK=24
UUID=$(uuidgen)
cat > /etc/sysconfig/network-scripts/ifcfg-$NIC <<EOF
DEVICE=$NIC
NAME=$NIC
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=$IP
PREFIX=$MASK
GATEWAY=$GW
DNS1=114.114.114.114
UUID=$UUID
EOF
# 激活网卡
nmcli con reload
nmcli con up $NIC
六、与 nmcli
的配置兼容性说明
nmcli
会自动生成对应的ifcfg-*
文件(或.nmconnection
文件,取决于配置)修改
ifcfg-*
后需执行:
nmcli con reload
nmcli con up eth0
若使用
nmtui
进行图形配置,也会更新 ifcfg 文件内容(在受控条件下)
七、常见坑点避雷
八、总结:掌握 ifcfg,打通传统与现代网络配置之桥
结语:网络的世界,从一个文件开始……
"DEVICE=eth0"
不仅仅是配置,它是一台服务器的呼吸开始。"UUID="
是她的身份证,而"ONBOOT=yes"
是她每天睁眼的方式。
你是否已准备好,从 ifcfg 开始掌控你的网络?