Как узнать IP-адрес сервера в Linux: команда ip a вместо устаревшего ifconfig
Почему команда ifconfig больше не работает в современных Linux
Долгие годы системные администраторы использовали команду ifconfig для проверки сетевых интерфейсов. Однако в современных дистрибутивах (Ubuntu 20.04+, Debian 11+, RHEL/CentOS 8+) устаревший пакет net-tools был полностью удален из базовой системы. Попытка ввести старую команду приводит к ошибке Command 'ifconfig' not found. На смену пришла современная, быстрая и мощная утилита iproute2 (команда ip).
Сравнение старых и новых сетевых команд
| Старая команда (net-tools) | Современная команда (iproute2) | Что показывает |
|---|---|---|
ifconfig | ip a (или ip addr show) | Список всех сетевых карт, MAC и IP-адресов |
route -n | ip r (или ip route show) | Таблица сетевых маршрутов и основной шлюз |
netstat -tuln | ss -tuln | Список открытых сетевых портов и служб |
Пошаговое определение локального и внешнего IP-адреса
Шаг 1: Просмотр всех сетевых интерфейсов (команда ip a)
Введите короткую базовую команду:
ip aКак правильно читать вывод:
- Интерфейс
1: lo— это локальная петля (Loopback, адрес127.0.0.1), внутренняя связь сервера с самим собой. - Интерфейс
2: eth0(илиens3,enp3s0) — ваша реальная физическая или виртуальная сетевая карта. - Строка inet 192.168.1.150/24 — это локальный IPv4-адрес вашего сервера.
- Строка inet6 fe80::... — ваш сетевой IPv6-адрес.
Шаг 2: Вывод компактной информации только по конкретной сетевой карте
Чтобы не листать длинный список интерфейсов Docker и мостов, укажите имя вашей сетевой карты:
ip -br a show eth0(Флаг -br выведет данные в красивой компактной строке Brief).
Шаг 3: Как узнать публичный (внешний белый) IP-адрес сервера
Если сервер находится за роутером или облачным NAT (например, в Яндекс.Облаке или AWS), команда ip a покажет только серый локальный адрес. Чтобы узнать ваш публичный IP, видимый всему миру, выполните один из интернет-запросов:
curl -s ifconfig.me
или
curl -s icanhazip.comШаг 4: Просмотр адреса основного шлюза (роутера)
Узнаем IP-адрес маршрутизатора (Gateway):
ip r | grep defaultТиповые ошибки администраторов
- Установка устаревшего net-tools: Не пытайтесь ставить
net-toolsради привычного ifconfig — старая утилита не умеет корректно отображать множественные IP-адреса на одном интерфейсе и пространства имен сетевых пространств (Network Namespaces). Привыкайте к стандартуip. - Путаница между публичным и локальным IP: Настройка веб-сервера на внешний белый IP внутри конфига Netplan приведет к сбою, если сервер работает за облачным шлюзом NAT (привязываться нужно к локальному адресу карты).
Инженеры ITSTM спроектируют корпоративную сетевую инфраструктуру, настроят VLAN, межсетевые экраны и защищенные каналы связи между офисами.
Частые вопросы (FAQ)
Что означает статус <NO-CARRIER> в выводе команды ip a?
Статус NO-CARRIER означает, что сетевой кабель физически не подключен к порту сетевой карты или на стороне гипервизора отключен виртуальный сетевой адаптер.
Как быстро скопировать только чистый IP-адрес сервера в переменную скрипта?
Используйте команду: hostname -I | awk '{print $1}'.
Что означает статус сетевого интерфейса DOWN?
Интерфейс программно выключен. Включите его командой: sudo ip link set eth0 up.
Как посмотреть MAC-адрес сетевой карты сервера?
В выводе команды 'ip a' найдите строку 'link/ether' рядом с нужным интерфейсом — 12-значный набор шестнадцатеричных символов является физическим MAC-адресом.