ifconfig nie pokazuje wszystkich adresów IP związanych z maszyną

11

Skonfigurowałem wiele adresów IP w polu Ubuntu, ale po uruchomieniu ifconfigpokazuje tylko jeden z nich. Jestem jednak w stanie pingować wszystkie inne adresy przypisane do tego komputera.

/etc/network/interface zawartość:

# 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

Jednak wynik ifconfigjest tylko:

192.168.202.11

pankaj sharma
źródło
ifconfig -a wyświetla wszystko?
Alex R
pokazuje tylko adres IP eth0 .. :(
pankaj sharma
1
Które wydanie Ubuntu używasz? Dodaj swoje informacje również do błędu # 921280.
jdthood,
1
ip addr showdziała
xinthose

Odpowiedzi:

20

ifconfigjest zasadniczo przestarzałe, chociaż nie mam planów, aby się go pozbyć. Zastąpienie to ippolecenie. Współczesny odpowiednik samego ifconfigw sobie to ip address list.

Dlaczego ifconfigzostał zastąpiony ip? Od dziesięcioleci do sieci Linux dodano wiele nowych funkcji ifconfig. Wymagało to całkowicie nowego interfejsu API (netlink), aby narzędzie przestrzeni użytkownika mogło komunikować się z jądrem w celu skonfigurowania sieci. O wiele bardziej praktyczne było napisanie nowego narzędzia, aby lepiej mapować nową funkcjonalność poprzez interfejs API netlink i do wiersza poleceń, niż próba dostosowania starego ifconfignarzędzia. Zajrzyj na stronę ip (8), gdzie znajdziesz wszystkie fajne rzeczy, które możesz teraz zrobić.

API wykorzystywane przez jądro ifconfig, a ifconfigsamo narzędzie pozostaje dla wstecznej kompatybilności, ale ten interfejs jest ślepy na wszystko, co nie łatwo mapować do starego modelu.

Powodem, dla którego ifconfignie pokazać aliasy IP jest to, że wygląda na to, że są one dodawane przez Debianie ifupdown(pakiet że uchwyty /etc/network/interfaces) za pomocą innego mechanizmu, który nie dodawać etykiety :1, :2itp więc ifconfignarzędzie jest ślepy na nich, ponieważ stary interfejs API nakazał te etykiety, a zatem dodatkowe adresy nie są mapowane na stary interfejs API. Z strony adresu 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.

Błędy powiązane z odpowiedzią maggotbrain wydają się koncentrować na dodawaniu obsługi ifconfigdo odczytu adresów bez etykiet. Innym podejściem może być ifupdownutworzenie adresów z etykietami, które ifconfigbędą mogły być widoczne bez modyfikacji.

Robie Basak
źródło
0

Jest to najprawdopodobniej błąd w pakiecie net-tools, a ifconfigkonkretnie.

Zobacz błędy startera tutaj i tutaj, aby uzyskać dodatkowe informacje.

Jeśli wprowadzasz interfejsy ręcznie, z poziomu wiersza poleceń przy użyciu ifconfignastępującego polecenia (zgodnie z powyższą konfiguracją):

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

Będziesz wyświetlał te interfejsy, zgodnie z oczekiwaniami, podczas działania ifconfig.

Te zmiany nie pojawią się jednak w Twoim /etc/network/interfaces. Musisz je dodać w obu miejscach.

Uwaga: Nie jest to również trwałe w przypadku resetowania interfejsu, dlatego konieczne będzie ponowne uruchomienie poleceń po ponownym uruchomieniu interfejsu / komputera.

Kevin Bowen
źródło