!!!!

Linux系统中网络配置默认是临时的,重启后会失效。要让配置长期生效,需要做持久化设置。不同发行版的配置方式略有差异,但核心目标都是写入配置文件或使用工具保存。

CentOS / RHEL / Rocky Linux 网络配置持久化
这类系统从7版本开始大多使用NetworkManager,但也保留了传统的network-scripts方式(取决于安装时的选择)。
如果你用的是nmcli或图形界面配置网络,可以执行以下命令确保配置不丢失:

nmcli connection modify ipv4.addressesnmcli connection modify ipv4.gatewaynmcli connection modify ipv4.dnsnmcli connection up
也可以直接编辑配置文件:
路径通常是 /etc/sysconfig/network-scripts/ifcfg-
在里面添加或修改 BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1 等字段。
改完后重启网络服务:systemctl restart NetworkManager 或 systemctl restart network,视使用的服务而定。
Ubuntu / Debian 系统如何保存网络设置
Ubuntu从17.10起采用netplan作为默认网络配置工具,Debian则更倾向于使用interfaces文件。
如果是Ubuntu,配置文件一般在 /etc/netplan/ 目录下,后缀为.yaml。你需要编辑这个文件,设置静态IP等信息,然后执行:

sudo netplan apply
这样就能立即生效并持久化。注意YAML格式对缩进敏感,一定要保持格式正确。
如果是Debian系统,通常编辑 /etc/network/interfaces 文件:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1然后重启网络服务:systemctl restart networking
Arch / Manjaro 等滚动更新系统的处理方式
Arch Linux默认没有预装图形化网络管理工具,常见做法是使用dhcpcd自动获取IP或者手动配置静态IP。
如果想持久化配置,可以创建或编辑 /etc/systemd/network/ 下的.network文件。例如:
新建一个 10-static-eth0.network 文件内容如下:
[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8
然后启用并启动服务:
systemctl enable systemd-networkdsystemctl start systemd-networkd
这样即使重启也不会丢失配置。
小贴士和容易忽略的地方
有些细节很容易被忽视,比如:
- 修改完配置文件后是否记得重启相关服务?
- 是否启用了正确的网络管理器?比如同时运行
NetworkManager和systemd-networkd可能会冲突。 - 配置文件的语法是否正确?特别是像YAML这种对空格要求严格的格式。
- 使用
ip addr add或ifconfig设置的地址只是临时的,重启即失效。 - 在云主机或虚拟机中,有时DHCP会覆盖本地配置,需要检查云平台的元数据设置。
基本上就这些。不同发行版在网络配置持久化上各有特点,只要找到对应的配置文件位置和服务名称,操作并不复杂,但稍有不慎也容易出错。










