重启 Network Manager Ubuntu

2025年03月17日 | 阅读 9 分钟

网络管理器简介

网络管理器可以定义为一个守护进程,它驻留在 libudev 和 Linux 内核的其他接口(以及一组其他守护进程)上,并为网络接口配置提供高级接口。它是一个专注于简化计算机网络使用的软件实用程序。它也适用于基于 Linux 和类 Unix 操作系统。

网络管理器的工作原理

已经集成了几种通信协议以使系统相互连接,例如 IEEE 802.3(以太网)、IEEE 802.11(无线)、IEEE 802.15.1(蓝牙)、PPPoA、PPPoE 等。所有参与的计算机都必须具有兼容的硬件,例如无线网卡或网卡,并且必须相应地配置硬件才能建立连接。

在任何单一内核的情况下,每个设备驱动程序都是其一部分。硬件通过其设备驱动程序使用(和配置)。在 Linux 的情况下,内核以设备文件形式表示所有设备驱动程序。每个设备文件都位于 /dev 目录中,并且设备文件已针对以太网硬件命名为 eth0、eth1 等。

自 systemd 以来,它们的名称不同:enp4s0 等。这种抽象被称为“一切皆文件”概念。在用户空间中,任何东西都通过其设备文件、用于配置硬件的配置实用程序以及 NTP/SSH/网页浏览器客户端等功能来使用硬件,以接收和发送网络数据包。

不使用网络管理器进行网络接口配置

在所有类 Unix 和 Linux 操作系统上,较新的 ip 和 ifconfig(通过 iproute2-bundle)用于配置 IEEE 802.11 和 IEEE 802.3 硬件。这些实用程序直接配置内核,并且配置会立即应用。用户需要在启动后再次配置它们。

为了在所有启动后应用相同的静态配置,使用了 PID1 程序:System V init 运行二进制程序和 shell 脚本,systemd 解析其 conf 文件(并运行程序)。对于网络接口,启动配置在 Linux Debian 发行版的 /etc/network/interfaces 中保存,在 Fedora 及其衍生版本的 /etc/sysconfig/network-scripts/ 中保存其 ifcfg 或衍生文件,并且 /etc/resolv.conf 用于存储 DNS 服务器。

/etc/sysconfig/network-scripts/ifcfg-*/etc/network/interfaces 可以定义要使用的 dhclient 或静态 IP 地址,并且也可以配置每种类型的 VPN。如果配置需要修改,DHCP 协议可以自动完成。

使用网络管理器进行网络配置接口

  • 网络管理器可通过 dbus 访问。
  • /etc/NetworkManager/NetworkManager.conf 用于存储配置。

尽管动态配置已成为一种更基本的配置(即存储在静态配置文件中,但从外部主机获取并在启动后可能修改),尤其是因为我们已经从大型物理服务器转向更灵活的主机,这些主机可能根据用户意愿插入/拔出(或从一个 WiFi 热点切换到另一个 WiFi 热点)。一个早期的协议,即 Bootp,曾用于此。

几个类 Unix 系统包含一个名为 dhclient 的程序来管理动态配置。相对而言,给定一个简单或静态动态配置,由 dhclient 更改的静态配置运行良好。但是,由于网络及其拓扑结构更加复杂,因此一个用于所有网络配置细节的中央管理器变得更加必要。

软件架构

网络管理器包含以下两个元素

  • 网络管理器守护进程:它是一个实际的软件,负责处理报告和连接网络修改。
  • 用于不同图形桌面环境的许多图形前端,例如 Cinnamon、KDE Plasma Workspaces、GNOME Panel、GNOME Shell 等。
    这两个元素由开发人员预先确定为合理便携,并且小程序适用于运行 System Tray Protocol(即 org)的桌面环境,包括 Xfce、Enlightenment (软件)、KDE Plasma Workspaces 和 GNOME。

应用程序可以指定为 “link-aware” 或完全替代给定的小程序,因为元素通过 D-Bus 进行通信。KNetworkManager 是一个示例,它是 Novell 为 SUSE Linux 集成的网络管理器前端。

