Jak mogę na stałe wyłączyć menedżera sieci?

18

Używam Ubuntu 18.04.1 LTS. Chcę wyłączyć menedżera sieci na komputerze Ubuntu, ponieważ (1) nie potrzebuję go, (2) wolę konfigurację na stałe, a (3) menedżer sieci regularnie powoduje problemy przez zmianę konfiguracji DHCP.

Próbowałem postępować zgodnie z oficjalną dokumentacją :

Zatrzymaj menedżera sieci

sudo systemctl stop NetworkManager.service

Wyłącz menedżera sieci (na stałe), aby uniknąć jego ponownego uruchomienia po ponownym uruchomieniu

sudo systemctl disable NetworkManager.service

Mimo to menedżer sieci powraca za każdym razem, gdy ponownie uruchamiam komputer.

Jak mogę to zrobić?

Arseni Mourzenko
źródło
1
Czy istnieje powód, dla którego nie można po prostu odinstalować NM?
user535733,
Czego chcesz używać zamiast NetworkManager - netplan jak na serwerze ?
N0rbert,
@ user535733: Nie wiedziałem, że można odinstalować menedżera sieci. Sprawdzę to.
Arseni Mourzenko,
2
@ N0rbert: tylko zakodowana konfiguracja w / etc / network / interfaces oraz w /etc/resolv.conf. Nie wiem, czy istnieje na to oficjalna nazwa.
Arseni Mourzenko,
@ArseniMourzenko Jakie jest Twoje środowisko pulpitu? Jeśli jest to GNOME, to usunięcie menedżera sieci usunie centrum kontroli gnome, które jest istotną częścią GNOME.
N0rbert,

Odpowiedzi:

20

Metoda zależy od środowiska pulpitu:

  • W przypadku systemu Ubuntu MATE 18.04.1 network-managerpakiet czyszczenia LTS jest bezpieczny. Możesz po prostu uruchomić:

    sudo apt-get purge network-manager
    
  • W przypadku Ubuntu 18.04.1 LTS z network-managerpakietem do czyszczenia pulpitu GNOME zostanie również wyczyszczony ubuntu-desktopi gnome-control-center(niezbędna część pulpitu GNOME). To nie jest opcja.

    W tym miejscu powinieneś wyłączyć usługę NetworkManager (jak już to zrobiłeś):

    sudo systemctl stop NetworkManager.service
    sudo systemctl disable NetworkManager.service
    

    i jeszcze trzy usługi:

    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
    

    a następnie uruchom ponownie.


Uwagi:

  1. Możesz przeczytać więcej na temat konfiguracji sieci z /etc/network/interfacesod Ubuntu 16.04 LTS Server Guide .
  2. Współczesne zastosowania serwera Ubuntu 18.04 LTS netplanmożna przeczytać o nim w Przewodniku serwera Ubuntu 18.04 LTS .
N0rbert
źródło
Zawsze oczyszczam NetworkManagera jako jeden z moich pierwszych kroków po instalacji - od co najmniej 14. Być może ten problem z usunięciem pulpitu był błędem?
Stephen Boston,
Nie błąd, ale problem zależności.
N0rbert
Czy to zostało rozwiązane? Czy jest różnica między naszymi repozytoriami? Nie miałem doświadczenia, które relacjonujesz z oczyszczania NM. Odkryłem, że niektóre aplikacje zakładają, że NM jest zainstalowany i aktywny, ale żadna z nich nie była wyjątkowa ani niezbędna.
Stephen Boston,
Dla mnie problem nadal występuje. Testowane na minimalnej maszynie wirtualnej LTS 18,04 z sudo apt-get install ubuntu-desktop^następującą po niej sudo apt-get purge network-manager.
N0rbert,
Jak bardzo dziwnie! Miałem maszynę wirtualną 19.10, z którą jeszcze nie grałem, więc NM był nadal zainstalowany. Wyczyściłem go, uruchomiłem aktualizację i aktualizację, a pulpit działa idealnie. Widziałem, że aktualizacja myśli o aktualizacji NM, ale po ponownym uruchomieniu nadal nie jest zainstalowana.
Stephen Boston,
7

Spróbuj wykonać maskpolecenie:

sudo systemctl stop NetworkManager.service
sudo systemctl mask NetworkManager.service

maska ​​NAZWA ...

Zamaskuj jedną lub więcej jednostek, jak podano w wierszu poleceń. Spowoduje to połączenie tych plików jednostek z / dev / null, uniemożliwiając ich uruchomienie.
Jest to silniejsza wersja wyłączania, ponieważ zabrania wszelkiego rodzaju aktywacji urządzenia, w tym włączania i aktywacji ręcznej. Korzystaj z tej opcji ostrożnie. To honoruje opcję --runtime polegającą na tymczasowym maskowaniu tylko do następnego ponownego uruchomienia systemu.
Opcji --now można użyć do zapewnienia, że ​​jednostki również zostaną zatrzymane. To polecenie oczekuje tylko prawidłowych nazw jednostek, nie akceptuje ścieżek plików jednostek.

abu_bua
źródło