linux配置静态ip需先确认网卡名(如ens33)和网络管理工具:networkmanager启用则用nmcli/nmtui或netplan(ubuntu 17.10+),否则按发行版选ifcfg-xxx或/etc/network/interfaces;bootproto=static和onboot=yes是生效关键。

BOOTPROTO=static 必须设对,否则所有配置都白写;ONBOOT=yes 不开,重启后网卡压根不起来——这是 80% 静态 IP 失效的根源。
怎么确认网卡名和当前网络管理工具?
别猜 eth0,现代系统基本不用这个名。运行:ip -br a 或 ls /sys/class/net/,看到类似 ens33、enp0s3、eno1 的才是真实接口名。
再查 NetworkManager 是否启用:systemctl is-active NetworkManager
返回 active 就走 nmcli 或 nmtui;返回 inactive 则看发行版:
- RHEL/CentOS/Rocky:配置文件在 /etc/sysconfig/network-scripts/ifcfg-xxx
- Ubuntu/Debian(Server):配置文件在 /etc/network/interfaces
- Ubuntu(Desktop 17.10+)或较新 Debian:用 /etc/netplan/*.yaml
Netplan 配置(Ubuntu 18.04+ / Debian 11+)
编辑 YAML 文件时缩进是硬性要求,多一个空格或少一个都会报错。
典型配置(注意字段名和层级):
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
关键点:
- renderer 值必须是 NetworkManager 或 networkd,不能拼错
- addresses 用 CIDR 格式(如 192.168.1.100/24),不是 IPADDR + NETMASK
- gateway4 只能写一个,默认路由,多个需额外加 routes 字段
- 改完必须执行:sudo netplan apply,sudo systemctl restart systemd-networkd 无效
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
nmcli 修改(RHEL 8+/CentOS 8+/Fedora/Ubuntu Desktop)
改完不 reload 就 up,配置不会生效。常见漏步:
- 先查连接名:
nmcli connection show --active(别只用nmcli connection show,可能列出一堆已断开的旧连接) - 修改后必须 reload:
nmcli connection reload - down/up 要配对:
nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1" - DNS 要写成字符串,逗号分隔:
nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8,114.114.114.114",空格会解析失败 -
ipv4.method manual必须设,否则 DHCP 仍会抢地址
ifcfg-xxx 文件配置(RHEL 7/CentOS 7/Rocky Linux)
最常踩坑的是字段格式和重启命令错配:
-
BOOTPROTO=static(不能写none,虽然部分版本兼容,但语义不清易出错) -
IPADDR=192.168.1.100(纯 IP,不带/24) -
NETMASK=255.255.255.0(不能写PREFIX=24或丢掉) -
DNS1=8.8.8.8和DNS2=114.114.114.114(PEERDNS=yes才生效,否则被 NM 覆盖) - 重启服务前,确认 NetworkManager 状态:
若active→ 先nmcli connection reload,再 down/up 对应连接
若inactive→ 执行sudo systemctl restart network(service network restart是别名,但不推荐)
最后验证时,别只 ping 网关,还要 cat /etc/resolv.conf 看 DNS 是否写入,ip route show default 看默认路由是否正确——很多“通了”只是靠老缓存,实际没走新网关。