命令行和图形前端接口

  • nm-applet:对于网络管理器,它是一个 GNOME 小程序。
  • nmcli:它是网络管理器中内置的命令行接口,于 2010 年添加。它还允许显示网络管理器监视连接,管理设备和连接以及当前状态。
  • nmtui:它是一个基于文本的用户界面(内置),于 2010 年添加。相对而言,它比 nmcli 更常见,后者只允许用户编辑/添加连接、启用连接和设置系统主机名。
  • cnetworkmanager:对于 NetworkManager,它是一个命令行接口。
  • 移动宽带配置助手:2008 年 4 月,Antti Kaijanmaki 宣布为 NetworkManager 开发移动宽带配置助手;它在 NetworkManager 的 0.7.0 版本中出现。与 mobile-broadband-provider-info 软件包一起,连接很容易配置。

网络管理器历史

2004 年,Red Hat 启动了 NetworkManager 项目,旨在使 Linux 用户更有效地应对现代网络需求,特别是无线网络。网络管理器采用一种机会主义的网络选择方法,尝试应用最佳连接,因为可能出现中断或用户在无线网络之间漫游。

它选择以太网连接作为“已知”无线网络的替代,优先于用户从未连接过的带有 SSID 的无线网络。根据需要,系统会要求用户提供 WPA 或 WEP 密钥。

该项目是最初广泛使用 HAL 和 D-Bus 的主要 Linux 桌面元素之一。自 2009 年 6 月起,网络管理器不再依赖 HAL,并且自 0.9.10 版本起,它也不需要 D-Bus 守护进程在 root 操作时运行。

面向管理员的网络管理器

  • 架构
    网络管理器默认设计为完全自动化。它处理主要的网络连接和其他网络接口,例如移动宽带设备、Wi-Fi 和以太网。要使用它,必须启动网络管理器服务。
    网络管理器的启动取决于我们正在使用的发行版,但网络管理器附带 systemd 服务文件,可以在几乎所有发行版上实现这一点。网络管理器将自动启动其他服务,因为它需要它们(移动宽带的 pppd 和 802.1x 和 WPA 连接的 wpa_supplicant)。
  • 安全性
    网络管理器支持几乎所有网络安全协议和方法,WPA/WPA2/WPA3(企业版和个人版)、有线 802.1x、VPN 和 MACsec。
    网络管理器使用安全存储来保存网络机密(登录信息和加密密钥),可以是用户密钥环中(用于用户特定连接),也可以通过通用系统管理员权限(例如 root)保护(用于系统范围连接)。可以使用 polkit 锁定几个网络任务,以对网络连接进行更精细的控制。
  • 配置文件
    网络管理器的配置文件是 NetworkManager.conf。它用于设置网络管理器行为的多个方面。
    如果我们的发行版包提供了 NetworkManager.conf 的默认值,我们不应修改它,因为我们的修改可能会被包更新覆盖。相反,我们可以在 /etc/NetworkManager/conf.d 目录中添加带有 .conf 扩展名的额外文件。它们将按顺序读取,后来的文件会覆盖之前的文件。
    软件包可能会将配置片段安装到 /usr/lib/NetworkManager/conf.d 目录。此目录甚至在 NetworkManager.conf 之前首先被解析。此外,脚本可以将每个引导配置放入 /run/NetworkManager.conf.d 目录。此目录在 NetworkManager.conf 之前第二个被解析。
  • VPN
    网络管理器包含对 VPN 应用程序的可插拔支持,包括兼容 Cisco 的 VPN、openvpn 和 PPTP(点对点隧道协议)。欢迎支持其他 VPN 客户端。
    我们只需下载我们的站点使用的网络管理器 VPN 插件,并预加载用户的机器与 VPN 设置。用户在首次连接时将被提示输入密码。
  • 类似服务器的行为
    默认情况下,网络管理器会自动为所有没有其他候选连接的以太网设备建立一个新的内存中连接。这些新连接的名称,例如 “Wired connection 1”、“Wired connection 2” 等;它们启用了 IPv6 和 DHCPv4 自动配置。
    通常,这种行为在服务器上并不令人满意,因为每个接口都应该明确配置。要禁用此类自动连接的建立,我们可以将 no-auto-default=* 添加到配置部分,即 [main]
    网络管理器还需要接口上的载波才能启用任何连接。如果在启动期间有任何服务需要绑定到接口地址,则当接口没有载波时,它可能会失败。解决方案是在 [main] 部分中使用 ignore-carrier=* 配置选项来禁用载波检测。

