ifconfig ไม่แสดง IP ทั้งหมดที่ผูกไว้กับเครื่อง


11

ฉันได้กำหนดค่าที่อยู่ IP หลายรายการในกล่องอูบุนตู แต่เมื่อฉันเรียกใช้ifconfigมันจะแสดงเพียงหนึ่งในนั้น อย่างไรก็ตามฉันสามารถปิงที่อยู่อื่น ๆ ทั้งหมดที่กำหนดให้กับเครื่องนี้ได้

/etc/network/interface เนื้อหา:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
     address 192.168.202.11
     netmask 255.255.255.0
     network 192.168.202.0
     broadcast 192.168.202.255
     gateway 192.168.202.1

# dns-* options are implemented by the resolvconf package, if installed   
dns-search idil.dz1.da

auto eth0:1    
iface eth0:1 inet static
     address 192.168.202.12   
     netmask 255.255.255.0

auto eth0:2
iface eth0:2 inet static
     address 192.168.202.13
     netmask 255.255.255.0

auto eth0:3
iface eth0:3 inet static
     address 192.168.202.14
     netmask 255.255.255.0

auto eth0:4
iface eth0:4 inet static
     address 192.168.202.15
     netmask 255.255.255.0

auto eth0:5
iface eth0:5 inet static
     address 192.168.202.16   
     netmask 255.255.255.0

อย่างไรก็ตามผลลัพธ์ของการifconfigเป็นเพียง:

192.168.202.11


ifconfig -a แสดงทุกอย่างหรือไม่
Alex R

มันแสดงเฉพาะที่อยู่ IP ของ eth0 .. :(
pankaj sharma

1
คุณใช้ Ubuntu รุ่นไหน โปรดเพิ่มข้อมูลของคุณเพื่อข้อผิดพลาด # 921280 ด้วย
jdthood

1
ip addr showผลงาน
xinthose

คำตอบ:


20

ifconfigเลิกใช้เป็นหลักแม้ว่าจะไม่มีแผนการที่ฉันรู้ว่าจะกำจัดมัน การเปลี่ยนเป็นipคำสั่ง ทันสมัยเทียบเท่าของบนมีที่ของตัวเองifconfigip address list

ทำไมถึงifconfigถูกแทนที่ด้วยip? ฟังก์ชันการทำงานใหม่มากได้รับการเพิ่มในลินุกซ์เครือข่ายในทศวรรษที่ผ่านมานับตั้งแต่ifconfigถูกเขียน สิ่งนี้เกี่ยวข้องกับ API ใหม่ทั้งหมด (netlink) สำหรับเครื่องมือ userspace เพื่อพูดคุยกับเคอร์เนลเพื่อกำหนดค่าเครือข่าย การใช้เครื่องมือใหม่เพื่อทำแผนที่ฟังก์ชันการทำงานใหม่ให้ดียิ่งขึ้นผ่าน netlink API และลงไปที่บรรทัดคำสั่งมากกว่าที่จะลองและปรับใช้ifconfigเครื่องมือเก่า ลองดูip (8) manpageเพื่อดูสิ่งใหม่ ๆ ที่คุณสามารถทำได้ตอนนี้

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

เหตุผลที่ifconfigไม่แสดงชื่อแทน IP ก็คือว่ามันดูเหมือนว่าพวกเขาจะถูกเพิ่มโดยเดลifupdown(แพคเกจที่จับ/etc/network/interfaces) โดยใช้กลไกที่แตกต่างกันที่จะไม่เพิ่มป้าย:1, :2ฯลฯ ดังนั้นifconfigเครื่องมือที่เป็นคนตาบอดกับพวกเขา เนื่องจาก API เก่าบังคับให้ใช้ป้ายกำกับเหล่านี้ดังนั้นที่อยู่พิเศษจึงไม่จับคู่กับ API เก่า จากmanpage ที่อยู่ ip (8) :

          Each address may be tagged with a label string.  In order to
          preserve compatibility with Linux-2.0 net aliases, this string
          must coincide with the name of the device or must be prefixed
          with the device name followed by colon.

ข้อผิดพลาดที่เชื่อมโยงในคำตอบของ maggotbrain ดูเหมือนจะเน้นไปที่การเพิ่มการสนับสนุนในifconfigการอ่านที่อยู่โดยไม่มีป้ายกำกับ อีกวิธีหนึ่งอาจจัดเรียงifupdownเพื่อสร้างที่อยู่พร้อมป้ายกำกับซึ่งifconfigจะสามารถดูได้โดยไม่ต้องแก้ไข


0

นี่เป็นข้อผิดพลาดส่วนใหญ่ในแพ็คเกจเครื่องมือสุทธิและifconfigโดยเฉพาะ

ดูข้อผิดพลาด launchpad ที่นี่และที่นี่สำหรับข้อมูลเพิ่มเติม

หากคุณเข้าสู่ส่วนต่อประสานของคุณด้วยตนเองจากบรรทัดคำสั่งโดยใช้ifconfigสิ่งนี้ (ปฏิบัติตามการกำหนดค่าด้านบน):

sudo ifconfig eth0:1 192.168.202.12 netmask 255.255.255.0
sudo ifconfig eth0:2 192.168.202.13 netmask 255.255.255.0
sudo ifconfig eth0:3 192.168.202.14 netmask 255.255.255.0
sudo ifconfig eth0:4 192.168.202.15 netmask 255.255.255.0
sudo ifconfig eth0:5 192.168.202.16 netmask 255.255.255.0

ifconfigคุณจะมีอินเตอร์เฟซผู้แสดงขึ้นเป็นไปตามคาดเมื่อทำงาน

การเปลี่ยนแปลงเหล่านี้จะไม่แสดงในของคุณ/etc/network/interfacesอย่างไร ดังนั้นคุณจะต้องเพิ่มพวกเขาทั้งสองแห่ง

หมายเหตุ: นี่ยังไม่ขัดจังหวะระหว่างการรีเซ็ตอินเตอร์เฟสดังนั้นคุณจะต้องเรียกใช้คำสั่งอีกครั้งเมื่อรีสตาร์ทอินเตอร์เฟส / เครื่อง

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