Две команды с одной задачей
ifconfig — классическая утилита из пакета net-tools, которая долгие годы использовалась для просмотра и настройки интерфейсов. Она устарела и во многих дистрибутивах не установлена по умолчанию. Ей на смену пришёл пакет iproute2, и команда ip: ip a (сокращение от ip address) показывает адреса, ip link — состояние интерфейсов, ip route — маршруты.
По результату они похожи, но формат различается, а ip умеет больше, включая работу с несколькими адресами на интерфейсе и современными типами виртуальных устройств.
Если команда ifconfig отсутствует, а вам она очень нужна, её можно установить из пакета net-tools, но правильнее привыкнуть к ip: именно его выводом пользуются современные инструкции и системные администраторы.
Как читать вывод ip a
Для каждого интерфейса показан номер и имя, набор флагов в угловых скобках, MTU, состояние (state UP или DOWN), MAC-адрес в строке link/ether и адреса: inet — IPv4, inet6 — IPv6. Число после косой черты — длина префикса, то есть маска: 192.168.1.20/24 означает маску 255.255.255.0.
Флаг LOWER_UP говорит, что физический канал есть; UP — что интерфейс включён администратором. Если интерфейс UP, а LOWER_UP нет, обычно отключён кабель или нет связи с точкой доступа.
Для IPv6 в выводе часто видно несколько адресов: один с областью link (fe80…) для локального сегмента, другие глобальные и временные, которые система меняет ради приватности. Наличие нескольких адресов у интерфейса — обычное дело.
Имена интерфейсов
lo — петлевой интерфейс с адресом 127.0.0.1. Имена вида eth0 раньше встречались повсеместно, а в современных системах чаще используются предсказуемые имена: en с добавкой для проводных адаптеров (например, enp3s0), wl — для Wi-Fi. Имена docker0, br- или veth относятся к виртуальным мостам контейнеров, tun и wg — к туннельным интерфейсам.
Лишние интерфейсы контейнеров и виртуальных машин — нормальное явление, а не признак проблемы.
Что ещё полезно рядом
ip route показывает маршрут по умолчанию (строка default via), ip neigh — соседей по ARP, а ip -s link выводит счётчики переданных, принятых и потерянных пакетов и ошибок. Ключ -br даёт краткий табличный вывод, а -c включает цвет.
Для Wi-Fi уровень сигнала показывает отдельная утилита iw. Чтобы узнать адрес DNS-сервера, смотрят настройки системного резолвера или сетевого менеджера, поскольку ip его не выводит.
Числа в ip -s link полезны для поиска проблемного кабеля или порта: растущее число ошибок и отбрасываний на интерфейсе указывает на неисправность физического уровня, а не на настройки программ.
Заблуждения: ifconfig и ip a в Linux
«ifconfig удалили из Linux». Он никуда не делся, просто перестал быть основным инструментом. «ip a меняет настройки». Команда только читает, а изменения делаются командами вроде ip addr add, и такие изменения пропадают после перезагрузки, если не сохранены в конфигурации сетевого менеджера.
Ещё одно недопонимание: ip a не показывает внешний IP-адрес. Он относится к роутеру или провайдеру и определяется внешними сервисами.
Тем, кто работает с контейнерами, полезно знать, что каждый контейнер получает собственную пару виртуальных интерфейсов, и картина ip a на хосте меняется при запуске и остановке контейнеров.
Как выполнить самому
Откройте терминал и введите ip -br a: вы увидите короткий список интерфейсов, их состояние и адреса. Затем ip route покажет шлюз. Если нужного интерфейса в списке нет, проверьте драйвер командой lspci или lsusb и журнал ядра. Изменения в конфигурацию вносите через тот инструмент, который управляет сетью в вашем дистрибутиве, чтобы они сохранялись.
Стоит сохранить вывод до изменения и после: тогда вы точно увидите, что поменялось. Если вы настраиваете статический адрес, проверьте, что он не пересекается с пулом DHCP роутера, иначе возможен конфликт адресов.