วิธีการเปลี่ยนชื่ออินเตอร์เฟซ USB wifi (จาก wlxXXXXXXXXXXXXX เป็น wlanX)?


9

ด้วย Ubuntu 16.04 อินเตอร์เฟซ USB wifi ตอนนี้ wlxXXXXXXXXXXXX โดยที่ X เป็นตัวเลขของที่อยู่ mac ของอุปกรณ์ (นโยบายชื่ออินเทอร์เฟซที่คาดเดาได้) ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้สามารถหาได้ที่นี่: systemd: PredictableNetworkInterfaceNames

จริง ๆ แล้วการตั้งชื่ออินเตอร์เฟสทั้งหมดได้เปลี่ยนไป แต่ฉันก็สามารถย้อนกลับไปสู่สมัยนิยม (ethX สำหรับอินเตอร์เฟสอีเธอร์เน็ต, wlanX สำหรับการ์ด wifi inetrnal wifi) แก้ไข/ etc / default / grubตามที่แนะนำในกระทู้ที่สามของชื่อเน็ตเวิร์กอินเตอร์เฟส ubuntu 16-04 ปัญหาของฉันคือการแก้ปัญหานี้ใช้ไม่ได้กับอินเตอร์เฟส USB และฉันยังมีชื่อยาวมากที่น่ารำคาญ (ฉันใช้บรรทัดคำสั่งมากมายเพื่อเล่นกับอินเตอร์เฟส wifi ของฉัน) ปัญหาการตั้งชื่ออินเตอร์เฟส

 So here is my question: 

ฉันควรทำอย่างไรเพื่อปิดการใช้งานกฎใหม่นี้สำหรับอินเทอร์เฟซ USB wifi ของฉัน ขอบคุณสำหรับคำแนะนำของคุณและแก้ตัวภาษาอังกฤษที่ไม่ดีของฉัน บาย


ทำไมคุณต้องการปิดการใช้งาน?
Kaz Wolfe

เพราะฉันใช้บรรทัดคำสั่งเพื่อจัดการอินเตอร์เฟส USB wifi และใช้สคริปต์ที่ใช้การตั้งชื่อแบบเก่า กว่าที่เราจะพูดได้หลายชั่วโมงเกี่ยวกับสิ่งที่ฉันคิดว่าเป็นอินเทอร์เฟซ systemd ที่ไร้ประโยชน์ "นโยบายที่คาดการณ์ได้" แต่ ... นั่นไม่ใช่จุดที่นี่ :) :)
kcdtv

หากคุณมีสคริปต์ที่จัดการและใช้บัตรใบเดียวกันทำไมไม่เปลี่ยนสคริปต์เพื่อใช้ชื่อที่ถูกต้อง (และดีกว่า)? ด้วยวิธีนี้คุณจะรู้ได้เสมอว่าคุณใช้อันไหนอยู่ หากคุณเสียบการ์ดทั้งสองนี้ไว้เสมอให้สคริปต์ค้นหาการ์ดอื่นและตั้งค่า
Kaz Wolfe

ไม่มีชื่อที่ดีกว่านี้ ... ฉันจะไม่ใส่ข้อพิจารณาที่ลึกลงไปเกี่ยวกับเรื่องนี้นั่นไม่ใช่จุดที่นี่จริง ๆ คุณคิดว่าพวกเขาดีกว่า แต่คุณอาจใช้ระบบของคุณด้วยวิธีของฉันฉันใช้มันในวิธีอื่น ... ฉัน จริงมีจำนวนมากของบัตร ... แต่จริงๆที่ไม่ได้จุดที่นี่ ....
kcdtv

1
รูปแบบการตั้งชื่อใหม่ sucks ตอนนี้เราต้องการสคริปต์แยกต่างหากเมื่อเปลี่ยนอุปกรณ์ USB เนื่องจากชื่อถูกผูกไว้กับที่อยู่ mac
นิวเคลียร์

คำตอบ:


9

คุณพลาดสิ่งหนึ่งไปจากhttps://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

จากนั้นรีบูท

ฉันคิดว่ามันต้องเป็นไฟล์ 80-net-setup-link.rules ใน / etc / udev / เป็นแล็ปท็อปตัวหนึ่งที่ฉันอัปเดตเป็น Ubuntu 16.04 จาก 15.10 ยังมีไฟล์ชื่อ /lib/udev/rules.d/73- usb-net-by-mac.rules และมีอยู่

# Use MAC based names for network interfaces which are directly or indirectly
on USB and have an universally administered (stable) MAC address (second bit
is 0).

IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end" PROGRAM="/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules", RESULT=="/dev/null", GOTO="usb_net_by_mac_end"

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \ ATTR{address}=="?[014589cd]:*", \ IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

LABEL="usb_net_by_mac_end"

และมันระบุ /etc/udev/rules.d/80-net-setup-link.rules

ไฟล์นี้ไม่มีอยู่ในการติดตั้ง Ubuntu 16.04 ใหม่ทั้งหมดของฉัน แต่บางส่วนต้องอยู่ในซอร์สโค้ดอื่น


1
สวัสดี Jeremy31 และขอบคุณสำหรับคำตอบของคุณ
kcdtv

