核心是修改networkmanager中的连接参数实现静态与dhcp切换,无需重启系统或编辑配置文件;先用nmcli device status和nmcli connection show确认网卡状态与连接名,再通过nmcli connection modify配合ipv4.method manual/auto等参数调整配置,最后用nmcli connection up激活生效。

用 nmcli 切换网卡 IP 配置,核心是“改连接、不碰设备”,靠修改 NetworkManager 中的连接(connection)参数来实现静态与 DHCP 的快速切换,无需重启系统或编辑配置文件。
确认当前连接和网卡状态
先看清现状,避免误操作:
- 运行 nmcli device status 查看物理网卡(如 ens33、eth0)是否已连接、状态是否为 connected
- 运行 nmcli connection show 找出对应网卡的连接名(NAME 列),通常和网卡名一致,但也可能是“有线连接 1”这类默认名
- 运行 nmcli -p device show (例如
nmcli -p device show ens33)可看到当前生效的 IPv4 方法(IP4.ADDRESS[1]和IP4.GATEWAY等),确认当前是 static 还是 auto
从 DHCP 切到静态 IP
只需一条 modify 命令加一次 up 激活:
- 执行:nmcli connection modify ipv4.method manual ipv4.addresses
ipv4.gateway ipv4.dns ipv4.ignore-auto-routes yes - 例如:
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "114.114.114.114 8.8.8.8" - 再执行:nmcli connection up (如
nmcli connection up ens33)立即生效
从静态 IP 切回 DHCP
清空静态参数,还原为自动获取模式:
- 执行:nmcli connection modify ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns "" ipv4.ignore-auto-routes no
- 注意:必须显式清空
ipv4.addresses和ipv4.gateway,否则旧值仍可能干扰 DHCP 获取 - 再执行:nmcli connection up ,NetworkManager 会自动请求新地址
验证与排错要点
切换后别跳过核对,常见问题多出在细节:
- 用 ip -4 addr show 看实际分配的 IPv4 地址是否更新
- 用 nmcli -p connection show | grep -E "(method|address|gateway|dns)" 检查配置是否写入成功
- 若 DNS 不生效,检查
ipv4.ignore-auto-dns是否为no(DHCP 模式下应为 no,静态模式下建议设为 yes 避免冲突) - 多网卡环境注意:确保只操作目标网卡对应的连接,避免连错名称导致断网











