linux改ip需区分临时与永久生效:临时用ip addr add并flush旧地址;centos 7永久配/etc/sysconfig/network-scripts/ifcfg-*,centos 8+用nmcli,ubuntu 18.04+用netplan,且须同步更新hosts和防火墙规则。

Linux改IP地址不是“改完就完”,关键看你要的是临时生效还是永久生效,以及你用的是什么发行版、什么网络管理服务。CentOS 7/8 和 Ubuntu 18.04+ 的底层机制已经不同,硬套老教程大概率失败。
ip addr add 临时配IP,但别忘 flush 原地址
用 ip 命令改IP最快,但新手常漏掉一步:不先清旧地址,新旧IP会共存,导致路由混乱或服务绑定错端口。
- 先确认接口名:
ip -br a或ip link show,常见如ens33、eth0 - 清空该接口所有 IPv4 地址:
sudo ip addr flush dev ens33 - 加新地址(带掩码):
sudo ip addr add 192.168.1.50/24 dev ens33 - 确保接口 up:
sudo ip link set ens33 up - 加默认网关(如需上网):
sudo ip route add default via 192.168.1.1
这条路径不写配置文件,重启就丢。适合调试、救急、CI/CD 临时环境。
/etc/sysconfig/network-scripts/ifcfg-* 在 CentOS 7 是永久配置主力
CentOS 7 默认仍用 network.service 管理,配置文件路径固定,但字段名和取值必须严格匹配,大小写、空格、换行都可能让 systemctl restart network 失败。
- 编辑对应文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 - 关键字段不能少:
BOOTPROTO=static、ONBOOT=yes、IPADDR=192.168.1.50、NETMASK=255.255.255.0、GATEWAY=192.168.1.1 - DNS 要写在同个文件里:
DNS1=8.8.8.8、DNS2=114.114.114.114(仅当NM_CONTROLLED=no时才生效) - 改完必须重启服务:
sudo systemctl restart network,不是ifdown/ifup,后者不加载 GATEWAY 和 DNS
CentOS 8 默认已弃用这个路径,除非你装了 network-scripts 包并启用 network.service,否则直接编辑 ifcfg 文件无效。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
nmcli 在 CentOS 8+ 和 RHEL 8+ 是唯一推荐方式
CentOS 8+ 默认只启 NetworkManager,network.service 不再默认安装。nmcli 不是“可选工具”,是唯一能持久生效的命令行接口。
- 查当前连接:
nmcli connection show,名字通常是System ens33或自定义名 - 改静态 IP:
nmcli connection modify "System ens33" ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,114.114.114.114" ipv4.method manual - 必须 reload 才生效:
nmcli connection down "System ens33" && nmcli connection up "System ens33" - 若要禁用 DHCP 自动覆盖,确保
ipv4.ignore-auto-routes和ipv4.ignore-auto-dns设为yes
别试图在 CentOS 8+ 里改 /etc/sysconfig/network-scripts/ifcfg-* 后跑 systemctl restart network——服务根本不存在,会报 Unit network.service not found。
Ubuntu 18.04+ 必须用 netplan,/etc/network/interfaces 已失效
Ubuntu 从 17.10 开始转向 netplan,配置文件是 YAML 格式,缩进敏感,sudo ifconfig 改的只是临时地址,不影响 netplan 加载逻辑。
- 配置文件位置:
/etc/netplan/*.yaml,常见名如01-network-manager-all.yaml或50-cloud-init.yaml - 静态 IP 示例(注意 2 空格缩进,冒号后必须空一格):
network: version: 2 renderer: networkd ethernets: ens33: dhcp4: false addresses: [192.168.1.50/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114] - 应用配置:
sudo netplan apply(不是 systemctl restart) - 如果用的是桌面版且启用了 NetworkManager,renderer 应为
NetworkManager,不是networkd
netplan 配置错误会导致 netplan apply 报错退出,但不会断当前 SSH 连接;不过下次 reboot 就可能彻底失联——务必在本地终端或带 console 的环境中操作。
最易被忽略的点:改完 IP 后没同步更新 /etc/hosts 里的本机解析,或防火墙(firewalld / ufw)规则仍按旧 IP 匹配,导致服务看似启动成功却无法访问。这些不在 IP 配置流程里,但实际排障时十次有八次卡在这儿。









