Я настроил несколько 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
Это, скорее всего, ошибка в пакете 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
Эти интерфейсы будут отображаться, как и ожидалось, при запуске [ 113].
Однако эти изменения не будут отображаться в вашем /etc/network/interfaces
. Итак, вам нужно будет добавить их в обоих местах.
Примечание: это также не является постоянным при перезагрузке интерфейса, поэтому вам нужно будет повторно запустить команды после перезапуска интерфейса / машины.
ifconfig
, по сути, устарела, хотя я не знаю планов, чтобы избавиться от этого. Замена - команда ip
. Современный эквивалент ifconfig
сам по себе является ip address list
.
Почему ifconfig
был заменен на ip
? Много новых функций было добавлено в сети Linux за десятилетия, прошедшие с момента написания ifconfig
. Это включало в себя совершенно новый API (netlink) для инструмента пространства пользователя, чтобы общаться с ядром для настройки сети. Было гораздо практичнее написать новый инструмент, чтобы лучше отобразить новые функциональные возможности через API netlink и вплоть до командной строки, чем пытаться адаптировать старый инструмент ifconfig
. Посетите man-страницу ip (8) , чтобы узнать все новые интересные вещи, которые вы можете сделать сейчас.
API ядра, используемый в ifconfig
и самом инструменте ifconfig
, остается для обратной совместимости, но этот интерфейс не учитывает ничего, что не может быть легко сопоставлено со старой моделью.
Причина, по которой ifconfig
не показывает вам псевдонимы IP, заключается в том, что похоже, что они добавляются Debian ifupdown
(пакет, который обрабатывает /etc/network/interfaces
) с использованием другого механизма, который не добавляет метки :1
, :2
и т. Д. Таким образом, инструмент ifconfig
для них невидим, поскольку старый API предписывал эти метки, и поэтому дополнительные адреса не отображаются на старый API. Из man-страницы ip-address (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
мог видеть их без изменений.