nmcli connection add 创建连接必须指定 type 和 ifname,否则生成无效“空壳”;ipv4 手动配置需加 ipv4.method manual;修改后须 down/up 或 reload+up 才生效;device disconnect 仅临时断链,connection down 才清理全栈配置;ipv6 默认启用,纯 ipv4 环境应设 ipv6.method disabled。

nmcli connection add 创建新连接时必须指定 type 和 ifname
不指定类型和网卡名,nmcli 会报错或创建出无法激活的“空壳”连接。常见错误是只写 nmcli connection add con-name mynet,结果连 nmcli connection show 都看不到有效状态。
实操建议:
- 有线连接用
type ethernet,无线用type wifi;必须搭配ifname(如enp0s3),不能靠猜测——用ip -br a或nmcli device status先确认真实接口名 - IPv4 手动配置要加
ipv4.method manual,否则默认是auto(DHCP) - 示例:
nmcli connection add type ethernet con-name static-wired ifname enp0s3 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,114.114.114.114"
nmcli connection modify 修改连接后必须 reload 或 down/up 才生效
nmcli connection modify 只改配置文件,不触发现有连接重载。很多人改完 ipv4.addresses 就以为 IP 已变,实际 ip a 还是旧地址。
实操建议:
- 修改后必须先
nmcli connection down mycon再nmcli connection up mycon;如果当前正用该连接上网,down会断开,需确保有备用链路或本地终端访问 - 或者用
nmcli connection reload+nmcli connection up mycon组合,但 reload 不保证立即应用所有参数(比如 DNS 配置有时需重启systemd-resolved) - 特别注意:修改
ipv4.ignore-auto-routes或ipv4.never-default这类路由控制项,必须 down/up,仅 reload 无效
nmcli device disconnect vs connection down 的区别很关键
新手常混淆这两个操作:nmcli device disconnect enp0s3 是临时断开设备,不碰连接定义;而 nmcli connection down mycon 是按连接配置停用,会清理 IP、路由、DNS 等全套设置。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
实操建议:
- 调试时优先用
connection down/up,它严格遵循连接定义,能暴露配置缺陷(比如 gateway 缺失导致 up 失败) -
device disconnect类似“拔网线”,适合快速测试上层服务是否依赖网络,但不会触发连接状态变更,nmcli connection show --active里仍显示为 activated - 如果执行
connection down报错Connection 'xxx' is not available on device 'yyy',说明连接绑定的ifname错了,或设备当前被其他连接占用
IPv6 地址配置容易被忽略,但会影响 systemd-networkd 兼容性
很多教程只配 IPv4,但现代 NetworkManager 默认启用 IPv6,若未显式禁用,可能产生冲突路由或干扰容器网络。更隐蔽的问题是:某些发行版(如 Fedora Server)的 systemd-networkd 与 NM 共存时,IPv6 自动配置会互相抢 interface。
实操建议:
- 纯 IPv4 环境务必加
ipv6.method disabled,否则即使没配 IPv6 地址,NM 仍可能发 RA 请求或生成 link-local 地址 - 若需保留 IPv6,手动地址要写全:
ipv6.addresses "2001:db8::100/64",注意引号,避免 shell 解析冒号出错 - 检查是否生效:用
nmcli -f ipv4,ipv6 connection show mycon看 method 字段,再用ip -6 a show dev enp0s3确认地址存在
NetworkManager 的连接配置本质是 /etc/NetworkManager/system-connections/ 下的 ini 文件,直接编辑也能生效,但绕过 nmcli 容易漏掉 dbus 通知或缓存刷新,建议始终走命令行路径。特别是 ipv4.dns-search 这类字段,手工改文件后不 reload,resolv.conf 就不会更新。










