如何永久禁用网络管理器?

Ars*_*nko 28 network-manager

我正在使用 Ubuntu 18.04.1 LTS。我想在 Ubuntu 机器上禁用网络管理器,因为 (1) 我不需要它,(2) 我更喜欢硬编码配置,以及 (3) 网络管理器经常通过更改 DHCP 配置引起问题。

我试图按照官方文档:

停止网络管理员

sudo systemctl stop NetworkManager.service
Run Code Online (Sandbox Code Playgroud)

禁用网络管理器(永久)以避免它在重新启动后重新启动

sudo systemctl disable NetworkManager.service
Run Code Online (Sandbox Code Playgroud)

尽管如此,每次我重新启动机器时,网络管理员都会再次回来。

我怎样才能让它消失?

N0r*_*ert 26

该方法取决于桌面环境:

  • 对于 Ubuntu MATE 18.04 LTS 和 20.04 LTS 清除network-manager包是安全的。你可以简单地运行:

    sudo apt-get purge network-manager
    
    Run Code Online (Sandbox Code Playgroud)
  • 对于带有 GNOME 桌面清除network-manager包的Ubuntu 18.04 LTS 和 20.04 LTS,也将清除ubuntu-desktop和gnome-control-center(GNOME 桌面的基本部分)。所以这不是一个选择。

    在这里,您应该禁用 NetworkManager 服务(正如您已经完成的那样):

    sudo systemctl stop NetworkManager.service
    sudo systemctl disable NetworkManager.service
    
    Run Code Online (Sandbox Code Playgroud)

    以及另外三项服务:

    sudo systemctl stop NetworkManager-wait-online.service
    sudo systemctl disable NetworkManager-wait-online.service
    
    sudo systemctl stop NetworkManager-dispatcher.service
    sudo systemctl disable NetworkManager-dispatcher.service
    
    sudo systemctl stop network-manager.service
    sudo systemctl disable network-manager.service
    
    Run Code Online (Sandbox Code Playgroud)

    然后重新启动。


笔记:

  1. 您可以/etc/network/interfaces从Ubuntu 16.04 LTS Server Guide阅读有关网络配置的更多信息。
  2. 现代 Ubuntu 18.04 LTS 服务器使用netplan,您可以在Ubuntu 18.04 LTS 服务器指南中阅读它。


abu*_*bua 8

试试mask命令:

sudo systemctl stop NetworkManager.service
sudo systemctl mask NetworkManager.service
Run Code Online (Sandbox Code Playgroud)

面具名称...

屏蔽一个或多个单位,如命令行中所指定。这会将这些单元文件链接到 /dev/null,从而无法启动它们。
这是禁用的更强版本,因为它禁止各种类型的单元激活,包括启用和手动激活。请谨慎使用此选项。这使 --runtime 选项仅暂时屏蔽,直到系统下次重新启动。
--now 选项可用于确保单元也已停止。此命令只需要有效的单元名称,它不接受单元文件路径。