ifconfig не показывает все IP-адреса, связанные с машиной

11

Я настроил несколько IP-адресов в окне Ubuntu, но при запуске 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 показать все?
Алекс Р
он показывает только eth0 IP-адрес .. :(
pankaj sharma
1
Какой релиз Ubuntu вы используете? Пожалуйста, добавьте свою информацию в ошибку # 921280 тоже.
2012 года
1
ip addr showработает
xinthose

Ответы:

20

ifconfigпо сути устарела, хотя нет никаких планов, о которых я знаю, чтобы избавиться от этого. Замена это ipкоманда. Современный эквивалент сам ifconfigпо себе есть ip address list.

Почему ifconfigбыл заменен на ip? Много новых функций было добавлено в сети Linux за десятилетия, прошедшие с момента ifconfigнаписания. Это включало в себя совершенно новый API (netlink) для инструмента пространства пользователя, чтобы обращаться к ядру для настройки сети. Было гораздо практичнее написать новый инструмент, чтобы лучше отобразить новые функциональные возможности через API netlink и вплоть до командной строки, чем пытаться адаптировать старый ifconfigинструмент. Посетите справочную страницу ip (8) , чтобы узнать о новых интересных вещах, которые вы можете сделать сейчас.

Используемый API ядра ifconfigи сам ifconfigинструмент остаются для обратной совместимости, но этот интерфейс закрыт для всего, что не может быть легко сопоставлено со старой моделью.

Причина , по которой ifconfigне покажет вам IP - псевдонимы, что он выглядит , как они добавляются по Debian - х ifupdown(пакет, ручка /etc/network/interfaces) с использованием другого механизма , который не добавляет меток :1, :2и т.д. Таким образом, ifconfigинструмент слеп к ним, поскольку старый API предписывал эти метки, и поэтому дополнительные адреса не отображаются на старый API. С man-страницы 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

Скорее всего, это ошибка в пакете net-tools, в ifconfigчастности.

Смотрите ошибки панели запуска здесь и здесь для получения дополнительной информации.

Если вы вводите свои интерфейсы вручную, из командной строки, используя 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, однако. Итак, вам нужно будет добавить их в обоих местах.

Примечание: Это также не является постоянным при перезагрузке интерфейса, поэтому вам нужно будет повторно запустить команды после перезапуска интерфейса / машины.

Кевин Боуэн
источник