注意:RHEL 和 Fedora 上有一个名为 NetworkManager-config-server 的软件包,它使用上面提到的两个选项安装配置片段。

在 Ubuntu 上重启网络

在很多情况下,我们可能需要在 Ubuntu 上重启网络。这可能是由于网络设置被修改。也可能是因为网络连接运行异常。每当系统出现问题时,基本的处理方法就是重新启动。但是,如果问题与我们的网络相关,那么只重启网络是可能的。

在本文中,我们将讨论如何在 Ubuntu 上重启网络。我们可以通过多种方法在 Ubuntu 中重启网络。它可以直接从终端或 GUI 执行。根据我们的喜好,我们可以选择适合我们的一种。

通过桌面重启网络

  • 我们需要按下屏幕右上角的网络图标。
    Restart Network Manager Ubuntu
  • 选择网络连接并点击 “关闭”。它将关闭网络连接。
  • 要再次启用它,请执行类似的过程。这次将有一个不同的 “连接” 选项。按下 “连接” 选项以重新创建网络连接。
    Restart Network Manager Ubuntu

通过 GNOME 设置重启网络

  • 我们也可以直接通过 GNOME “设置” 来完成。
    Restart Network Manager Ubuntu
  • 从左侧面板选择 “网络” 选项。
    Restart Network Manager Ubuntu

通过 CLI 重启网络

在使用 CLI 时有多种操作方式。我们可以对任何网络管理器服务采取行动,或应用其他工具,例如 nmtui、ifup、nmcli 等。

重启网络管理器服务

  • 这是重启网络服务最简单的方法之一。它等同于上面演示的图形技术。
  • 我们需要打开终端窗口并执行以下命令

Restart Network Manager Ubuntu

使用 systemd 重启网络服务

Systemd 为系统提供了一系列系统元素。其中一部分是管理服务。旧方法只是此技术的替代。Systemd 被直接告知重启服务,而不是进行任何繁琐的步骤。

我们可以运行以下命令来完成此操作


Restart Network Manager Ubuntu

使用 nmcli 重启网络

这个工具是一个强大的工具,用于管理 Linux 中的网络连接。由于其易用性,它在系统管理员中很受欢迎。

首先,我们需要使用以下命令关闭网络连接


Restart Network Manager Ubuntu

然后,使用以下命令再次打开它


Restart Network Manager Ubuntu

使用 ifdown 和 ifup 重启网络

ifdown 和 ifup 命令直接管理网络接口。它是 Linux 中最常见的网络命令之一。命令 ifdown 关闭所有网络接口,命令 ifup 开启它们。

ifdown 和 ifup 命令由 ifupdown 软件包提供。它默认不随 Ubuntu 提供。它直接通过 Ubuntu 官方仓库提供。我们可以从那里安装它们。


Restart Network Manager Ubuntu

安装过程完成后,我们可以执行网络重启过程。

将这两个命令合并到一行是一个好习惯。

使用 nmtui 重启网络

这是另一个在系统管理员中广受欢迎的网络管理工具。它提供了一种交互式处理网络连接的方式,与许多 CLI 工具不同,它与 GUI 方法相同。

默认情况下,它随 Ubuntu 20.04 版本提供。我们可以使用以下命令启动该工具

我们可以使用箭头键导航工具。选择 “激活连接” 选项。


Restart Network Manager Ubuntu

我们将进入一个屏幕,其中包含所有网络连接的列表。选择正确的连接,然后选择 “停用” 选项。


Restart Network Manager Ubuntu

停用后,我们可以激活连接。


Restart Network Manager Ubuntu

网络已成功重启。我们可以退出应用程序。


Restart Network Manager Ubuntu

使用 IP 命令重启网络

IP 命令是处理 Linux 中网络连接的强大方法。它可用于重启网络连接。此技术适用于所有 Linux 发行版。

要使用 IP 命令,我们需要了解目标网络接口。我们可以使用以下命令来了解网络接口


Restart Network Manager Ubuntu