Ubuntu/Debian 应使用 netplan 配置静态 IP,禁用 dhcp4 并设置 addresses、gateway4、nameservers;CentOS/RHEL 7+ 推荐用 nmcli 修改连接配置;临时调试可用 ip 命令,但重启失效;配完需验证子网掩码、网关可达性及路由表。

Ubuntu/Debian 用 netplan 配固定 IP,别碰 /etc/network/interfaces
新版 Ubuntu(18.04+)默认用 netplan 管网络,硬改 /etc/network/interfaces 不生效,还会和 systemd-networkd 或 NetworkManager 冲突。先确认你用的是哪个后端:cat /etc/netplan/*.yaml,通常文件名是 01-network-manager-all.yaml 或 50-cloud-init.yaml。
- 编辑对应
.yaml文件,把dhcp4: true改成dhcp4: false - 加
addresses、gateway4、nameservers(注意缩进必须是空格,不能用 Tab) - 改完运行
sudo netplan apply,失败时看错误提示——常见是缩进错或字段拼错(比如写成gateway而不是gateway4) - 如果网卡名不确定,用
ip -br a查,别凭印象写eth0(新系统多是ens33、enp0s3这类)
CentOS/RHEL 7+ 用 nmcli 命令配,别手改 ifcfg 文件
虽然 /etc/sysconfig/network-scripts/ifcfg-* 还存在,但直接改它容易被 NetworkManager 覆盖或忽略。推荐用 nmcli 操作,它会自动同步配置并重载连接。
- 查当前连接名:
nmcli connection show,记下要改的连接名(如System eth0) - 关 DHCP:
sudo nmcli connection modify "System eth0" ipv4.method manual - 设 IP 和掩码:
sudo nmcli connection modify "System eth0" ipv4.addresses 192.168.1.100/24 - 设网关:
sudo nmcli connection modify "System eth0" ipv4.gateway 192.168.1.1 - 设 DNS:
sudo nmcli connection modify "System eth0" ipv4.dns "8.8.8.8,114.114.114.114" - 重启连接:
sudo nmcli connection down "System eth0" && sudo nmcli connection up "System eth0"
临时配 IP 可用 ip 命令,但重启就丢
调试或应急时用 ip 最快,不依赖任何服务,也不写配置文件。但它只在当前会话有效,机器重启或网卡重载后就恢复原状。
- 加 IP:
sudo ip addr add 192.168.1.100/24 dev eth0 - 删旧 DHCP 分配的 IP(避免冲突):
sudo ip addr flush dev eth0,再执行上一步 - 设默认路由:
sudo ip route add default via 192.168.1.1 - 设 DNS:改
/etc/resolv.conf(但某些发行版会覆盖它,比如 systemd-resolved 运行时) - 注意:没设网关的话,只能通局域网;DNS 没配,
ping baidu.com会卡住
配完 ping 不通?先查这三件事
固定 IP 配完最常卡在连不通外网或同网段其他机器,问题往往不在 IP 本身,而在配套项没对齐。
- 子网掩码是否匹配:比如你设
192.168.1.100/24,但路由器实际是/16网段,那根本不在一个广播域里 - 网关是否可达:用
ping -c 3 192.168.1.1测,不通就说明物理链路、VLAN 或防火墙挡了 - 路由表有没有冲突:
ip route show看是否有重复的default或错误的via,多个网卡时尤其容易多出一条默认路由
IP 地址只是个数字,真正让它“活”起来的是子网划分、路由走向和 DNS 解析这三个环。少一个,都算没配成功。









