跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    NetworkManager 基础

    NetworkManager 是 CentOS / AlmaLinux / Rocky Linux 上默认的网络管理服务。它通过 nmcli(命令行)和 nmtui(文本界面)两种方式让你方便地配置和管理网络连接。

    NetworkManager 以守护进程运行,负责自动检测、配置和切换网络连接。它的核心概念有两个:

    • 设备 (device): 物理或虚拟网卡,如 ens33、eth0、virbr0。
    • 连接 (connection): 一组网络配置参数,绑定到某个设备上。一个设备可以有多个连接配置文件,但同一时间只能激活一个。
    查看 NetworkManager 是否正在运行
    systemctl status NetworkManager

    如果服务未运行,可以启动并设为开机自启:

    启动并启用 NetworkManager
    sudo systemctl enable --now NetworkManager

    nmcli 是 NetworkManager 的命令行工具,功能完整且适合脚本化操作。

    列出所有网络设备及其状态
    nmcli device status

    输出示例:

    DEVICE TYPE STATE CONNECTION
    ens33 ethernet connected ens33
    lo loopback unmanaged --
    列出所有连接配置文件
    nmcli connection show

    查看某个连接的详细信息:

    查看 ens33 连接的完整配置
    nmcli connection show ens33
    查看所有设备的 IP 地址
    nmcli device show

    只查看某个设备:

    查看 ens33 的详细信息
    nmcli device show ens33

    将网卡从 DHCP 切换为静态 IP 是最常见的操作之一。

    为 ens33 配置静态 IP、网关和 DNS
    sudo nmcli connection modify ens33 \
    ipv4.method manual \
    ipv4.addresses 192.168.1.100/24 \
    ipv4.gateway 192.168.1.1 \
    ipv4.dns "8.8.8.8 8.8.4.4"

    修改后需要重新激活连接才能生效:

    重新激活连接使配置生效
    sudo nmcli connection up ens33
    确认 IP 地址已正确配置
    nmcli -p connection show ens33 | grep ipv4

    如果需要从静态 IP 切回 DHCP 自动获取:

    将连接改为 DHCP 模式
    sudo nmcli connection modify ens33 \
    ipv4.method auto \
    ipv4.addresses "" \
    ipv4.gateway "" \
    ipv4.dns ""
    重新激活连接
    sudo nmcli connection up ens33
    为连接配置多个 DNS 服务器
    sudo nmcli connection modify ens33 ipv4.dns "223.5.5.5 119.29.29.29"

    使用 + 前缀可以在现有 DNS 基础上追加,而不是覆盖:

    追加一个 DNS 服务器
    sudo nmcli connection modify ens33 +ipv4.dns "8.8.8.8"
    配置 DNS 搜索域
    sudo nmcli connection modify ens33 ipv4.dns-search "example.com internal.local"

    在 DHCP 模式下,你可能希望保留手动指定的 DNS。可以设置 ignore-auto-dns:

    忽略 DHCP 下发的 DNS
    sudo nmcli connection modify ens33 ipv4.ignore-auto-dns yes
    创建一个新的以太网连接配置
    sudo nmcli connection add \
    con-name "office-static" \
    type ethernet \
    ifname ens33 \
    ipv4.method manual \
    ipv4.addresses 10.0.0.50/24 \
    ipv4.gateway 10.0.0.1 \
    ipv4.dns "10.0.0.2"

    同一个网卡可以有多个连接配置,按需切换:

    激活 office-static 连接
    sudo nmcli connection up office-static
    切换回原来的连接
    sudo nmcli connection up ens33
    删除不需要的连接配置
    sudo nmcli connection delete office-static

    NetworkManager 的连接配置文件默认存储在以下目录:

    • EL 9 & EL 10 (AlmaLinux 9/10 / Rocky Linux 9/10): /etc/NetworkManager/system-connections/,格式为 keyfile (.nmconnection)
    • EL 8 及更早版本: /etc/sysconfig/network-scripts/,格式为 ifcfg
    查看 EL 9 / EL 10 的连接配置文件
    ls /etc/NetworkManager/system-connections/
    查看 EL 8 的连接配置文件
    ls /etc/sysconfig/network-scripts/ifcfg-*

    nmtui 提供了基于文本的交互式界面,对于不熟悉 nmcli 命令的用户更加友好。

    启动 nmtui 文本界面
    sudo nmtui

    nmtui 提供三个功能选项:

    1. Edit a connection — 编辑现有连接或创建新连接
    2. Activate a connection — 激活或停用连接
    3. Set system hostname — 设置主机名

    使用方向键导航,Tab 键切换选项,Enter 键确认。

    直接打开连接编辑界面
    sudo nmtui edit
    直接编辑 ens33 连接
    sudo nmtui edit ens33
    临时禁用网卡
    sudo nmcli device disconnect ens33
    重新启用网卡
    sudo nmcli device connect ens33

    查看当前 Wi-Fi 列表(适用于有无线网卡的系统)

    Section titled “查看当前 Wi-Fi 列表(适用于有无线网卡的系统)”
    扫描并列出可用 Wi-Fi
    nmcli device wifi list
    通过 nmcli 设置主机名
    sudo nmcli general hostname myserver.example.com
    查看网络整体连接状态
    nmcli general status

    如果网络配置不生效,可以按以下步骤排查:

    查看 NetworkManager 日志
    sudo journalctl -u NetworkManager --no-pager -n 50
    检查连接配置是否正确加载
    nmcli connection show ens33 | grep -E "ipv4\.(method|addresses|gateway|dns)"
    检查设备实际获取的 IP
    ip addr show ens33