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

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-desktopgnome-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/interfacesUbuntu 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 选项可用于确保单元也已停止。此命令只需要有效的单元名称,它不接受单元文件路径。