文档首页> 技术教程> 网卡配置与 IP 设置:nmcli 与配置文件两条路

网卡配置与 IP 设置:nmcli 与配置文件两条路

发布时间:2026-05-09 16:27        更新时间:2026-05-09 22:43
改服务器 IP 是最不适合现场试错的活,改错了连接就断。动手前先看清两条路线:nmcli 适合快速修改和脚本化,直接改配置文件适合批量统一管理。 先摸现状 `nmcli device status` 看有哪些网卡、各自连着哪个连接,STATE 一列显示 connected 的就是当前活动网卡;`nmcli connection show` 列出所有连接配置的名称。记下活动连接名,后面的命令都围绕它。如果输出里哪块网卡没有挂任何配置,说明它还在裸奔状态,按需补配。 nmcli 设静态 IP 以 eth0 为例,一条命令提交整组参数: ``` nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.dns "192.168.1.53" ``` 生效只需 `nmcli con up eth0`。验证分三小步:`nmcli con show eth0 | grep ipv4.addresses` 确认配置已落盘,`ip addr show eth0` 看地址已换上,`ip route show default` 确认默认路由指向新网关。从 DHCP 改静态前,先确认这个地址不在地址池里,或者已在 DHCP 服务里做了保留绑定,否则别的机器一开机就把 IP 抢走,排查起来非常绕。整组参数一次提交,不存在改了一半的中间状态,这是它比手改文件稳的地方。 配置文件这条路 CentOS 7 系编辑 `/etc/sysconfig/network-scripts/ifcfg-eth0`,关键项是 BOOTPROTO=static、IPADDR、PREFIX、GATEWAY、DNS1,改完 `systemctl restart network`。Ubuntu 20.04 之后走 netplan,格式长这样: ```yaml network: version: 2 ethernets: eth0: addresses: [192.168.1.10/24] routes: [{to: default, via: 192.168.1.1}] ``` 改完 `netplan apply`。注意 yaml 对缩进敏感,只用空格不用 Tab,文件权限过宽 netplan 还会告警。配置文件名与目录随版本而异,动手前 `ls /etc/netplan/` 看清现有文件,别新建出两份互相冲突的配置。 生效与回退 切换后的验证顺序是:`ping -c 2 网关` 通了说明二层和路由正常,再 `ping -c 2 外网IP`,最后 `ping -c 2 域名`——逐级定位是路由问题还是 DNS 问题。动手前把现有参数原样抄进工单,回退时照着敲最快。有 IPv6 的机器记得一并另配 ipv6.addresses。DNS 可以配多个,空格分隔按序尝试;内网地址与公网地址分开登记,避免混用。远程操作前用 `cp ifcfg-eth0 ifcfg-eth0.bak` 留旧配置,成本几乎为零;内网有 IP 管理规范的,新地址先申请再占用,避免冲突。云主机上改错最坏就是连不上,控制台 VNC 永远能进,但生产业务的小时级损失没人能补,验证的耐心不能省。