跳转到内容
搜索 CentOS Stream 文档

    浏览当前文档目录

    用 nmcli 配置静态 IP

    适用:CentOS Stream 9 / 10(NM 1.58 实测)· 核对日:2026-11-02 · 官方依据:nmcli(1) 与 NetworkManager 文档;本页流程在 Stream 10 实机全流程实测。

    Stream 的网络归 NetworkManager 管:一块网卡对应一个连接档案(connection profile),改地址、网关、DNS 都是改档案,再用 nmcli con up 应用。本页命令全部在实机验证过,包括远程操作不断连的副地址技巧。

    • 能登录机器(SSH 或控制台),知道当前连接档案名;
    • 回退点:先抄下当前配置(下一步第一条命令的输出)——改坏了按原值改回去即可;
    • 远程操作铁律:主地址不动,用副地址试新配置。
    1. 看清现状:

      设备与连接档案
      $ nmcli device status
      $ nmcli -f GENERAL,IPV4 con show ens18

      预期输出(实测摘录,装机时已配静态 IP 的机器):

      ens18 ethernet connected ens18
      ipv4.method: manual
      ipv4.addresses: 192.168.2.240/24
      ipv4.gateway: 192.168.2.2
      GENERAL.STATE: activated

      设备名 ens18 来自一致性命名(en=以太网 + s=槽位 + 编号),Virtio 网卡在实测虚拟机上就是它——不要凭习惯写 eth0。

    2. 加一个副地址试配置(远程操作的安全做法):

      追加副地址并应用
      $ sudo nmcli con mod ens18 +ipv4.addresses 192.168.2.241/24
      $ sudo nmcli con up ens18
      $ ip -br addr show ens18

      预期输出(实测摘录):

      Connection successfully activated (D-Bus active path: ...)
      ens18 UP 192.168.2.240/24 192.168.2.241/24 fe80::...

      + 是追加、- 是移除、不带符号是整体替换(替换会踢掉旧地址——远程慎用)。

    3. 改成正式的静态配置(确认副地址可用后再动主配置):

      设置地址/网关/DNS 并应用
      $ sudo nmcli con mod ens18 \
      ipv4.method manual \
      ipv4.addresses 192.168.2.240/24 \
      ipv4.gateway 192.168.2.2 \
      ipv4.dns 192.168.2.2
      $ sudo nmcli con up ens18

      con mod 只写档案、不碰设备;con up 才应用。两步之间出问题,机器还是旧配置——这是回退窗口。

    4. 验证:

      核对生效配置
      $ ip -br addr show ens18
      $ nmcli -f IPV4 con show ens18 | grep -E "method|addresses|gateway"
    恢复到步骤 1 抄下的原值
    $ sudo nmcli con mod ens18 ipv4.addresses <原地址/掩码> ipv4.gateway <原网关> ipv4.dns <原DNS>
    $ sudo nmcli con up ens18

    副地址方案下回滚更简单:-ipv4.addresses <副地址/掩码> 移除即回到原状(实测摘录见步骤 2)。

    现象原因处理
    nmcli con up 后 SSH 断了改了主地址等新地址生效后连新地址;预防:先加副地址验证
    改了配置没生效只 con mod 没 con upnmcli con up <连接名>
    找不到 ens18网卡命名与想象不同nmcli device status 看实际名字
    DNS 不生效忘了 ipv4.dns,或用了 ipv4.dns-search 代替nmcli -f IPV4 con show <名> 核对