การเปลี่ยนชื่อของอินเตอร์เฟสเครือข่าย debian wheezy


14

ฉันพยายามตั้งชื่ออินเทอร์เฟซ "ethLan" แทนที่จะเป็น eth0 การทำเช่นนี้ยังช่วยให้มั่นใจได้ว่าชื่อของ if จะยังคงสอดคล้องกันในการรีบูตและเคอร์เนลทุกครั้ง

ฉันพบบทความบางเรื่องในเรื่องนี้ แต่พวกเขาทั้งหมดอายุไม่กี่ปี:
http://www.debian-administr.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

ผมทำตามที่พวกเขาพูดและเพิ่มethLan แม็ไป/ etc / mactabs / ณ จุดนี้ฉันมีปัญหาสองประการ:
1) if [...] && /sbin/nameifสคริปต์ที่ฉันใส่ที่/etc/network/if-pre-up.d/ไม่ทำงาน ฉันแก้ไขได้โดยเพิ่มสิ่งนี้ใน/etc/init.d/networkingแต่ทำไมถ้า -pre-up.dไม่ทำงาน
2) อินเตอร์เฟซจะไม่โหลดจนกว่าฉันด้วยตนเองทำifconfig ethLan ขึ้นทั้งๆที่มีการเพิ่มลงใน/ etc / เครือข่าย / อินเตอร์เฟซ ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


17

บทความที่คุณพบค่อนข้างล้าสมัย ตอนนี้จะมีวิธีการที่ง่ายในการกำหนดชื่อเพื่อเชื่อมต่อเครือข่ายผ่านudev

ใน Debian และสัญญาซื้อขายล่วงหน้า (รวมทั้ง Ubuntu) /etc/udev/rules.d/70-persistent-net.rulesมองออกไปสำหรับไฟล์ที่เรียกว่า ไฟล์นี้จะถูกสร้างขึ้นโดยด้วยความช่วยเหลือของสคริปต์/lib/udev/rules.d/75-persistent-net-generator.rules /lib/udev/write_net_rulesทุกครั้งที่ udev เห็นอุปกรณ์เครือข่ายใหม่มันจะกำหนดหมายเลขใหม่และต่อท้ายหมายเลข/etc/udev/rules.d/70-persistent-net.rulesนั้น /etcวิธีการที่ตัวเลขอินเตอร์เฟซที่เป็นถาวรทั่วเรียบและจะยังคงมีอยู่หลังจากติดตั้งใหม่ถ้าคุณเรียกคืน

(หากการแจกจ่ายของคุณไม่ได้จัดส่งไฟล์เหล่านี้ให้ค้นหาในแพ็คเกจ Debian )

หากคุณต้องการที่จะให้เป็นชื่อที่มีความหมายกับอินเตอร์เฟซและคุณมี/etc/udev/rules.d/70-persistent-net.rulesสิ่งที่คุณต้องทำคือการแก้ไขที่ไฟล์และการเปลี่ยนแปลงไป"eth0" "ethLan"เรียกใช้udevadm trigger --sysname eth0เพื่อเปลี่ยนชื่ออุปกรณ์ที่มีอยู่หลังจากที่คุณแก้ไขไฟล์ (ฉันคิดว่านี่ต้องปิดอินเทอร์เฟซ) หากคุณไม่มีไฟล์นั้นคุณสามารถเขียนหนึ่งบรรทัดที่ตรงกับตัวคุณเอง (สคริปต์ที่ซับซ้อนที่ Debian เพิ่มนั้นทำโดยอัตโนมัติ):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
หากคุณต้องการรายการคุณลักษณะที่ใช้งานได้สะดวกในกฎของ udev คุณสามารถลองใช้งานudevadm info -a /sys/class/net/eth0ได้ (ดูudevadm(8)รายละเอียด)
Austin Adams

1
คำถามระบุอย่างชัดเจนว่าเป็นของ Wheezy แต่มันอาจจะคุ้มค่าที่จะสังเกตว่าคำตอบนี้ไม่ถูกต้องสำหรับ Debian และ Ubuntu รุ่นใหม่ เริ่มต้นด้วยการตั้งชื่ออินเตอร์เฟสsystemd 220-7ต้องดำเนินการผ่านวิธีการอื่น
sampi

@sampi คำตอบของฉันยังคงใช้กับ Debian jessie (รุ่นเสถียรปัจจุบัน) มันล้มเหลวในการยืดหรือเป็นเพียงการแนะนำวิธีการเลิก? คุณรู้หรือไม่ว่า Ubuntu รุ่นใดที่ถูกตัดออกไป?
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

@Gilles ฉันไม่ได้ขุดลึกลงไปในรายละเอียดเพื่อที่จะทราบว่ามันล้มเหลวจริง ๆ หรือเพียงแค่เป็นการคัดค้านที่แนะนำ ดูเหมือนว่าอูบุนตูเจ้าเล่ห์และใหม่กว่าใช้ systemd สูงกว่า 220-7
sampi

6

สำหรับคนที่เจอโพสต์นี้ผ่านเครื่องมือค้นหาอย่างฉัน:

ใน Debian stretch และใหม่กว่าคุณสามารถใช้ไฟล์ systemd .link เพื่อให้ udev เปลี่ยนชื่ออุปกรณ์ ดูhttps://manpages.debian.org/stretch/udev/systemd.link.5.en.htmlสำหรับ manpage

ตัวอย่าง:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

อย่าลืมเรียกใช้ในupdate-initramfs -uภายหลังเพื่อฝังไฟล์กำหนดค่าที่อัปเดตเหล่านี้ลงใน initramfs ของคุณซึ่งจะถูกนำไปใช้


หากไฟล์ลิงค์มีอยู่ในระบบที่มี udev.rules.d ไฟล์ใดจะมีความสำคัญกว่า
vfclists

1

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

มันขัดแย้งกับwireless-toolsอย่างไรก็ตาม


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