web-dev-qa-db-ja.com

ネットワークインターフェイスを完全に無効にする方法は?

ifconfig wlan0 downを使用してネットワークインターフェースを停止しましたが、数時間ごとにwlan0インターフェースが復旧し、その理由がわかりません。

マシンを再起動せず、/etc/network/interfaceを変更しませんでした。私の質問は、wlan0を「永久に」無効にするにはどうすればよいでしょうか。 /etc/network/interfaceを使用しますか? ifconfig wlan0 downはすでにrc.localにあります。

22
Uxonith

方法#1-NetworkManagerのアプレットから

デスクトップの右上にあるアイコンの下からアクセスできるネットワークアプレットでワイヤレスネットワークを無効にしてみてください。

ss #!

注:ネットワークアプレットのアイコンは、三角形のくさびのように見えます。上の画像は矢印#1のようです。クリックすると、ワイヤレスを永久に無効にできるメニュースライドが表示されます(矢印#2)。

方法#2-/ etc/network/interfaces

ファイル/etc/network/interfacesから、NetworkManagerがwlan0インターフェースを制御しないように指定できます。これを行うには、上記のファイルに次の行を追加します。

iface wlan0 inet manual

次に、NetworkManagerを再起動します。

$ Sudo service network-manager restart

参考文献

32
slm

Systemdを使用してネットワークインターフェースを永久に無効にすることができます。たとえば、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                                                                     
[email protected]                       loaded active running   WPA supplicant daemon (interface-specific version)                                                   

次に、彼らを一人ずつ連れて行き、彼らが何をするかチェックしてください:

$ systemctl status [email protected][email protected] - WPA supplicant daemon (interface-specific version)
   Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
   Active: active

それらを停止して無効にします。

$ Sudo systemctl stop [email protected]
$ Sudo systemctl disable [email protected]

たとえば、[email protected]を無効にすると、wlan0インターフェイスがワイヤレスネットワークに接続しようとしないという効果があります。

0
aleb

私はこれと同様のことをしなければなりませんでしたが、デバイスがまったく起動しないようにしたかったのです。 Linuxベースのデバイスのイーサネットポートを物理的に覆ったため、まったく表示されないはずです。

私はこれをudevルールで行いました。

このudevルールは、eno2のID_NET_NAME_ONBOARDを持つネットワークデバイスが追加されると、pciデバイスを削除するようにlinuxに指示します。に追加します。 /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'"

ID_NET_NAME_ONBOARDのような魔法の環境変数は、udev here によって設定されます。以下のファイルのコメントからいくつかの例をコピーしました。

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

ルールをテストするときは、次のようなコマンドを実行して、すべてが一致し、構文が正しいことを確認する必要があります。

# 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
Harry Mallon