不同系统下设置静态IP 虽然所有 Linux 系统在底层的内核操作是相同的临时配置都可以用ip或ifconfig但让静态 IP 永久生效的配置文件格式、路径以及后台网络管理服务在不同操作系统中截然不同。各大常见系统设置静态 IP 的机制对比与操作示例说明如下系统 / 发行版网络管理服务 (Backend)配置文件位置格式特点嵌入式 Linux (Buildroot / BusyBox)ifupdown或init脚本/etc/network/interfaces或/etc/init.d/S*极简文本 / Shell 脚本Ubuntu 18.04 / Debian 12Netplan(systemd-networkd)/etc/netplan/*.yaml严格缩进的YAML格式CentOS 7/8 / RHEL / FedoraNetworkManager(nmcli)/etc/NetworkManager/system-connections/INI 键值对或通过nmcli命令行配置通用小型 Linux (Arch / Alpine)systemd-networkd/etc/systemd/network/*.network标准[Match]和[Network]段落树莓派 (Raspberry Pi OS 早期)dhcpcd/etc/dhcpcd.conf配置文件末尾追加规则主流系统的实际配置写法1. Ubuntu 18.04 及以上Netplan使用 YAML 缩进不能使用 Tab 键只能用空格# /etc/netplan/01-netcfg.yaml network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1应用配置命令sudo netplan apply2. CentOS / RHEL / 企业级 LinuxNetworkManager / nmcli现代 RedHat 系推荐直接用命令行生成配置不需要手动改文件# 1. 设置静态 IP 和网关 nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual # 2. 重新加载并生效 nmcli connection up eth03. 通用 Linuxsystemd-networkd许多轻量级服务器和现代嵌入式系统如 Ubuntu Core、Yocto喜欢用systemd原生网络管理# /etc/systemd/network/10-static-eth0.network [Match] Nameeth0 [Network] Address192.168.1.100/24 Gateway192.168.1.1 DNS8.8.8.8应用配置命令systemctl restart systemd-networkd4. 嵌入式 LinuxBuildroot / 经典 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为什么会有这么多方式因为 Linux 本身只是一个内核网络配置是由运行在内核之上的网络管理守护进程Daemon负责读写和维护的嵌入式系统Buildroot/Yocto追求体积小、启动快所以用最简单的ifupdown或开机 Shell 脚本。桌面/服务器系统Ubuntu/RedHat追求热插拔、Wi-Fi/有线自动切换所以引入了强大的NetworkManager或Netplan。两条通用规则临时修改在任何 Linux 下运行ip addr add 192.168.1.100/24 dev eth0都通用重启失效。永久修改先用systemctl status或查看目录确认当前系统到底是用Netplan、NetworkManager还是interfaces在管网络再修改对应的配置文件。