ifconfig zeigt nicht alle an den Computer gebundenen IPs an

11

Ich habe mehrere IP-Adressen auf einer Ubuntu-Box konfiguriert, aber wenn ich sie ausführe ifconfig, wird nur eine davon angezeigt. Ich kann jedoch alle anderen diesem Computer zugewiesenen Adressen anpingen.

/etc/network/interface Inhalt:

# 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

Die Ausgabe von ifconfigist jedoch nur:

192.168.202.11

Pankaj Sharma
quelle
ifconfig -a alles anzeigen?
Alex R
es zeigt nur eth0 ip address .. :(
pankaj sharma
1
Welche Ubuntu-Version verwenden Sie? Bitte fügen Sie Ihre Informationen auch dem Fehler # 921280 hinzu.
jdthood
1
ip addr showWerke
xinthose

Antworten:

20

ifconfigist im Wesentlichen veraltet, obwohl es keine Pläne gibt, die ich kenne, um es loszuwerden. Der Ersatz ist der ipBefehl. Das moderne Äquivalent für sich ifconfigist ip address list.

Warum wurde ifconfigdurch ersetzt ip? In den Jahrzehnten seit dem ifconfigSchreiben wurden dem Linux-Netzwerk viele neue Funktionen hinzugefügt . Dies beinhaltete eine völlig neue API (Netlink), mit der das Userspace-Tool mit dem Kernel sprechen konnte, um das Netzwerk zu konfigurieren. Es war weitaus praktischer, ein neues Tool zu schreiben, um die neuen Funktionen über die Netlink-API und bis zur Befehlszeile besser abzubilden, als das alte ifconfigTool anzupassen . Auf der ip (8) -Manpage findest du alle coolen neuen Sachen, die du jetzt machen kannst.

Die von ifconfigund das ifconfigTool selbst verwendete Kernel-API bleibt aus Gründen der Abwärtskompatibilität erhalten. Diese Schnittstelle ist jedoch blind für alles, was dem alten Modell nicht einfach zugeordnet werden kann.

Der Grund , dass ifconfigSie nicht die IP - Aliase nicht zeigen , ist , dass es aussieht , als wären sie von Debian hinzugefügt werden ifupdown(das Paket , dass Griffe /etc/network/interfaces) einen anderen Mechanismus verwenden , die nicht die Etiketten nicht hinzufügen :1, :2usw. Also das ifconfigWerkzeug blind für sie ist, da die alte API diese Bezeichnungen vorschrieb, werden die zusätzlichen Adressen nicht der alten API zugeordnet. Aus der Manpage zur IP-Adresse (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.

Die Fehler, die in der Antwort von maggotbrain verlinkt sind, scheinen sich darauf zu konzentrieren, ifconfigdas Lesen von Adressen ohne Etiketten zu unterstützen. Ein anderer Ansatz könnte ifupdowndarin bestehen, die Adressen mit Beschriftungen zu erstellen, ifconfigdamit sie ohne Änderung angezeigt werden können.

Robie Basak
quelle
0

Dies ist höchstwahrscheinlich ein Fehler im Net-Tools-Paket und ifconfigspeziell.

Weitere Informationen finden Sie in den Launchpad-Fehlern hier und hier .

Wenn Sie Ihre Schnittstellen manuell über die Befehlszeile eingeben, gehen Sie ifconfigwie folgt vor (gemäß der obigen Konfiguration):

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

Diese Schnittstellen werden beim Ausführen erwartungsgemäß angezeigt ifconfig.

Diese Änderungen werden jedoch nicht in Ihrem /etc/network/interfacesangezeigt. Sie müssen sie also an beiden Stellen hinzufügen.

Hinweis: Dies ist auch beim Zurücksetzen der Schnittstelle nicht dauerhaft. Daher müssen Sie die Befehle beim Neustart der Schnittstelle / des Computers erneut ausführen.

Kevin Bowen
quelle