ฉันควรเลิกใช้ Ifconfig หรือไม่


171

ด้วยเซิร์ฟเวอร์ที่ติดตั้งการ์ด Infiniband เมื่อฉันใช้ifconfigคำสั่งฉันจะได้รับคำเตือนนี้:

Ifconfig uses the ioctl access method to get the full address 
information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes 
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.

ฉันควรจะเลิกใช้ifconfig? มันคัดค้านipคำสั่งหรือไม่? หรือจะมีการปรับปรุงในอนาคตอันใกล้

หมายเหตุ:คำถามและคำตอบนี้เกี่ยวข้องกับการแจกแจง "หลัก" ของ GNU / Linux ไม่ควรสันนิษฐานว่าข้อมูลนี้ใช้กับการแจกแจงทั้งหมดและโดยเฉพาะอย่างยิ่งไม่ใช่ระบบปฏิบัติการอื่น


23
ยิ่งคุณสลับได้เร็วเท่าไหร่ ผมใช้เวลาเดือนifconfigเพื่อแทนที่กล้ามเนื้อความทรงจำของ มันทำให้การทำงานบน Windows สนุกยิ่งขึ้น " ip add- ไม่ต้องรอนั่นไม่ใช่ifcon-NO, argh ipconfig"
Charles

7
บางทีนามแฝงจะช่วย: alias ipconfig='echo ipconfig is deprecated, use ip instead'. แน่นอนว่าคุณได้ตั้งชื่อแทนที่สมเหตุสมผลมากขึ้น
ott--

98
ifconfigเลิกใช้แล้ว? ฉันต้องได้รับการอาศัยอยู่ในถ้ำ
Wim

26
ฉันพบว่าอยากรู้ว่าคำสั่งที่เรียกว่า "ip" นั้นมีความสามารถในการทำงานระดับลิงค์
James O'Gorman

12
มันเลิกใช้ในระบบปฏิบัติการบางระบบเท่านั้น หากคุณใช้สิ่งที่นอกเหนือจาก Linux ฉันเชื่อว่า ifconfig ยังคงใช้งานอยู่ ฉันไม่เห็นคำเตือนเช่นนี้ใน FreeBSD
Stefan Lasiewski

คำตอบ:


154

การอ้างอิงเว็บไซต์ของThomas Pircher ( cc-by-sa ):

ifconfig กับ ip

คำสั่ง/bin/ipได้รับรอบในขณะนี้ /sbin/ifconfigแต่คนยังคงใช้คำสั่งเก่า มีความชัดเจน: ifconfigจะไม่หายไปอย่างรวดเร็ว แต่เวอร์ชันที่ใหม่กว่าipนั้นมีประสิทธิภาพมากกว่าและจะแทนที่ในที่สุด

หน้าแรกของคนipอาจดูน่ากลัวในตอนแรก แต่เมื่อคุณคุ้นเคยกับไวยากรณ์คำสั่งมันเป็นเรื่องง่ายที่จะอ่าน หน้านี้จะไม่แนะนำคุณสมบัติใหม่ของ ip มันค่อนข้างมีการเปรียบเทียบแบบเคียงข้างกันหากifconfigและipเพื่อให้ได้ภาพรวมอย่างรวดเร็วของไวยากรณ์คำสั่ง

แสดงอุปกรณ์เครือข่ายและการกำหนดค่า

ifconfig

ip addr show
ip link show

เปิดใช้งานอินเตอร์เฟสเครือข่าย

ifconfig eth0 up
ip link set eth0 up

อินเทอร์เฟซเครือข่ายถูกปิดใช้งานในลักษณะที่คล้ายกัน:

ifconfig eth0 down
ip link set eth0 down

50
สิ่งที่น่าสนใจในทุกกรณีการใช้งานที่คุณกล่าวถึงคำสั่ง ip นั้นมีความยาวและซับซ้อนกว่า อาจเป็นเหตุผลหลักที่ผู้คนยังคงใช้ifconfig
TheLQ

22
@TheLQ: ipมีคุณสมบัติอื่น ๆ อีกมากมาย แน่นอนมันซับซ้อนมากขึ้น อย่างไรก็ตามคำสั่งจำนวนมากสามารถสั้นลงได้ เช่นip addr showสามารถลงไปip a, ip link showไปip l, ip link set eth0 upไปip l set eth0 upและอื่น ๆ วิธีนี้จะทำให้ในหุ้นที่มีip ifconfig
BatchyX

