配静态ip关键先确认网卡名和网络管理机制:运行ip -br a查up状态网卡名,systemctl is-active networkmanager判别nm是否启用;nm启用用nmcli配置,禁用则依发行版选ifcfg-*、netplan或/etc/network/interfaces修改,并确保bootproto=static、onboot=yes等关键项正确。

直接配静态 IP,关键不是“怎么改文件”,而是先搞清系统用哪套网络管理机制。改错地方、重启错服务,配置就永远不生效。
先确认网卡名和网络管理方式
别凭经验猜 eth0 或 ens33 ——运行:
ip -br a
看输出里状态为 UP 的以太网设备名(如 ens160、enp0s3)。
再查谁在管网络:
systemctl is-active NetworkManager
返回 active → 用 nmcli 或 nmtui;
返回 inactive → 看发行版:
• RHEL/CentOS 7/8(禁用 NM)→ 改 /etc/sysconfig/network-scripts/ifcfg-xxx
• Ubuntu 18.04+ / Debian 11+ → 用 Netplan
• Debian/Ubuntu 老版本 → 改 /etc/network/interfaces
NetworkManager 启用时:用 nmcli(推荐)
适合 CentOS 8+、RHEL 8+、Ubuntu Desktop 等,默认启用 NM 的系统。
- 查当前连接名:
nmcli connection show --active | grep ethernet,记下 CONNECTION 名(如 "System ens160",带空格必须加引号) - 一次性设全:
nmcli connection modify "System ens160" \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8,114.114.114.114" \ ipv4.method manual
- 立即生效:
nmcli connection down "System ens160" && nmcli connection up "System ens160"
- 验证:
ip addr show dev ens160看是否出现 inet 192.168.1.100/24;cat /etc/resolv.conf看 DNS 是否写入
不用 NetworkManager 时:按发行版选路径
RHEL/CentOS 7(NM 禁用):
编辑 /etc/sysconfig/network-scripts/ifcfg-ens160,确保含以下几行:
BOOTPROTO=static-
ONBOOT=yes(开机自启,漏掉就失效) -
IPADDR=192.168.1.100(不带 /24) NETMASK=255.255.255.0GATEWAY=192.168.1.1-
DNS1=8.8.8.8和DNS2=114.114.114.114
然后执行:systemctl restart network
Ubuntu 18.04+ / Debian 11+:
编辑 /etc/netplan/*.yaml(如 01-network-manager-all.yaml),写成:
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
保存后运行:sudo netplan apply
Debian/Ubuntu 16.04 或更老:
编辑 /etc/network/interfaces,添加:
auto ens160
iface ens160 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 114.114.114.114
然后运行:sudo ifdown ens160 && sudo ifup ens160
常见失效原因和检查点
配完没反应?优先核对这几项:
- 网卡名抄错了(
ip -br a再看一遍) -
BOOTPROTO=static写成dhcp或漏了 -
ONBOOT=yes是no或根本没写 - 重启命令不对:NM 启用时不能只
systemctl restart network,得nmcli reload + down/up - DNS 不生效?别直接改
/etc/resolv.conf,它只是结果文件;DNS 来源是 ifcfg、Netplan 或 NM 配置项











