Làm thế nào để vô hiệu hóa vĩnh viễn một giao diện mạng?


22

Tôi đã đưa xuống một giao diện mạng ifconfig wlan0 down, nhưng cứ sau vài giờ, wlan0giao diện lại xuất hiện và tôi không thể hiểu tại sao.

Tôi không khởi động lại máy, không bao giờ thay đổi /etc/network/interface. Tôi đoán câu hỏi của tôi là, làm thế nào để tôi vô hiệu hóa "vĩnh viễn" wlan0. Tôi có sử dụng /etc/network/interfacekhông? Tôi đã có ifconfig wlan0 downtrong tôi rc.local.

Câu trả lời:


32

Phương pháp số 1 - từ Applet của NetworkManager's

Hãy thử vô hiệu hóa mạng không dây trong Ứng dụng mạng có thể truy cập từ bên dưới các biểu tượng ở phía trên bên phải màn hình của bạn.

                                                    ss #!

LƯU Ý: Biểu tượng của applet mạng trông giống như một hình nêm tam giác. Hình ảnh trên được trỏ đến là mũi tên số 1. Nếu bạn nhấp vào nó, bạn sẽ thấy một menu trượt ra từ nơi bạn có thể tắt không dây vĩnh viễn, mũi tên # 2.

Phương pháp # 2 - / etc / mạng / giao diện

Từ tệp /etc/network/interfacesbạn có thể chỉ định rằng NetworkManager không nên kiểm soát wlan0giao diện. Để làm như vậy chỉ cần thêm dòng này vào tệp đã đề cập ở trên:

iface wlan0 inet manual

Sau đó khởi động lại Trình quản lý mạng:

$ sudo service network-manager restart

Tài liệu tham khảo


1
Phương pháp 1 chỉ hoạt động nếu bạn chỉ có một thẻ wifi ...
xuhdev

0

Tôi đã phải làm một cái gì đó tương tự như thế này nhưng muốn thiết bị không xuất hiện chút nào. Chúng tôi đã che đậy một cách vật lý một cổng ethernet trong một thiết bị dựa trên linux và vì vậy nó hoàn toàn không xuất hiện.

Tôi đã làm điều này với các quy tắc udev.

Quy tắc udev này sẽ yêu cầu linux xóa thiết bị pci khi thiết bị mạng có ID_NET_NAME_ONBOARD của eno2 được thêm vào. Thêm nó vào ví dụ /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'"

Các biến môi trường ma thuật như ID_NET_NAME_ONBOARD được đặt bởi udev tại đây . Tôi đã sao chép một số ví dụ từ nhận xét trong tập tin dưới đây.

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

Khi kiểm tra các quy tắc của bạn, bạn sẽ cần chạy một lệnh như sau để đảm bảo mọi thứ đều khớp và cú pháp đúng.

# 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

Bạn có thể vô hiệu hóa vĩnh viễn giao diện mạng bằng systemd. Ví dụ: nếu bạn muốn tắt 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)                                                   

Tiếp theo đưa họ từng người một, kiểm tra xem họ làm gì:

$ 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

Dừng và vô hiệu hóa chúng:

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

wpa_supplicant@wlan0.serviceVí dụ, vô hiệu hóa sẽ có tác dụng là giao diện wlan0 sẽ không cố gắng kết nối với mạng không dây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.