ทำไมอินเตอร์เฟซเครือข่ายของฉันชื่อ enp0s25 แทนที่จะเป็น eth0


109

สคริปต์ของฉันจำนวนมากหยุดทำงานหลังจากติดตั้ง Ubuntu 15.10 และฉันมีปัญหาในการจดจำชื่อใหม่นี้เนื่องจากฉันคุ้นเคยกับ ethx และ wlanx เป็นเวลาหลายปี มีเหตุผลสำหรับการเปลี่ยนแปลงนี้หรือไม่? ฉันต้องคุ้นเคยกับสิ่งนี้หรือฉันสามารถเปลี่ยนชื่อและกลับไปเป็น eth0 เก่าที่ดีได้หรือไม่?

$ ifconfig

enp0s25   Link encap:Ethernet  HWaddr 77:5a:5e:a6:86:d5  
      inet addr:192.168.31.239  Bcast:192.168.31.255  Mask:255.255.255.0
      inet6 addr: fe80::725a:b6ff:fea6:86d7/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4833 errors:1332 dropped:0 overruns:0 frame:666
      TX packets:5589 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3266446 (3.2 MB)  TX bytes:1046654 (1.0 MB)
      Interrupt:20 Memory:d3500000-d3520000

2
ดูสิ่งนี้ซึ่งมีลิงก์เพิ่มเติมไปยังรายละเอียดเพิ่มเติม
Doug Smythies

4
Ooooooooooooooooor แก้ไขสคริปต์ของคุณครั้งเดียวและสำหรับทุกคนและลบการอ้างอิง (และเปลี่ยนคำสั่งเพื่อกำหนดชื่ออุปกรณ์) ;-) (นี่คือตัวชี้บางอย่าง: askubuntu.com/questions/396837/… )
Rinzwind

@ Rinzwind นั่นเป็นความคิดที่ดี
Mike

@ ไมค์เจ้านายของฉัน (= lead coder) เห็นด้วยเสมอกับฉันเช่นกัน แต่จากนั้นเขามักจะใช้เส้นทางและอุปกรณ์ที่เข้ารหัสอย่างหนักเสมอ ... และฉันก็ดุเขาอีกครั้งและอีกครั้ง;)
Rinzwind

คำตอบ:


105

สิ่งนี้เป็นที่รู้จักกันในชื่อPredictable Network Interfaceและเป็นส่วนหนึ่งของsystemdซึ่ง Ubuntu ได้ทำการเปลี่ยนเป็นเวอร์ชั่น 15.04

แนวคิดพื้นฐานคือว่าแตกต่างจากก่อนหน้านี้ * โครงการระวังการตั้งชื่อที่ละเอียดสำหรับฮาร์ดแวร์ที่เกิดขึ้นโดยเฉพาะเพื่อไม่และอาจมีการเปลี่ยนแปลงระหว่างการเริ่มต้นใหม่ที่นี่อินเตอร์เฟซที่ชื่อขึ้นอยู่กับสถานที่ตั้งทางกายภาพของฮาร์ดแวร์และสามารถคาดการณ์ / เดาได้โดยดูที่lspciหรือlshwเอาท์พุท ในทางกลับกันเราสามารถคาดเดาข้อมูลเกี่ยวกับตำแหน่งทางกายภาพในระบบ pci ในกรณีของคุณที่จะเป็น pci bus 0, slot 2 ตามบทความ freedesktop.orgมี 3 วิธีในการกำหนดชื่ออินเตอร์เฟส: ตาม BIOS / เฟิร์มแวร์สำหรับการ์ดออนบอร์ดตามข้อมูล PCI และบน Mac ที่อยู่ของอินเทอร์เฟซ โปรดดูที่นี่สำหรับตัวอย่างอื่น

ตามหน้า freedesktop.orgหนึ่งในเหตุผลในการเปลี่ยนไปใช้การตั้งชื่อที่คาดการณ์ได้ก็คือการตั้งชื่อแบบคลาสสิกสามารถนำไปสู่ความเสี่ยงด้านความปลอดภัยของซอฟต์แวร์ในระบบมัลติอินเตอร์เฟสเมื่ออุปกรณ์ถูกเพิ่มและลบออกตอนบู๊ต นอกจากนี้ตามความคิดเห็นของSam Hanes "บนเซิร์ฟเวอร์ขนาดใหญ่ที่มีพอร์ต Ethernet จำนวนมากมันมีค่ามาก: คุณสามารถบอกได้ทันทีว่าอินเตอร์เฟสใดที่พอร์ตใดและการเพิ่มหรือเอาฮาร์ดแวร์ออกจะไม่เปลี่ยนชื่อของพอร์ตอื่น"

ดูวิธีการเปลี่ยนชื่ออินเทอร์เฟซเครือข่ายใน 15.10ในกรณีที่คุณตัดสินใจเปลี่ยนกลับเป็นเวอร์ชันอื่นของการตั้งชื่อ


40
ฉันเห็นประชดน้อยในคำว่า "คาดการณ์ได้" :) ขอบคุณสำหรับคำแนะนำ
Mike

11
"คาดการณ์ได้" ใช่แน่นอน ฉันมีการยกเลิกการเชื่อมต่ออีเธอร์เน็ตหลังจากอัปเกรดเป็น 15.10 (ล้างการติดตั้งเก่า / บ้าน) ทำไมแบ่ง API และการประชุม? ตอนนี้ฉันต้องหาสิ่งที่ล้มเหลว ฉันอารมณ์เสียมากกับสิ่งนี้: (
gorlok

13
ความล้มเหลวสามารถคาดเดาได้ฉันเดา;)
Anwar

6
เอ๊ะบอกกับsystemdนักพัฒนาทุกคน
Sergiy Kolodyazhnyy

22
Predictable Naming ไม่ได้มีประโยชน์สำหรับระบบเดสก์ท็อปที่มีเพียงหนึ่งอินเตอร์เฟสเท่านั้นและในกรณีนี้มันน่ารังเกียจ บนเซิร์ฟเวอร์ขนาดใหญ่ที่มีพอร์ตอีเธอร์เน็ตมากมายมันล้ำค่า: คุณสามารถบอกได้ทันทีว่าอินเทอร์เฟซใดที่ไปที่พอร์ตใดและการเพิ่มหรือเอาฮาร์ดแวร์ออกจะไม่เปลี่ยนชื่อของพอร์ตอื่น เป็นกรณีที่ออกแบบมาสำหรับ
Sam Hanes

1

FWIW ไฟล์ freedesktop.org PredictableNetworkInterfaceNames อ้างอิงความเห็นแฟ้มแหล่งที่มาเป็นที่ยอมรับ แต่ไฟล์ที่ได้รับการเปลี่ยนแปลงในการลบความคิดเห็น - ดูhttps://github.com/systemd/systemd/pull/12518

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