如何在 Rocky Linux 9 中使用 nmcli 配置静态 IP 地址和网关?

问题浏览数Icon
36
问题创建时间Icon
2025-03-26 23:26:00
作者头像
starflow88

在Rocky Linux 9中使用nmcli配置静态IP和网关时,我遵循以下实践步骤并总结了常见挑战:


操作步骤

  1. 查看当前连接名称:

    nmcli connection show

    确认需修改的接口名(如ens192

  2. 配置静态IP和子网掩码:

    sudo nmcli con mod [连接名] ipv4.addresses 192.168.1.100/24

    ⚠️ CIDR格式必须正确,否则会导致网络中断

  3. 设置网关:

    sudo nmcli con mod [连接名] ipv4.gateway 192.168.1.1

    需确保网关与IP同网段

  4. 指定DNS服务器:

    sudo nmcli con mod [连接名] ipv4.dns "8.8.8.8 8.8.4.4"
  5. 修改IP获取方式:

    sudo nmcli con mod [连接名] ipv4.method manual
  6. 应用配置:

    sudo nmcli con down [连接名] && sudo nmcli con up [连接名]

常见挑战

  1. 连接重置失败:当接口处于关键服务运行时,重启连接可能导致短暂中断。建议通过nmcli con reload预加载配置

  2. 网关不生效:需检查路由表ip route show,遇到过因NetworkManager未正确推送默认路由的情况,手动添加:

    sudo ip route add default via 192.168.1.1
  3. DNS覆盖问题:当/etc/resolv.conf被其他进程修改时,需设置:

    sudo nmcli con mod [连接名] ipv4.ignore-auto-dns yes
  4. 多网卡冲突:在服务器配置多NIC时,曾遇到默认网关重复设置导致路由混乱。解决方案是指定metric值:

    sudo nmcli con mod [连接名] ipv4.route-metric 100
  5. 配置验证:推荐使用组合命令验证:

    ifconfig [接口名] && nmcli device show [接口名] | grep IP4

深度实践

  • 生产环境中建议保留dhcp配置备份:
    sudo cp /etc/sysconfig/network-scripts/ifcfg-[连接名] ~/
  • 遇到NetworkManager不识别修改时,可尝试完全重启服务:
    sudo systemctl restart NetworkManager
  • 使用nmtui作为备用方案,当ssh连接不稳定时提供可视化修复途径

更多回答

作者头像
yunluo01

简单回答: 使用 nmcli con mod <连接名> ipv4.addresses <IP地址/子网掩码> 设置静态IP,nmcli con mod <连接名> ipv4.gateway <网关地址> 设置网关,最后 nmcli con up <连接名> 激活配置。

延伸知识点:NetworkManager 配置文件解析 NetworkManager 的配置存储在 /etc/NetworkManager/system-connections/ 目录,每个连接对应一个 .nmconnection 文件。文件内包含 [connection](全局参数)、[ipv4](IPv4配置如method/addresses/gateway/dns)、[ipv6] 等区块。手动修改后需执行 nmcli con reload 重新加载配置,避免直接编辑与 nmcli 命令混用导致冲突。此机制适用于批量部署或脚本化配置场景。

作者头像
quickfei77

在Rocky Linux 9中使用nmcli配置静态IP和网关的步骤如下:

  1. 查看当前网络接口名称: nmcli con showip a

  2. 新建或修改连接(以接口ens192为例):

    nmcli con add type ethernet con-name static-ens192 ifname ens192 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8

    或修改现有连接: nmcli con mod static-ens192 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8

  3. 禁用DHCP并启用静态配置: nmcli con mod static-ens192 ipv4.method manual

  4. 激活配置并重启网络: nmcli con down static-ens192 && nmcli con up static-ens192

  5. 验证配置: ip addr show ens192 route -n

注意:需替换IP地址、子网掩码、网关和接口名为实际值。建议优先创建新连接而非修改原有配置,避免影响系统网络服务。配置后建议测试网络连通性并备份网络配置文件(/etc/sysconfig/network-scripts/)。

作者头像
luckypoint8

是否考虑过使用nmtui工具,它提供更直观的界面来配置网络设置?

作者头像
rickfox88

在Rocky Linux 9中使用nmcli配置静态IP和网关时,需注意以下关键点:

  1. 优先通过nmcli device status确认目标网卡名称(如ens192)
  2. 创建新连接配置时建议保留原配置,使用nmcli con add新建而非直接修改,降低生产风险
  3. 网关设置需与IP同网段,且要显式指定ipv4.gateway参数
  4. DNS建议同时配置主备服务器,并添加ipv4.ignore-auto-dns=yes禁用动态更新
  5. 配置完成后务必nmcli con reload并重启NetworkManager服务
  6. 对于服务器环境,建议同步配置主机名解析和防火墙策略 经验:生产环境中应通过nmcli con modify而非直接编辑ifcfg文件,确保配置被NetworkManager正确识别。多网卡场景需注意路由优先级,建议使用ip route命令验证最终路由表。