16
เพียงจำไว้ว่าโลกทั้งใบไม่ใช่เครื่องลินุกซ์ Solaris, AIX, HP-UX ทั้งหมดของ BSDs และ SCO (ไม่ได้ว่าทุกคนที่ใส่ใจเกี่ยวกับพวกเขา ) ifconfigการใช้งานทั้งหมด หากคุณต้องการเป็นผู้ดูแลระบบยูนิกซ์ (ไม่ใช่เพียงผู้ดูแลระบบLinux ) คุณควรแน่ใจว่าคุณคุ้นเคยกับ ifconfig และไวยากรณ์พื้นฐานอย่างน้อย ...
voretaq7

9
ตัวอย่างแรกของคุณตอบมัน ทำไมต้องรันคำสั่ง 2 เมื่อ 1 ทำ?
ott--

6
@ott สวยมากรวมถึงการส่งออกของip addr show ip link show
nyuszika7h

40

ใช่ifconfigจะเลิกในความโปรดปรานของ iproute2 (คนipสั่ง) บน Linux

ในทำนองเดียวกันarp, routeและnetstatคำสั่งเลิกยัง

อย่างไรก็ตาม iproute2 เป็น Linux เฉพาะเมื่อใช้ Unixes อื่นifconfigดังนั้นอาจช่วยให้ทราบ / จำได้ว่ามันทำงานอย่างไรถ้าคุณเคยใช้ Unix อื่น ...

เพื่อเรียนรู้ "วิธีการใหม่" ฉันขอแนะนำให้คุณดูที่ลิงค์เหล่านั้น 3:

ตามลิงค์ล่าสุดifconfigยังไม่ได้รับการบำรุงรักษาเป็นเวลา 15 ปี :

ยกเว้นแพ็ตช์แพทช์ที่เดเบียนได้สะสมแพ็คเกจเครื่องมือเน็ตไม่ได้เห็นการพัฒนาอัปสตรีมหลังเวอร์ชั่น 1.60 ออกวางจำหน่ายประมาณ 15 เมษายน 2544


9
ifconfigได้รับการพัฒนาโดย BSD ย้อนกลับไปในวันที่ Linux ใช้ IP สแต็กของ BSD เป็นหลัก (เช่นเดียวกับ Windows และอื่น ๆ ของเวลา, ทำไมipconfigยังคล้ายกับifconfig) ใน 2.4 Kernel Linux เริ่มเบี่ยงเบนอย่างหนักจากสแต็กของ BSD นั่นคือจุดเริ่มต้นของปี 2001 มันไม่ได้เกิดขึ้นว่าifconfigใน Linux ยังไม่ได้รับการดูแลอย่างดีตั้งแต่นั้นมา
Chris S

3
10 ปี!? ถึงเวลาเปิดตัวโครงการ "save ifconfig" บน GitHub ฉันเดาแล้ว
kenchilada

20

ifconfig เลิกใช้แล้วเป็นเวลาหลายปีแล้วเวลาเปลี่ยนโดยเฉพาะในกรณีที่เป็นของคุณ


1
ฉันชอบคำสั่ง cisco-esque ที่สั้นลง "ip a" = "ที่อยู่ ip แสดง"
Coops

5
Meh มีสคริปต์พอและเครื่องมืออื่น ๆ ที่ถูกสร้างขึ้นในช่วง ifconfig ที่ผมไม่รู้สึกว่าจำเป็นที่จะต้องเปลี่ยนจนกว่าจะหาย ...
เจสัน Antman

10
ipผมไม่เคยได้ยิน ฉันเพียงแค่ทดสอบบนเซิร์ฟเวอร์ FreeBSD ip: Command not found.และกล่าวว่า อาจifconfigเลิกใช้แล้วบน Linux เท่านั้น
ctype.h

2
@ ctype.h: แน่นอนมันถูกคัดค้านบน linux เท่านั้น ifconfig ปล่อยกำหนดเป้าหมายลินุกซ์วันกลับมาจากปี 1999 ipได้แล้วทางเลือกที่แนะนำสำหรับ 2.4 เมล็ด
BatchyX

5

ipได้รับการทดแทนสำหรับifconfigในขณะที่บางจุดifconfigอาจจะอัปเดต แต่ฉันจะไม่รอและเรียนรู้ที่จะทำงานกับipเช่นกัน มันรองรับลินุกซ์ทุกตัว


8
ip ได้รับการแทนที่สำหรับ ifconfig บน Linuxเป็นตัวเลือกที่ทำโดย distros
Kaz

ดูเหมือนว่าไม่น่าเป็นไปได้อย่างมากถ้า ifconfig สามารถใช้งานร่วมกับ linux ได้อย่างสมบูรณ์ คำสั่งเช่นifconfig eth0 192.168.0.7/24ไม่มีความหมายที่ชัดเจน: เช่น หากeth0มี 2 ​​ที่อยู่ IP อยู่ (สองที่อยู่นั้นไม่มีชื่อแทนอย่างเช่น eth0: 1)
Jasen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.