. ไดเร็กทอรี /etc/udev/rules.d/ ของฉันว่างเปล่า ฉันมี80 สุทธิ setup-link.rulesใน/lib/udev/rules.d ฉันทำแบบเดียวกันกับที่แนะนำในไดเรกทอรีนี้ แต่อุปกรณ์ USB wifi ยังคงตั้งชื่อด้วยที่อยู่ mac ฉันจะพยายามหาวิธีและจะอัปเดตเมื่อฉันพบบางสิ่งบางอย่าง ... ขอบคุณอีกครั้ง
kcdtv

เพียงแค่ทำกับ ฉันไม่แน่ใจว่าทำไม net.ifnames = 0 ในไฟล์ด้วงไม่เพียงพอที่จะป้องกันไม่ให้เปลี่ยนอุปกรณ์ USB
Jeremy31

มันได้ผล! ผมคัดลอกกฎ 80 จาก/lib/udev/rules.dเพื่อ/etc/udev/rules.d กว่าที่ฉันทำซ้ำในไดเรกทอรีนี้เปลี่ยนชื่อเป็น 80 สุทธิ setup-link.rules.bak และในที่สุดฉันก็สร้างsymlinkให้กับ / dev / null_ หลังจากรีบูตการ์ด USB WiFi ของฉันไม่แสดงขึ้นมาในขณะนี้เป็นอินเทอร์เฟซ " wlan1 " ขอบคุณมาก! :)
kcdtv

2

หมายเหตุสำหรับผู้ที่มองหากรณีการใช้งานที่คล้ายกัน:

ฉันมีปัญหากับไดรเวอร์ของดองเกิล USB WiFi ไม่สามารถตรวจสอบได้เนื่องจากชื่ออินเทอร์เฟซที่ค่อนข้างยาวใน Debian (ยืด)

ขั้นตอนในการแก้ไขปัญหา:

  1. คัดลอก/lib/udev/rules.d/80-net-setup-link.rulesไปยัง/etc/udev/rules.d/

  2. เปลี่ยน$env{ID_NET_NAME}เป็น$env{ID_NET_SLOT}

สิ่งนี้รักษาความเป็นเอกลักษณ์ของชื่ออินเตอร์เฟสในขณะที่ทำให้สั้นลง

อัปเดต: ดูเหมือนว่าจะไม่มีปัญหากับ Debian 10 อีกต่อไป


0

ฉันมีสตูดิโออูบุนตูและมีปัญหาเดียวกัน: ชื่อ wlxxxxx ที่ยาวและเชื่อมต่อ wifi แต่ไม่ทำงาน!

Ubuntu studio มีเคอร์เนล latency ต่ำเป็นพิเศษและฉันสงสัยว่าชื่อที่ยาวอาจมีปัญหา

ดังนั้นฉันจึงเปลี่ยนชื่อเป็น wlan0 แรงบันดาลใจจากกระทู้นี้ ฉันทำต่อไปนี้:

1) คัดลอก /lib/udev/rules.d/80-net-setup-link.rules ไปยังโฟลเดอร์ /etc/udev/rules.d/

2) แก้ไขชื่อที่นั่น ในกรณีของฉันมีบรรทัด: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

ฉันเพิ่งใส่ "wlan0" แทน "$ env {ID_NET_NAME}"

และตอนนี้ wifi ทำงาน!

GR


0

แทนที่จะปิดใช้งานการเปลี่ยนชื่ออย่างสมบูรณ์คุณสามารถแทนที่มันเพื่อตั้งชื่อให้กับอินเทอร์เฟซของคุณเอง ที่ทำให้การตั้งชื่อคงที่ แต่ให้ชื่อที่คุณสามารถจำและพิมพ์

ระบบการตั้งชื่อที่มีอยู่ ( /lib/udev/rules.d/80-net-setup-link.rules) จะเปลี่ยนชื่ออินเทอร์เฟซหากยังไม่ได้รับชื่อ ดังนั้นคุณสามารถเพิ่มกฎของคุณเองที่มีลำดับความสำคัญสูงกว่า/etc/udev/rules.dซึ่งชื่ออินเทอร์เฟซในแบบของคุณเองซึ่งหยุดระบบเริ่มต้นจากการตั้งชื่ออินเทอร์เฟซเหล่านั้น

ฉันมีไฟล์70-wifi.rulesในระบบของฉันซึ่งตั้งชื่ออินเตอร์เฟสตามเครือข่ายที่พวกเขาเชื่อมต่อกับ:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0f:00:4a:c4:c9", NAME="wifi-root"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:19:86:31:dd:b7", NAME="wifi-main"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="38:2c:4a:48:27:49", NAME="wifi-local"

มันเป็นเรื่องสำคัญโดยที่อยู่ MAC ของอินเตอร์เฟซและผลลัพธ์ใน:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 3c:d9:2b:73:ad:5d brd ff:ff:ff:ff:ff:ff
15: wifi-main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:19:86:31:dd:b7 brd ff:ff:ff:ff:ff:ff
16: wifi-local: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 38:2c:4a:48:27:49 brd ff:ff:ff:ff:ff:ff
17: wifi-root: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:0f:00:4a:c4:c9 brd ff:ff:ff:ff:ff:ff

คุณสามารถเปลี่ยนชื่อพวกเขาเป็น wlan0, wlan1 และอื่น ๆ ความสวยงามของวิธีนี้คือคุณได้รับชื่อที่คุณต้องการและคุณจะได้รับประโยชน์จากการตั้งชื่ออินเตอร์เฟสเครือข่ายแบบคงที่ ดังนั้นอินเทอร์เฟซจะถูกตั้งชื่อในสิ่งเดียวกันเสมอ

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