先确认网络管理工具再配置:运行systemctl list-units | grep -E "(NetworkManager|systemd-networkd)"和ls /etc/netplan/或ls /etc/sysconfig/network-scripts/判断底层服务与配置路径,避免命令无效。

确认当前网络管理工具再动手
直接改配置文件可能白忙——Linux发行版用的底层网络管理器不同,硬套命令会报错或不生效。先运行 systemctl list-units | grep -E "(NetworkManager|systemd-networkd)" 看哪个服务在跑;再查 ls /etc/netplan/ 或 ls /etc/sysconfig/network-scripts/ 判断配置路径。Ubuntu 20.04+、Debian 11+ 多用 netplan;RHEL/CentOS 7/8 默认用 NetworkManager 或传统 network-scripts;老旧 Debian/Ubuntu Server 可能还在用 /etc/network/interfaces。
nmcli 修改连接时必须关 DHCP 才生效
用 nmcli 配静态 IP 最容易漏掉这一步:只设地址、网关、DNS,但没把 ipv4.method 改成 manual,结果重启后还是走 DHCP。常见错误现象是 ip a 显示两个 IP(一个 DHCP 分配的,一个你手动加的)。
nmcli connection modify "System ens33" ipv4.method manualnmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24nmcli connection modify "System ens33" ipv4.gateway 192.168.1.1nmcli connection modify "System ens33" ipv4.dns "8.8.8.8,114.114.114.114"- 最后一定要执行
nmcli connection down "System ens33" && nmcli connection up "System ens33",reload不够
netplan YAML 缩进错一位就 netplan apply 报错
YAML 对空格极其敏感,renderer、ethernets、网卡名、addresses 这几级必须用空格对齐,不能用 Tab。典型错误信息:Invalid YAML: inconsistent indentation 或 unknown key renderer。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 确保整个文件只用空格缩进,推荐 2 空格一级
-
dhcp4: no和addresses:必须同级,都在网卡名下一层 - 如果用了
gateway4,就不能再写routes,否则冲突 - 修改后先运行
sudo netplan try测试,120 秒内无响应会自动回滚
传统 ifcfg- 文件里 ONBOOT=yes 是硬性要求
RHEL/CentOS 系统中,即使你填全了 IPADDR、GATEWAY,只要 ONBOOT=no,重启后网卡根本不会起来,ip a 也看不到地址。
- 编辑
/etc/sysconfig/network-scripts/ifcfg-ens33后,务必检查ONBOOT=yes -
BOOTPROTO=static必须小写,写成STATIC或Static无效 - 改完别用
systemctl restart NetworkManager,该系统优先认systemctl restart network - 验证时用
ip route show default看网关是否加载成功,比只看ip a更可靠
实际操作中最容易被忽略的是:改完配置后没验证网关和 DNS 是否真正生效,只看到 IP 地址变了就以为成功了。建议每步完成后都执行 ip route show default 和 cat /etc/resolv.conf 确认。










