Wie kann ich eine Netzwerkschnittstelle dauerhaft deaktivieren?


22

Ich habe eine Netzwerkschnittstelle mit heruntergefahren ifconfig wlan0 down, aber alle paar Stunden wird die wlan0Schnittstelle wieder hochgefahren und ich kann nicht herausfinden, warum.

Ich starte die Maschine nicht neu, habe mich nie verändert /etc/network/interface. Ich denke, meine Frage ist, wie ich vorgehen würde, um nur "dauerhaft" zu deaktivieren wlan0. Muss ich verwenden /etc/network/interface? Ich habe schon ifconfig wlan0 downin meinem rc.local.

Antworten:


32

Methode 1 - aus dem NetworkManager-Applet

Deaktivieren Sie das drahtlose Netzwerk unter dem Netzwerk-Applet, auf das Sie über die Symbole oben rechts auf Ihrem Desktop zugreifen können.

                                                    ss #!

HINWEIS: Das Symbol des Netzwerk-Applets sieht aus wie ein Dreieckskeil. Das Bild oben zeigt auf als Pfeil # 1. Wenn Sie darauf klicken, wird ein Menü eingeblendet, in dem Sie die drahtlose Verbindung dauerhaft deaktivieren können (Pfeil 2).

Methode 2 - / etc / network / interfaces

In der Datei können /etc/network/interfacesSie festlegen, dass NetworkManager die wlan0Schnittstelle nicht steuern soll . Fügen Sie dazu einfach diese Zeile in die oben genannte Datei ein:

iface wlan0 inet manual

Starten Sie anschließend NetworkManager neu:

$ sudo service network-manager restart

Verweise


1
Methode 1 funktioniert nur, wenn Sie nur eine WLAN-Karte haben ...
Xuhdev

0

Ich musste etwas Ähnliches tun, wollte aber, dass das Gerät überhaupt nicht funktioniert. Wir haben einen Ethernet-Port in einem Linux-basierten Gerät physisch vertuscht und so sollte er überhaupt nicht erscheinen.

Ich habe das mit udev-Regeln gemacht.

Diese udev-Regel weist Linux an, das PCI-Gerät zu entfernen, wenn ein Netzwerkgerät mit der ID_NET_NAME_ONBOARD von eno2 hinzugefügt wird. Fügen Sie es zB hinzu /etc/udev/rules.d/90-disable-eno2.rules.

ACTION=="add", SUBSYSTEM=="net", ENV{ID_NET_NAME_ONBOARD}=="eno2", RUN+="/bin/sh -c 'echo 1 > /sys$DEVPATH/device/remove'"

Die magischen Umgebungsvariablen wie ID_NET_NAME_ONBOARD werden hier von udev gesetzt . Ich habe einige Beispiele aus dem Kommentar in dieser Datei unten kopiert.

PCI Ethernet card with firmware index "1":
    ID_NET_NAME_ONBOARD=eno1
    ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1

PCI Ethernet card in hotplug slot with firmware index number:
    /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1
    ID_NET_NAME_MAC=enx000000000466
    ID_NET_NAME_PATH=enp5s0
    ID_NET_NAME_SLOT=ens1

PCI Ethernet multi-function card with 2 ports:
    /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0
    ID_NET_NAME_MAC=enx78e7d1ea46da
    ID_NET_NAME_PATH=enp2s0f0
    /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1
    ID_NET_NAME_MAC=enx78e7d1ea46dc
    ID_NET_NAME_PATH=enp2s0f1

PCI wlan card:
    /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0
    ID_NET_NAME_MAC=wlx0024d7e31130
    ID_NET_NAME_PATH=wlp3s0

USB built-in 3G modem:
    /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6
    ID_NET_NAME_MAC=wwx028037ec0200
    ID_NET_NAME_PATH=wwp0s29u1u4i6

USB Android phone:
    /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2
    ID_NET_NAME_MAC=enxd626b3450fb5
    ID_NET_NAME_PATH=enp0s29u1u2

s390 grouped CCW interface:
    /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0
    ID_NET_NAME_MAC=enx026d3c00000a
    ID_NET_NAME_PATH=encf5f0

Wenn Sie Ihre Regeln testen, müssen Sie einen Befehl wie den folgenden ausführen, um sicherzustellen, dass alles übereinstimmt und die Syntax korrekt ist.

# Find the path marked "P" with this command.
udevadm info --path=/sys/class/net/eno2

# Test with this command with the path from above
udevadm test --action="add" /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eno2 2>&1 | less

0

Sie können eine Netzwerkschnittstelle mit systemd dauerhaft deaktivieren. Zum Beispiel, wenn Sie deaktivieren möchten wlan0:

$ systemctl | grep wlan0
sys-devices-platform-soc-XXX.auto-net-wlan0.device loaded active plugged   /sys/devices/platform/soc/XXX.auto/net/wlan0
sys-subsystem-net-devices-wlan0.device             loaded active plugged   /sys/subsystem/net/devices/wlan0                                                                     
wpa_supplicant@wlan0.service                       loaded active running   WPA supplicant daemon (interface-specific version)                                                   

Nehmen Sie sie als Nächstes nacheinander in die Hand und sehen Sie sich an, was sie tun:

$ systemctl status wpa_supplicant@wlan0.service
● wpa_supplicant@wlan0.service - WPA supplicant daemon (interface-specific version)
   Loaded: loaded (/lib/systemd/system/wpa_supplicant@.service; disabled; vendor preset: enabled)
   Active: active

Beenden und deaktivieren Sie sie:

$ sudo systemctl stop wpa_supplicant@wlan0.service
$ sudo systemctl disable wpa_supplicant@wlan0.service

Das Deaktivieren wpa_supplicant@wlan0.servicevon beispielsweise hat zur Folge, dass die wlan0-Schnittstelle nicht versucht, eine Verbindung zum drahtlosen Netzwerk herzustellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.