จะปิดการใช้งานอินเทอร์เฟซเครือข่ายอย่างถาวรได้อย่างไร


22

ฉันได้นำอินเทอร์เฟซเครือข่ายมาลงด้วยifconfig wlan0 downแต่ทุกๆสองสามชั่วโมงหรือมากกว่านั้นwlan0อินเทอร์เฟซจะกลับมาและฉันไม่สามารถหาสาเหตุได้

/etc/network/interfaceฉันไม่ต้องรีสตาร์ทเครื่องไม่เคยเปลี่ยน ฉันเดาคำถามของฉันคือฉันจะปิดการใช้งาน "ถาวร" wlan0อย่างไร ฉันจะใช้/etc/network/interfaceหรือไม่ ผมมีอยู่แล้วในของฉันifconfig wlan0 downrc.local

คำตอบ:


32

วิธีที่ # 1 - จาก Applet ของ NetworkManager

ลองปิดการใช้งานเครือข่ายไร้สายภายใต้ Network Applet ที่สามารถเข้าถึงได้จากใต้ไอคอนที่มุมขวาบนของเดสก์ท็อปของคุณ

                                                    เอสเอส #!

หมายเหตุ:ไอคอนของแอปเพล็ตเครือข่ายมีลักษณะเป็นลิ่มสามเหลี่ยม ภาพด้านบนชี้ไปที่เป็นลูกศร # 1 หากคุณคลิกคุณจะเห็นเมนูเลื่อนออกมาจากตำแหน่งที่คุณสามารถปิดการใช้งานไร้สายอย่างถาวรได้ arrow # 2

วิธีที่ # 2 - / etc / network / interfaces

จากไฟล์/etc/network/interfacesคุณสามารถระบุว่า NetworkManager ไม่ควรควบคุมwlan0อินเทอร์เฟซ โดยเพิ่มบรรทัดนี้ไปยังไฟล์ที่กล่าวถึงข้างต้น:

iface wlan0 inet manual

จากนั้นรีสตาร์ท NetworkManager:

$ sudo service network-manager restart

อ้างอิง


1
วิธีที่ 1 ใช้งานได้เฉพาะถ้าคุณมีการ์ด wifi เพียงใบเดียว ...
xuhdev

0

ฉันต้องทำสิ่งที่คล้ายกับสิ่งนี้ แต่ต้องการให้อุปกรณ์ไม่มาเลย เราได้ทำการปิดบังพอร์ตอีเธอร์เน็ตในอุปกรณ์ที่ใช้ลินุกซ์ดังนั้นจึงไม่ควรปรากฏขึ้นเลย

ฉันทำสิ่งนี้ด้วยกฎของ udev

กฎ udev นี้จะบอก linux ให้ลบอุปกรณ์ pci เมื่อมีการเพิ่มอุปกรณ์เครือข่ายที่มี ID_NET_NAME_ONBOARD ของ eno2 /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 ที่นี่ ฉันได้คัดลอกตัวอย่างจากความคิดเห็นในไฟล์ด้านล่าง

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

คุณสามารถปิดการใช้งานอินเตอร์เฟซเครือข่ายอย่างถาวรโดยใช้ 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                                                                     
wpa_supplicant@wlan0.service                       loaded active running   WPA supplicant daemon (interface-specific version)                                                   

จากนั้นพาพวกเขาไปทีละคนลองดูว่าพวกเขาทำอะไร:

$ 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

หยุดและปิดการใช้งาน:

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

wpa_supplicant@wlan0.serviceตัวอย่างเช่นการปิดใช้งานจะมีผลกระทบที่ส่วนต่อประสาน wlan0 จะไม่พยายามเชื่อมต่อกับเครือข่ายไร้สาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.