使用 NetworkManager 设置和管理网络连接
- 内容
NetworkManager 是一款动态网络控制与配置工具,可确保网络设备保持启用并正常运行。
- 原因
本文全面概述了 NetworkManager,以及如何使用 NetworkManager 配置、管理、监控和编辑网络连接。
- 工作量
安装和配置 NetworkManager 需要 15 分钟。充分理解 NetworkManager 的概念及功能则最多需要 1 小时。
- 目标
掌握网络连接管理的基础知识。
- 要求
拥有安装和管理 NetworkManager 所需的 root 权限
用于安装 NetworkManager 的软件包管理器
基本了解网络和 IP 地址
1 NetworkManager 相关概念 #
NetworkManager 是一款可用于管理网络连接及网络设备的工具,支持创建、配置和管理网络连接及设备。
在 SUSE Linux Enterprise Server for SAP Applications 中,NetworkManager 默认设计为完全自动模式。它默认处于启用状态,且随附用于管理主网络连接及其他网络接口所需的全部服务单元文件。NetworkManager 支持网络连接的最新加密类型与标准,包括连接至 802.1X 保护网络的加密。802.1X 是 IEEE 制定的局域网与城域网标准 — 即基于端口的网络访问控制标准。
您可无缝切换有线或无线网络,NetworkManager 会自动连接已知无线网络,并可并行管理多个网络连接。您也可手动在可用网络间切换。
NetworkManager 通常包含以下组件:
NetworkManager 守护程序 — 您可通过标准
systemd命令与该守护程序交互nmcli命令行界面Ncurses 界面
nmtuiNetworkManager 库
配置文件
2 安装和配置 NetworkManager #
在 SUSE Linux Enterprise Server for SAP Applications 中,NetworkManager 默认已安装并启用,可直接使用。通常无需重新安装该工具或更改其配置;如果确有需要,以下章节提供了相关操作指导。
2.1 安装 NetworkManager #
可以使用 zypper 安装 NetworkManager。安装后,您可以将 NetworkManager 设为在系统引导时自动启动。
安装 NetworkManager:
>sudozypper install NetworkManager
启用 NetworkManager:
>sudosystemctl enable NetworkManager
启用 NetworkManager 后,所做更改将会在系统重引导后保留。
2.2 配置 NetworkManager 行为 #
NetworkManager 的行为由其核心配置文件 /etc/NetworkManager/NetworkManager.conf 定义。
该文件是配置 NetworkManager 行为与设置的主要位置,配置内容包括日志记录、连接管理及网络设备处理。
该文件包含键值对部分。每个键值对必须属于一个部分。部分以括在 [] 中的名称开头。以 # 开头的行被视为注释。常见配置包含 [main] 部分及 plugins 值、[logging] 和 [connectivity]:
[main]1 plugins=keyfile2 dhcp=dhclient [connectivity]3 uri=http://name.org [logging]4 level=INFO domains=ALL
控制 NetworkManager 的常规设置。 | |
管理连接配置文件的存储方式。[keyfile] 插件支持 NetworkManager 的所有连接类型与功能。 | |
定义连接的默认值与选项,并指定用于检查网络连接的 URI。 | |
管理 NetworkManager 的日志记录级别和领域。 |
确保在修改配置文件前备份现有文件。
打开配置文件:
>sudovi /etc/NetworkManager/NetworkManager.conf停止 NetworkManager 服务:
>sudosystemctl stop network修改相应部分。
保存更改。
启动 NetworkManager:
>sudosystemctl start network查看现有配置和设置:
>sudonmcli general show
3 管理 NetworkManager 守护程序 #
NetworkManager 守护程序是标准的 systemd 服务,因此您可使用 systemctl 命令管理该守护程序。
您可通过以下任何命令管理 NetworkManager 守护程序:
- 查看状态
如要检查 NetworkManager 守护程序是否正在运行,进而确认网络是否应处于活跃状态,请使用以下命令:
>systemctl status network- 重启守护程序
例如,当出现网络问题时,您可尝试通过以下命令重启 NetworkManager 守护程序:
>sudosystemctl restart network- 停止守护程序
在更改网络配置或切换至手动控制模式时,您可停止 NetworkManager;排查或调试网络问题时,也可停止该服务。停止 NetworkManager 后,它将无法自动管理网络接口或更改您的手动配置。您也可通过停止 NetworkManager,手动满足网络接口的特定配置要求。
要停止 NetworkManager 守护程序,请使用以下命令:
>sudosystemctl stop network- 启动 NetworkManager 守护程序
如果您停止了该守护程序,现在需要重新启动它以管理所有网络连接,请使用以下命令:
>sudosystemctl start NetworkManager
4 创建网络连接 #
您可使用 nmcli 命令创建网络连接配置文件。
NetworkManager 会将所有网络配置存储为连接配置文件 - 这类文件是描述如何创建或连接到网络的数据集。默认情况下,这些连接配置文件以文件形式存储在 /etc/NetworkManager/system-connections/ 目录中。在该目录下,每种网络连接配置文件(Wi-Fi、以太网、VPN)均对应一个独立文件。
连接是某一连接配置文件的实例:当有设备使用该连接时,对应的配置文件实例即处于活跃状态。一台设备可配置多个连接配置文件。其他连接可用于从一个连接快速切换到另一个连接。例如,如果活跃连接不可用,NetworkManager 会尝试将设备连接到另一个已配置的连接。
NetworkManager 守护程序负责管理网络连接,您可通过命令行界面 nmcli 或 ncurses 界面 nmtui 与其交互。
4.1 创建以太网连接 #
使用 nmcli 命令配置以太网连接,然后执行以下步骤:
列出可用设备以获取准确的设备名称:
>nmcli device查看连接列表,确保您要使用的配置文件名称未被使用:
nmcli connection show
NetworkManager 会为每个网络接口控制器 (NIC) 创建一个配置文件。要将 NIC 连接到具有不同设置的网络,必须为每个网络创建单独的配置文件。
创建新的连接配置文件:
>sudonmcli connection add con-name CONNECTION_NAME ifname DEVICE_NAME type ethernet查看新连接配置文件的现有网络设置:
>nmcli connection show CONNECTION_NAME配置连接配置文件。一般命令语法如下:
>sudonmcli connection modify CONNECTION_NAMESETTINGVALUE例如,系统默认会启用自动 IP 地址分配(DHCP 或 SLAAC),而您可能希望配置静态 IP 地址:
对于 IPv4
>sudonmcli connection modify CONNECTION_NAME ipv4.method manual ipv4.addresses 192.0.2.1/24 ipv4.gateway 192.0.2.254 ipv4.dns 192.0.2.200 ipv4.dns-search example.com对于 IPv6
>sudonmcli connection modify INTERNAL-LAN ipv6.method manual ipv6.addresses 2001:db8:1::fffe/64 ipv6.gateway 2001:db8:1::fffe ipv6.dns 2001:db8:1::ffbb ipv6.dns-search example.com
激活配置文件:
>sudonmcli connection up CONNECTION_NAME验证配置:
验证 NIC 的 IP 设置:
>ip address show HOSTNAME验证默认 IPv4 网关:
>ip route show default验证默认 IPv6 网关:
>ip -6 route show default查看 DNS 设置:
>cat /etc/resolv.conf
4.2 创建 Wi-Fi 连接配置文件 #
您可使用 nmcli 命令连接 Wi-Fi。首次连接某个 Wi-Fi 时,NetworkManager 会自动创建一个新的连接配置文件。连接到该 Wi-Fi 后,您可对该配置文件进行配置。
启用 Wi-Fi 无线电功能:
>sudonmcli radio wifi on查看可用设备的列表:
>sudonmcli device连接到 Wi-Fi:
>sudonmcli device wifi connect WI-FI_CONNECTION_NAMEPASSWORD查看新连接配置文件的现有网络设置:
>sudonmcli connection show CONNECTION_NAME使用以下命令根据需要配置连接配置文件:
>sudonmcli connection modify CONNECTION_NAMESETTINGVALUE例如,要配置静态 IPv4,请使用:
>sudonmcli connection modify WI-FI_CONNECTION_NAME ipv4.method manual ipv4.addresses IP_ADDRESS/SUBNET_MASK要配置静态 IPv6 地址,请使用:
>sudonmcli connection modify WI-FI_CONNECTION_NAME ipv6.method manual ipv6.addresses IP_ADDRESS/SUBNET_MASK重启连接:
>sudonmcli connection up WI-FI_CONNECTION_NAME使用以下命令验证连接:
>nmcli connection show --active此时将显示可用活跃连接的列表。
4.3 创建网络绑定 #
网络绑定会将物理和虚拟网络接口组合起来,形成一个逻辑接口。您可在以太网设备、虚拟局域网等设施上创建网络绑定。网络绑定可以提高带宽和/或提供冗余。
网络连接:服务器上已配置两个或更多物理或虚拟网络
要包含在绑定设备中的现有网络接口
交换机支持,具体取决于绑定模式
要将以太网设备用于网络绑定,必须在服务器上安装物理或虚拟以太网设备。
当使用网络捆绑、网桥或 VLAN 设备作为绑定的端口时,您既可以在创建绑定的过程中创建这些设备,也可以提前创建。
不要将绑定跨多个交换机拆分部署。
在大多数硬件设置中,绑定设备中的所有网络接口必须连接到同一交换机。有关详细信息,请查阅交换机供应商文档。
IBM POWER:ibmveth 不支持绑定模式 5 和 6(
balance-tlb和balance-alb)。处于
tlb或alb模式的绑定驱动程序会发送同时包含源和目标 MAC 地址(显示为虚拟以太网 MAC 地址)的以太网环回包。POWER 固件不支持这些数据包。因此,ibmveth 不支持绑定模式 5 和 6。绑定和虚拟化绑定设备由多个网络接口构成。在大多数配置中,应仅在主机中配置绑定。之后,为 Guest 创建的虚拟接口会与绑定设备桥接,从而简化 Guest 的创建和部署流程。
虽然可以在 Guest 中配置绑定,但不建议这样做。如要在 Guest 中配置绑定,必须为 Guest 分配多个接口,且主机不得配置网络绑定。此外,还需谨慎配置主机及其网络桥接,避免在主机与 Guest 中同时使用网络绑定。
可以使用以下绑定模式:
()
数据包依次通过第一个到最后一个可用接口传输。提供容错和负载平衡。需要交换机支持。某些交换机在此模式下可能出现故障。
()
只有一个网络接口处于活动状态。如果它发生故障,另一个接口将变成活动状态。提供容错。这是默认模式。不需要特定的交换机支持。
()
流量会根据绑定设备中包含的接口数量在所有可用接口间拆分。提供容错和负载平衡。需要交换机支持。某些交换机在此模式下可能出现故障。
()
在所有接口上广播所有流量。提供容错。需要交换机支持。某些交换机在此模式下可能出现故障。如果可能,请改用模式 ,或者使用此模式通过将每个绑定成员连接到不同的交换机或设备来提供嗅探功能。
()
也称为 LACP。LACP 组中的所有接口都必须配置相同的速度和双工设置,并且必须连接到同一交换机。提供容错和负载平衡。需要接口驱动程序提供的
ethtool支持,以及支持 IEEE 802.3ad 动态链路聚合并进行了相应配置的交换机。如果您的交换机支持此模式,则这是首选模式。()
自适应传输负载平衡。提供容错和负载平衡。需要接口驱动程序中提供
ethtool支持。不需要特定的交换机支持,但某些交换机在此模式下可能出现故障。()
自适应负载平衡。提供容错和负载平衡。需要接口驱动程序中提供
ethtool支持。不需要特定的交换机支持,但某些交换机在此模式下可能出现故障。
请查阅您的硬件手册,检查您的交换机支持哪些模式。
有关各种模式的详细说明,请访问 https://www.kernel.org/doc/Documentation/networking/bonding.txt。
创建绑定接口:
>sudonmcli connection add type bond con-name NWBOND ifname NWBOND bond.options "mode=active-backup"系统即会创建使用
active-backup模式的网络绑定 NETWORK_BOND。查看网络接口列表:
>nmcli device status DEVICE TYPE STATE CONNECTION wlan0 wifi connected Vision virbr0 bridge connected (externally) virbr0 p2p-dev-wlan0 wifi-p2p disconnected -- eth0 ethernet unavailable -- lo loopback unmanaged --可用网络接口的列表即会显示。您还可以添加未配置到绑定的设备。在给定的列表中,
p2p-dev-wlan0未配置,而virbr0已配置且具有连接配置文件。要将
p2p-dev-wlan0配置为端口,请创建连接配置文件:>sudonmcli connection add type wifi-p2p slave-type bond con-name bond0-port1 ifname p2p-dev-wlan0 master bond0系统将为
p2p-dev-wlan0创建一个新配置文件并添加到bond0连接中。绑定的名称为bond0。要将
virbr0分配给绑定,请使用以下命令:>sudonmcli connection modify virbr0 master bond0virbr0的连接配置文件即会添加到bond0连接中。激活该连接:
>sudonmcli connection up virbr0配置 IPv4 设置:
要将
bond0用作其他设备的端口,请使用以下命令:>sudonmcli connection modify bond0 ipv4.method disabled要使用 DHCP,不需要进行任何配置。
要配置
bond0连接的静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器,请使用以下命令:>sudonmcli connection modify bond0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manual
配置 IPv6 设置:
要将此绑定设备用作其他设备的端口,请使用以下命令:
>sudonmcli connection modify bond0 ipv6.method disabled要使用无状态地址自动配置 (SLAAC),无需执行任何操作。
要设置
bond0连接的静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器,请使用以下命令:>sudonmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manual
激活该连接:
>sudonmcli connection up bond0查看并验证连接:
>nmcli device连接列表即会显示。
4.4 配置网络捆绑 #
网络捆绑通过将两个或多个网络接口组合成单个捆绑设备,来增加带宽和/或提供冗余。捆绑设备的行为通过捆绑模式配置。网络捆绑可以提高带宽和/或提供冗余。
网络连接
要包含在捆绑设备中的现有网络接口
内核中的交换机支持,具体取件于捆绑模式
已安装 libteam-tools 软件包
安装
teamd和NetworkManager-team软件包。>sudozypper install teamd>sudozypper install NetworkManager-team在服务器上安装两个或更多物理或虚拟设备:
要将以太网设备用作网络捆绑的端口,必须在服务器上安装物理或虚拟以太网设备,并将其连接到交换机。
要将绑定、网桥或 VLAN 设备用作网络捆绑的端口,可提前创建这些设备,也可在创建网络捆绑时同步创建。
不要将网络捆绑跨多个交换机拆分部署。
在大多数硬件设置中,捆绑设备中的所有网络接口必须连接到同一交换机。有关详细信息,请查阅交换机供应商文档。
捆绑和虚拟化:
捆绑设备由多个网络接口构成。在大多数配置中,应该只在主机中配置捆绑。之后,为 Guest 创建的虚拟接口会与捆绑设备桥接,从而简化 Guest 的创建和部署流程。
可以(但不建议)在 Guest 中配置捆绑。如要在 Guest 中配置网络捆绑,必须为 Guest 分配多个接口,且主机不得配置网络捆绑。此外,还需谨慎配置主机及其网络桥接,避免在主机与 Guest 中同时使用网络捆绑。
可以使用以下捆绑模式:
在所有接口上广播所有流量。提供容错。需要交换机支持。
数据包依次通过第一个到最后一个可用接口传输。提供容错和负载平衡。需要交换机支持。
只有一个网络接口处于活动状态。如果它发生故障,另一个接口将变成活动状态。提供容错。
捆绑设备通过其所有接口传输包,使用哈希函数执行负载平衡(被动或主动)。对于被动负载平衡,只使用 BPF 哈希函数。对于主动负载平衡,运行器通过在可用接口之间移动哈希来找到最佳平衡。提供容错和负载平衡。不需要特定的交换机支持。
LACP 组中的所有接口都必须配置相同的速度和双工设置,并且必须连接到同一交换机。提供容错和负载平衡。需要接口驱动程序提供的
ethtool支持,以及支持 IEEE 802.3ad 动态链路聚合并进行了相应配置的交换机。如果您的交换机支持此模式,则这是首选模式。
请查阅您的硬件手册,检查您的交换机支持哪些模式。
创建捆绑接口:
>sudonmcli connection add type team con-name CONNECTION_NAME ifname TEAM_NAME team.runner RUNNER-TYPE例如,要使用
activebackup运行程序创建网络捆绑team0,请运行:>sudonmcli connection add type team con-name team0 ifname team0 team.runner active.backup查看网络接口列表:
>nmcli device statusDEVICE TYPE STATE CONNECTION wlan0 wifi connected Vision virbr0 bridge connected (externally) virbr0 p2p-dev-wlan0 wifi-p2p disconnected -- eth0 ethernet unavailable -- lo loopback unmanaged --您可以将列出的设备添加到网络捆绑中。以下示例使用了
p2p-dev-wlan0和virbr0。可以看到,p2p-dev-wlan0未配置,而virbr0具有连接配置文件。为网络捆绑配置端口接口:
>sudonmcli connection add type wifi-p2p slave-type team con-name team0-port1 ifname p2p-dev-wlan0 master team0系统将为
p2p-dev-wlan0创建一个新配置文件并添加到team0连接中。将现有连接分配给该网络捆绑:
>sudonmcli connection modify bond0 master team0bond0的连接配置文件即会添加到team0连接中。激活该连接:
>sudonmcli connection up bond0配置 IPv4 设置:
要将此捆绑设备用作其他设备的端口,请使用以下命令:
>sudonmcli connection modify team0 ipv4.method disabled要使用 DHCP,不需要进行任何配置。
要配置
bond0连接的静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器,请运行以下命令:>sudonmcli connection modify team0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manual
配置 IPv6 设置:
要将此捆绑设备用作其他设备的端口,请使用以下命令:
>sudonmcli connection modify team0 ipv6.method disabled要使用无状态地址自动配置 (SLAAC),无需执行任何操作。
要设置
team0连接的静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器,请使用以下命令:>sudonmcli connection modify team0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manual
激活该连接:
>sudonmcli connection up team0要查看网络捆绑状态,请使用以下命令:
>sudoteamdctl team0 state
4.5 配置网桥 #
网桥是一种可将多个网段整合为单个网络,从而实现两个或多个网段间通讯的设备。
配置网桥前,请确保满足以下条件:
服务器上已安装两个或更多物理或虚拟设备。
要将以太网设备用作网桥的端口,请确保服务器上已安装物理或虚拟以太网设备,且这些设备已连接到交换机。
要将网络捆绑、绑定或 VLAN 设备用作网桥的端口,既可在创建网桥的过程中创建这些设备,也可提前创建。
创建网桥接口:
>sudonmcli connection add type bridge con-name CONNECTION_NAME ifname BRIDGE_NAME例如,我们通过运行以下命令创建了网桥
bridge0:>sudonmcli connection add type bridge con-name bridge0 ifname bridge0查看网络接口列表以验证是否已创建
bridge0:>nmcli device status DEVICE TYPE STATE CONNECTION wlan0 wifi connected Vision virbr0 bridge connected (externally) virbr0 p2p-dev-wlan0 wifi-p2p disconnected -- eth0 ethernet unavailable -- lo loopback unmanaged -- bridge0 bridge connecting (getting IP configuration) brdige0网桥处于 getting IP configuration 状态,因为您尚未为其分配接口。您稍后需分配接口:
p2p-dev-wlan0(未配置)和virbr0(已配置连接配置文件)。为网桥添加接口:
>sudonmcli connection add type wifi-p2p slave-type bridge con-name bridge0-port1 ifname p2p-dev-wlan0 master bridge0系统将为 p2p-dev-wlan0 创建一个新配置文件并添加到
bridge0连接中。将现有连接分配给该网桥:
>sudonmcli connection modify bond0 master bridge0bond0的连接配置文件即会添加到bridge0连接中。重启连接:
>sudonmcli connection up bond0配置 IPv4 设置:
要将此网桥设备用作其他设备的端口,请使用以下命令:
>sudonmcli connection modify bridge0 ipv4.method disabled要使用 DHCP,不需要进行任何配置。
要配置
bridge0连接的静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器,请使用以下命令:>sudonmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manual
配置 IPv6 设置:
要将此网桥设备用作其他设备的端口,请使用以下命令:
>sudonmcli connection modify bridge0 ipv6.method disabled要使用无状态地址自动配置 (SLAAC),无需执行任何操作。
要设置
bridge0连接的静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器,请使用以下命令:>sudonmcli connection modify bridge0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manual
激活该连接:
>sudonmcli connection up bridge0验证连接:
>nmcli device当您激活连接的任一端口时,NetworkManager 也会激活网桥,但不会激活网桥的其他端口。
启用网桥时自动启用所有端口:
>sudonmcli connection modify bridge0 connection.autoconnect-slaves 1查看作为特定网桥端口的以太网设备的链路状态。
>sudoip link show master bridge0查看作为任意网桥设备端口的以太网设备的状态。
>sudobridge link show
4.6 配置 VPN 连接 #
VPN(虚拟专用网络)连接是设备与另一网络之间通过互联网建立的安全加密隧道。
可以使用 nmcli 命令配置 VPN 连接。
安装 OpenVPN:
>sudozypper install networkmanager-openvpn创建 VPN 连接:
>sudonmcli connection add type vpn con-name MyOpenVPN ifname -- vpn-type openvpn配置设置:
>sudonmcli connection modify MyOpenVPN vpn.data "remote=VPN-SERVER-ADDRESS,username=YOUR-USERNAME">sudonmcli connection modify MyOpenVPN vpn.secrets "password=YOUR-PASSWORD"配置 DNS 设置:
>sudonmcli connection modify MyOpenVPN ipv4.dns "8.8.8.8 8.8.4.4"添加路由:
>sudonmcli connection modify MyOpenVPN ipv4.routes "192.168.1.0/24 192.168.1.1"激活 VPN 连接:
>sudonmcli connection up MyOpenVPN验证配置的连接是否处于活跃状态:
>nmcli connection show --active
5 修改网络连接 #
可以使用 nmcli connection modify 命令修改网络连接。该命令的一般语法如下:
>sudonmcli connection modify CONNECTION-NAME PROPERTY VALUE
要获取 CONNECTION-NAME 的值,请使用 nmcli connection show 命令列出连接。可用属性及其可能的值将在下一节中介绍。
5.1 连接属性 #
本节列出并介绍了您可以修改的连接属性:
| 属性 | 说明 | 值 |
|---|---|---|
| ipv4.method | 定义接口获取和处理其 IPv4 地址配置的方式 |
|
| ipv4.dns | 一系列以空格分隔的 DNS IP 地址 | 例如“8.8.8.8 8.8.4.4” |
| ipv4.gateway | 该属性是您的系统访问本地网络之外的其他网络时所使用的路由器地址 | 网关的 IP 地址 |
| connection.id | 用于重命名连接 | 表示新连接名称的字符串 |
| 802-11-wireless.ssid | 该属性用于重命名 Wi-Fi 网络 | 表示新 Wi-Fi SSID 的字符串 |
| connection.autoconnect | 设备联网时开启/关闭自动连接功能的切换开关 | on 或 off |
6 建立和终止网络连接 #
启用网络连接,以实现设备与资源的访问及连接。
6.1 启用网络连接 #
可能存在特定连接被禁用或所有连接均被禁用的情况。要激活所有连接,请运行以下命令:
>sudonmcli networking on
请注意,此命令不会激活手动禁用的连接。如要激活此类连接,请按照以下步骤操作:
查看现有连接的列表:
>sudonmcli connection show使用名称或 UUID 启用连接:
>sudonmcli connection up uuid CONNECTION-UUID检查连接状态:
>sudonmcli connection show --active
6.2 禁用网络连接 #
您可以使用 nmcli 命令禁用网络连接,从而使系统暂时与外部网络断开。
要禁用特定连接,请按照以下步骤操作:
查看活跃连接的列表:
>sudonmcli connection show --activeNAME UUID TYPE DEVICE Wired connection 2 7b0c32ee-851e-3015-a658-f4372b426273 ethernet enp6s0f3u1u4 lo 8041ed2a-e4ae-4bf7-a0db-d4b513b9d745 loopback lo virbr0 1bec1271-4bb6-46a7-a50a-4b329fa318d3 bridge virbr0 vnet0 ac196c81-0505-49f0-9328-b78e1746b4a9 tun vnet0终止特定连接:
>sudonmcli connection down CONNECTION-NAME/CONNECTION-UUID例如:
>sudonmcli connection down virbr0
要暂时禁用所有连接,请运行:
>sudonmcli networking off
上述两种情况下(启用所有连接、禁用特定连接),所做更改仅在系统重引导前有效。系统重引导后,NetworkManager 及连接将恢复活跃状态。
7 监视网络连接 #
使用 nmcli 命令可查看由 NetworkManager 管理的网络连接的状态、活动及详细信息。
下面列出了用于执行网络连接基本监控任务的命令。
- 查看活跃连接的列表
>nmcli connection show --active- 查看 NetworkManager 的状态
>nmcli monitor该命令将显示网络状态和连接的实时动态。
- 查看特定网络连接的详细信息
>nmcli connection monitor CONNECTION-NAME每次更改连接时,NetworkManager 就会列显一行。
- 监控网络设备的状态
>nmcli device monitor该命令将显示所有网络设备及其设备名称、类型、状态和连接名称的列表。
- 查看 Wi-Fi 连接的信号强度
>nmcli device wifi list该命令将显示可用 Wi-Fi 网络及其 SSID、信号强度(以 % 表示)和安全类型的列表。
8 NetworkManager 日志记录 #
NetworkManager 的活动由 journald 系统日志记录机制进行记录。NetworkManager 日志存储在 /var/log/syslog 中,可通过 journalctl 命令查看日志详细信息。
NetworkManager 记录的活动类型因当前日志记录级别而异。可用日志级别说明如下:
ERR:仅记录错误消息,例如连接失败。
WARN:记录警告与错误消息,例如身份验证问题。
INFO:记录通知性消息,是所有日志记录领域的默认级别。
DEBUG:记录详细的调试信息,例如详细的 DHCP 协商过程。
TRACE:记录极详细(通常不重要)的事件,例如数据包级别的详细信息。
要检查当前的日志记录级别,请运行:
>nmcli general loggingINFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY
输出显示所有领域的日志记录级别为 INFO — 这是默认设置。您可修改特定领域的日志记录级别,修改后命令仅会输出已修改的领域。
要修改所有领域的日志记录级别,请运行:
>sudogeneral logging level LEVEL domains ALL
例如,要将更改还原为默认设置,请运行:
>sudonmcli general logging level INFO domains ALL
要更改特定领域的日志记录级别,例如,要为 DNS 和 FIREWALL 设置 DEBUG 级别,请运行:
>sudonmcli general logging level DEBUG domains FIREWALL,DNS
下面列出了使用 journald 管理 NetworkManager 日志的命令。
- 查看日志
要查看 NetworkManager 日志,请运行:
>sudojournalctl -u NetworkManager要实时查看 NetworkManager 日志,请运行:
>sudojournalctl -u NetworkManager -f如果只想查看特定日志,请使用
grep过滤journalctl输出。例如,要查看与 DHCP 相关的日志,请运行:>sudojournalctl -u NetworkManager | grep DHCP- 保存日志
要将 NetworkManager 日志保存到文件中,例如保存到
networkmanager.log,请运行:>sudojournalctl -u NetworkManager > networkmanager.log要将特定时间的 NetworkManager 日志保存到文件中,例如保存到
networkmanager_timerange.log,请运行:>sudojournalctl -u NetworkManager --since "YYYY-MM-DD HH:MM:SS" --until "YYYY-MM-DD HH:MM:SS" > networkmanager_timerange.log要使用实时监控功能保存 NetworkManager 日志,并在日志生成时保存,请运行:
>sudojournalctl -u NetworkManager -f >> live_networkmanager.log
9 nmcli 命令参考信息 #
本节汇总了 nmcli 命令的选项和子命令,您可使用它们与 NetworkManager 守护程序交互以管理网络。
nmcli 命令的一般语法如下:
# nmcli OPTIONSSUBCOMMANDSUBCOMMAND_ARGUMENTS
其中,OPTIONS 已在第 9.1 节 “nmcli 命令选项”中予以介绍,SUBCOMMAND 可为下列其中一项:
-
connection 用于配置网络连接。有关详细信息,请参见第 9.2 节 “
connection子命令”。-
device 用于网络设备管理。有关详细信息,请参见第 9.3 节 “
device子命令”。-
general 显示状态和权限。有关详细信息,请参见第 9.4 节 “
general子命令”。-
monitor 监控 NetworkManager 的活动,以及监控连接和设备的状态变化。此子命令不采用任何参数。
-
networking 查询网络状态。有关详细信息,请参见第 9.5 节 “
networking子命令”。
9.1 nmcli 命令选项 #
除了子命令及其参数之外,nmcli 命令还可采用以下选项:
-
-a|--ask 该命令会停止运行以请求输入任何缺少的参数,例如,请求输入口令以连接到网络。
-
-c|--color {yes|no|auto} 控制颜色输出:
yes表示启用颜色,no表示禁用颜色,auto表示仅在将标准输出定向到终端时才创建颜色输出。-
-m|--mode {tabular|multiline} 在
tabular模式(每行描述一个条目,列定义条目的特定属性)和multiline模式(每个条目包含多行,每个属性单独占一行)之间切换。默认模式为tabular模式。-
-h|--help 列显帮助。
-
-w|--wait seconds 设置等待 NetworkManager 完成操作的超时期限。对于需要较长时间才能完成的命令(例如连接激活),建议使用此选项。
9.2 connection 子命令 #
使用 connection 命令可以管理连接或查看有关特定连接的任何信息。nmcli connection 提供以下命令来管理网络连接:
-
show 列出连接:
>nmcli connection show还可以使用此命令来显示有关指定连接的细节:
>nmcli connection show CONNECTION_ID其中 CONNECTION_ID 是任意标识符:连接名称、UUID 或路径
-
up 激活提供的连接。可以使用该命令来重新加载连接。在对连接执行任何更改后,也需要运行此命令。
>sudonmcli connection up [--active] [CONNECTION_ID]指定
--active后,只会显示活动配置文件。默认设置是同时显示活跃连接和静态配置。-
down 停用连接。
>sudonmcli connection down CONNECTION_ID其中,CONNECTION_ID 是任意标识符:连接名称、UUID 或路径
如果您停用连接,则稍后不会重新连接,即使该连接具有
autoconnect标志。-
modify 更改或删除连接的属性。
>sudonmcli connection modify CONNECTION_ID SETTING.PROPERTY PROPERTY_VALUE其中:
CONNECTION_ID 是任意标识符:连接名称、UUID 或路径
SETTING.PROPERTY 是属性的名称,例如
ipv4.addressesPROPERTY_VALUE 是 SETTING.PROPERTY 的所需值
以下示例停用
ethernet1连接的autoconnect选项:>sudonmcli connection modify ethernet1 connection.autoconnect no-
add 使用提供的细节添加连接。该命令的语法类似于
modify命令:>sudonmcli connection add CONNECTION_ID save YES|NO SETTING.PROPERTY PROPERTY_VALUE至少应指定
connection.type或使用type。以下示例会添加绑定到 DHCPeth0接口的以太网连接,并禁用该连接的autoconnect标志:>sudonmcli connection add type ethernet autoconnect no ifname eth0-
edit 使用交互式编辑器编辑现有连接。
>sudonmcli connection edit CONNECTION_ID-
clone 克隆现有连接。极简语法如下:
>sudonmcli connection clone CONNECTION_ID NEW_NAME其中 CONNECTION_ID 是要克隆的连接。
-
delete 删除现有连接:
>sudonmcli connection delete CONNECTION_ID-
monitor 监控提供的连接。每次更改连接时,NetworkManager 就会列显一行。
>sudonmcli connection monitor CONNECTION_ID-
reload 从磁盘重新加载所有连接文件。由于 NetworkManager 不会监控对连接文件执行的更改,因此每当您对文件进行更改时,都需要使用此命令。此命令不采用任何其他子命令。
-
load 要加载/重新加载特定的连接文件,请运行:
>sudonmcli connection load CONNECTION_FILE
有关上述命令的详细信息,请参见 nmcli 文档。
9.3 device 子命令 #
使用 device 子命令可以显示和管理网络接口。nmcli device 命令可识别以下命令:
-
status 列显所有设备的状态。
>nmcli device status-
show 显示有关设备的详细信息。如果未指定设备,则会显示所有设备。
>mcli device show [DEVICE_NAME]-
connect 连接设备。NetworkManager 会尝试查找可激活的适当连接。如果没有兼容的连接,则会创建新的配置文件。
>sudonmcli device connect DEVICE_NAME-
modify 对特定设备上处于活动状态的配置执行临时更改。更改不会存储在连接配置文件中。
>sudonmcli device modify DEVICE_NAME [+|-] SETTING.PROPERTY VALUE有关可能的 SETTING.PROPERTY 值,请参见 nm-settings-nmcli(5)。
以下示例在设备
con1上启动 IPv4 共享连接共享。>sudonmcli dev modify con1 ipv4.method shared-
disconnect 断开设备连接,并阻止设备在未经人工干预的情况下自动激活其他连接。
>sudonmcli device disconnect DEVICE_NAME-
delete 从系统中删除接口。可以使用该命令来仅删除绑定和网桥等软件设备。无法使用此命令删除硬件设备。
>sudonmcli device delete DEVICE_NAME-
wifi 列出所有可用的接入点。
>nmcli device wifi-
wifi connect 连接到按 SSID 或 BSSID 指定的 Wi-Fi 网络。该命令接受以下选项:
password- 安全网络的口令ifname- 用于激活的接口name- 可为连接命名
>sudonmcli device wifi connect SSID [password PASSWORD_VALUE] [ifname INTERFACE_NAME]要使用口令
pass$word2#@@连接到 Wi-Fi GUESTWiFi,请运行:>sudonmcli device wifi connect GUESTWiFi password pass$word2#@@
9.4 general 子命令 #
可以使用此命令查看 NetworkManager 状态和权限,以及更改主机名和日志记录级别。nmcli
general 可识别以下命令:
-
status 显示 NetworkManager 的整体状态。如果未为
nmcli general命令指定命令,则默认会使用 status。>nmcli general status-
hostname 如果未提供新主机名作为参数,则会显示当前主机名。如果指定了新主机名,则值将用于设置新主机名。
>sudonmcli general hostname [HOSTNAME]例如,要设置
MyHostname,请运行:>sudonmcli general hostname MyHostname-
permissions 显示您的 NetworkManager 操作(例如启用或禁用网络、修改连接等)权限。
>nmcli general permissions-
logging 显示和更改 NetworkManager 日志记录级别和域。在未指定任何参数的情况下,该命令会显示当前日志记录级别和域。
>sudonmcli general logging [level LEVEL domains DOMAIN]LEVEL 为以下任一值:
OFF、ERR、WARN、INFO、DEBUG或TRACE。DOMAIN 为如下所示的值列表:
PLATFORM、RFKILL、ETHER、WIFI、BT、MB、DHCP4、DHCP6、PPP、WIFI_SCAN、IP4、IP6、AUTOIP4、DNS、VPN、SHARING、SUPPLICANT、AGENTS、SETTINGS、SUSPEND、CORE、DEVICE、OLPC、WIMAX、INFINIBAND、FIREWALL、ADSL、BOND、VLAN、BRIDGE、DBUS_PROPS、TEAM、CONCHECK、DCB、DISPATCH、AUDIT、SYSTEMD、VPN_PLUGIN、PROXY。
9.5 networking 子命令 #
使用该子命令可以查询网络的状态。此外,使用此命令可以启用或禁用网络。nmcli networking 命令接受以下命令:
-
on/off 启用或禁用网络。
off命令停用 NetworkManager 管理的所有接口。>sudonmcli networking on- connectivity
显示网络连接状态。如果使用
check,NetworkManager 将执行新的状态检查。否则会显示上次检测到的状态。>nmcli networking connectivity可能的状态如下:
none:主机未连接到任何网络。
portal:主机位于强制门户之后,无法访问完整互联网。
limited:主机已连接到网络,但无法访问互联网。
full:主机已连接到网络,且可完全访问互联网。
unknown:NetworkManager 无法确定网络状态。
10 查错 #
了解如何调试和排除 NetworkManager 安装及配置过程中出现的问题。
10.1 网络未运行 #
如果网络无法正常工作,可能是由 NetworkManager 本身造成。如要检查这一情况,请按以下步骤操作:
检查 NetworkManager 是否已启用并处于活跃状态:
>sudosystemctl status network如果 NetworkManager 处于禁用状态,请将其启用:
>sudosystemctl enable NetworkManager如果 NetworkManager 处于非活跃状态,请将其重启:
>sudorestart NetworkManager
10.2 Wi-Fi 连接问题 #
如果您遇到 Wi-Fi 连接问题,请按照以下说明操作:
查看 Wi-Fi 连接的列表:
>sudonmcli device wifi list如果列出了特定设备,请确保其 Wi-Fi 连接处于活跃状态:
>sudonmcli connection show --active如果未列出 Wi-Fi 连接,请验证 Wi-Fi 状态:
>sudonmcli device status如果状态为
disconnected,则激活相应连接。>sudonmcli connection up CONNECTION_NAME如果状态为
unavailable,请重启 NetworkManager:>sudosystemctl restart NetworkManager
检查 NetworkManager 日志中的错误消息。
>sudojournalctl -u NetworkManager -n 100Wi-Fi 设备可能会被拦截:
检查设备是否被拦截:
>sudorfkill listphy0: Wireless LAN Soft blocked: yes Hard blocked: no取消拦截设备:
>sudorfkill unblock all
IPv4 静态地址可能配置错误,要检查这一情况,请重置为使用 DHCP:
>sudonmcli connection modify SSID ipv4.method auto尝试再次激活连接:
>sudonmcli connection up SSID尝试重新连接到 Wi-Fi 网络:
>sudonmcli device wifi connect SSID password PASSWORD
10.3 网络绑定问题 #
要排查网络绑定问题,请验证连接状态,检查绑定接口的状态,然后使用 nmcli 命令重启网络服务。
列出并查看连接状态:
nmcli connection status检查网络设备的状态,包括绑定接口。
nmcli device status检查
/proc/net/bonding/bond0中的绑定接口状态此文件提供了有关绑定模式、活跃从属设备的信息及其他相关详细信息。
如果连接处于非活跃状态,请激活连接:
nmcli con up connectionname根据需要修改连接。
nmcli con edit connectionname重启连接。
>sudonmcli connection up bond0
10.4 网络捆绑问题 #
验证 /var/log/messages 中与网络捆绑相关的错误消息。
您可以执行以下操作排查网络捆绑问题:分析设备和网络捆绑连接详细信息、启用被禁用的设备,以及根据需要修改绑定模式。进行更改后,请重新加载网络捆绑连接并重启 NetworkManager。
查看设备列表:
nmcli device查看网络捆绑连接详细信息:
nmcli connection show teamname启用接口:
nmcli connection modify teamname bond.options "mode=active-backup"重新加载网络捆绑连接:
nmcli connection reload teamname重启 NetworkManager。
>sudosystemctl restart NetworkManager.service
11 法律声明 #
版权所有© 2006–2025 SUSE LLC 和撰稿人。保留所有权利。
根据 GNU 自由文档许可证 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可证附带不可变部分。许可版本 1.2 的副本包含在“GNU Free Documentation License”部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。