Команда ip вместо ifconfig: шпаргалка по iproute2
ifconfig до сих пор встречается в старых инструкциях, но на большинстве Linux-серверов основной инструмент для сетевой диагностики и настройки — ip из пакета iproute2. Он показывает интерфейсы, IP-адреса, маршруты, ARP/neighbor-таблицу, сетевые пространства имён и статистику линков.
Если вы администрируете сервер, работаете с контейнерами или просто разбираетесь, почему перестал открываться сайт, команда ip почти всегда одна из первых, которые стоит проверить. Она быстро отвечает на базовые вопросы: поднят ли интерфейс, какой адрес назначен, куда пойдёт пакет, есть ли default gateway, видит ли сервер соседний хост в L2-сети.
Ниже — практичная шпаргалка по iproute2: как читать вывод, какие команды использовать вместо ifconfig, route, arp и части netstat, и как применять ip при диагностике сетевых проблем.
Почему ip заменил ifconfig
ifconfig входит в старый набор net-tools. Он долго был стандартом де-факто, но плохо отражает возможности современного Linux networking: policy routing, network namespaces, VRF, расширенную работу с IPv6, множественные таблицы маршрутизации и современные типы интерфейсов.
ip — часть iproute2. В этот же набор входит ss, современная альтернатива netstat для сокетов и соединений. Если нужно смотреть открытые порты, TCP-состояния и listening-сокеты, лучше использовать не ip, а ss. Если нужно смотреть адреса, интерфейсы, маршруты и соседей — это зона ответственности ip.
Главное отличие: ip работает через Netlink API ядра и показывает сетевую конфигурацию ближе к тому, как её видит Linux. Поэтому вывод иногда кажется менее «человеческим», чем у ifconfig, зато он точнее и полнее.
Что полезно запомнить:
1) ip — не одна команда, а набор подкоманд — ip link, ip addr, ip route, ip neigh, ip netns, ip rule.
2) Большинство изменений временные — если выполнить sudo ip addr add ..., настройка обычно пропадёт после перезагрузки или рестарта сетевого менеджера. Для постоянной конфигурации нужен Netplan, NetworkManager, systemd-networkd или конфиги дистрибутива — подробнее об этом ниже, в разделе про безопасную работу.
3) Команды можно сокращать — ip address show можно написать как ip addr show, ip a или даже ip ad. В скриптах лучше использовать читаемые формы.
4) Есть удобные флаги вывода — -br для краткого вывода, -c для цвета, -j для JSON, -s для статистики, -d для деталей.
Например:
ip -br addr
ip -c route
ip -j link show
ip -s link show dev eth0Базовый синтаксис ip
Общий формат команды:
ip [OPTIONS] OBJECT COMMAND [ARGUMENTS]Где OBJECT — объект сетевой подсистемы, с которым вы работаете.
Самые частые объекты:
1) link — сетевые интерфейсы на L2-уровне: eth0, ens3, wlan0, lo, bridge, veth, bond, VLAN.
2) addr или address — IP-адреса на интерфейсах.
3) route — таблица маршрутизации.
4) neigh или neighbor — соседи: ARP для IPv4 и NDP для IPv6.
5) rule — правила policy routing.
6) netns — network namespaces, особенно полезно при контейнерах и изоляции сетей.
У команды есть справка:
ip help
ip addr help
ip route helpВывод ip часто содержит термины, которые стоит понимать:
1) UP — интерфейс административно включён.
2) LOWER_UP — физический или виртуальный линк реально поднят. Для Ethernet это обычно означает, что есть carrier.
3) state UP/DOWN/UNKNOWN — состояние интерфейса. У lo часто UNKNOWN, это нормально.
4) mtu — максимальный размер L2-пакета без фрагментации на интерфейсе. Ошибки с MTU могут ломать VPN, туннели и отдельные HTTPS-соединения.
5) qdisc — очередь дисциплины трафика. Обычно при базовой диагностике её можно игнорировать.
6) scope — область действия адреса или маршрута: host, link, global.
Полезная привычка — начинать с краткого вывода:
ip -br link
ip -br addrОн компактнее и быстрее показывает главное: имя интерфейса, состояние, IP-адреса.
Интерфейсы: ip link
ip link показывает и настраивает сетевые интерфейсы. Это ближайший аналог части возможностей ifconfig.
Посмотреть все интерфейсы:
ip link showКраткий вид:
ip -br linkПоказать конкретный интерфейс:
ip link show dev eth0Типичный вывод:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ffЧто здесь важно:
1) eth0 — имя интерфейса. На современных системах чаще встречаются ens3, enp0s3, eno1.
2) UP — интерфейс включён командой или сетевым менеджером.
3) LOWER_UP — линк есть на нижнем уровне. Если UP есть, а LOWER_UP нет, проблема может быть в кабеле, виртуальном адаптере, bridge, provider-сети или гипервизоре.
4) mtu 1500 — текущий MTU.
5) link/ether — MAC-адрес.
Включить или выключить интерфейс:
sudo ip link set dev eth0 up
sudo ip link set dev eth0 downИзменить MTU:
sudo ip link set dev eth0 mtu 1400Переименовать интерфейс:
sudo ip link set dev eth0 name wan0На продакшен-сервере с удалённым SSH переименование, выключение интерфейса и изменение MTU могут оборвать доступ. Перед такими действиями полезно иметь консоль провайдера или out-of-band-доступ.
Статистика интерфейса:
ip -s link show dev eth0Вы увидите счётчики RX/TX: bytes, packets, errors, dropped, overruns, carrier, collisions. Если растут errors или dropped, это повод копать глубже: драйвер, виртуализация, перегрузка, проблемы на канале, фаервол, очереди. Для постоянного наблюдения за трафиком удобнее специализированные утилиты — например, iftop, nload, vnstat; про них есть отдельный материал про мониторинг сети с помощью iftop, nload и vnstat.
IP-адреса: ip addr
ip addr показывает адреса, назначенные интерфейсам. Это самая частая замена ifconfig.
Показать все адреса:
ip addr showКраткий вид:
ip -br addrТолько IPv4:
ip -4 addrТолько IPv6:
ip -6 addrПоказать адреса конкретного интерфейса:
ip addr show dev eth0Пример:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
inet 192.0.2.10/24 brd 192.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:db8::10/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe12:3456/64 scope link
valid_lft forever preferred_lft foreverКак читать:
1) inet 192.0.2.10/24 — IPv4-адрес и префикс сети. /24 соответствует маске 255.255.255.0.
2) brd 192.0.2.255 — broadcast-адрес для IPv4-сети.
3) scope global — адрес пригоден для обычной сетевой коммуникации за пределами хоста.
4) scope link — адрес действует только в пределах линка. У IPv6 это часто fe80::....
5) valid_lft и preferred_lft — время жизни адреса. Особенно актуально для DHCP и IPv6 SLAAC.
Добавить адрес:
sudo ip addr add 192.0.2.20/24 dev eth0Удалить адрес:
sudo ip addr del 192.0.2.20/24 dev eth0Удалить все адреса с интерфейса:
sudo ip addr flush dev eth0Команду flush используйте осторожно: если интерфейс обслуживает SSH-подключение, вы можете потерять доступ к серверу.
Частые проверки:
ip -br addr show dev eth0
ip -4 addr show scope global
ip -6 addr show scope globalЕсли сервис слушает на конкретном IP, а адрес пропал после перезагрузки, дело обычно не в приложении, а в постоянной сетевой конфигурации — Netplan, NetworkManager, systemd-networkd или cloud-init.
Маршруты: ip route
ip route отвечает на вопрос: куда Linux отправит пакет. При диагностике недоступности сайта, API или базы данных это одна из ключевых команд.
Показать основную таблицу маршрутизации:
ip route showОбычно вывод выглядит так:
default via 192.0.2.1 dev eth0 proto dhcp src 192.0.2.10 metric 100
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10Что означает:
1) default via 192.0.2.1 dev eth0 — default gateway. Через него уйдёт трафик во внешние сети.
2) 192.0.2.0/24 dev eth0 — локальная сеть доступна напрямую через eth0.
3) src 192.0.2.10 — исходный IP, который ядро предпочитает для этого маршрута.
4) metric 100 — приоритет маршрута. Чем меньше metric, тем предпочтительнее маршрут среди сопоставимых.
Самая полезная диагностическая команда:
ip route get 8.8.8.8Или для домена после резолва:
ip route get 203.0.113.50Она показывает, какой интерфейс, gateway и source IP будут использованы для конкретного назначения. Это быстрее и точнее, чем гадать по всей таблице маршрутов.
Добавить default route:
sudo ip route add default via 192.0.2.1 dev eth0Удалить default route:
sudo ip route del defaultДобавить маршрут в конкретную сеть:
sudo ip route add 10.10.0.0/16 via 192.0.2.254 dev eth0Заменить маршрут, если он уже есть:
sudo ip route replace default via 192.0.2.1 dev eth0Если на сервере несколько интерфейсов, VPN или policy routing, смотрите не только основную таблицу:
ip rule show
ip route show table allip rule показывает правила выбора таблицы маршрутизации. Например, трафик с одного source IP может уходить через один gateway, а с другого — через другой. Это частая причина «странных» проблем, когда curl с сервера работает, а приложение с bind на другой адрес — нет.
Для проверки сетевого пути за пределами локальной машины используйте ping, traceroute или mtr. У нас есть отдельные шпаргалки по ping и по тому, как читать трассировку в mtr и WinMTR.
ARP и соседи: ip neigh
ip neigh показывает neighbor table: соответствия IP-адресов и MAC-адресов на локальном линке. Для IPv4 это ARP, для IPv6 — Neighbor Discovery Protocol.
Показать соседей:
ip neigh showПример:
192.0.2.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
192.0.2.50 dev eth0 lladdr 00:11:22:33:44:66 STALEСостояния:
1) REACHABLE — сосед недавно подтверждён, всё нормально.
2) STALE — запись есть, но давно не подтверждалась. Это не ошибка само по себе.
3) DELAY и PROBE — ядро проверяет доступность соседа.
4) FAILED — не удалось получить MAC-адрес или подтвердить соседа. Для gateway это серьёзный сигнал.
Показать соседей конкретного интерфейса:
ip neigh show dev eth0Удалить запись:
sudo ip neigh del 192.0.2.1 dev eth0Очистить neighbor-таблицу интерфейса:
sudo ip neigh flush dev eth0Когда это полезно:
1) Gateway не отвечает — ip route показывает default gateway, но ip neigh для него в FAILED.
2) Конфликт IP-адресов — MAC-адрес для IP внезапно меняется.
3) После миграции VM трафик идёт не туда — старые ARP-записи на соседних устройствах или в гипервизоре.
4) Проблемы с bridge/VLAN — IP в той же подсети не резолвится в MAC.
Если нужно увидеть пакеты ARP, TCP SYN, TLS-рукопожатие или DNS-запросы, используйте tcpdump. Команда ip показывает состояние ядра, но не заменяет анализ трафика. Для практики пригодится материал что такое tcpdump и как анализировать сетевой трафик из терминала.
Сетевые пространства имён: ip netns
Network namespaces позволяют иметь несколько изолированных сетевых стеков на одной Linux-машине. У каждого namespace могут быть свои интерфейсы, адреса, маршруты, iptables/nftables-правила и сокеты.
Это основа контейнерной сетевой изоляции. Docker, containerd, Kubernetes и CNI-плагины активно используют namespaces, veth-пары, bridge и маршрутизацию. Если тема контейнеров актуальна, полезно отдельно разобраться, как работает Docker networking.
Посмотреть network namespaces, зарегистрированные через ip netns:
ip netns listСоздать namespace:
sudo ip netns add testnsВыполнить команду внутри namespace:
sudo ip netns exec testns ip addrУдалить namespace:
sudo ip netns del testnsМинимальный пример с veth-парой:
sudo ip netns add testns
sudo ip link add veth-host type veth peer name veth-ns
sudo ip link set veth-ns netns testns
sudo ip addr add 10.200.1.1/24 dev veth-host
sudo ip link set veth-host up
sudo ip netns exec testns ip addr add 10.200.1.2/24 dev veth-ns
sudo ip netns exec testns ip link set veth-ns up
sudo ip netns exec testns ip link set lo up
ping -c 3 10.200.1.2Этот пример показывает базовый принцип: veth-пара похожа на виртуальный кабель. Один конец остаётся в root namespace, второй переносится в testns.
В реальной диагностике контейнеров часто нужно понять, где именно находится интерфейс и маршрут: на хосте, в namespace контейнера, в bridge, в overlay-сети или на стороне CNI. ip netns, ip link, ip addr и ip route здесь используются вместе.
Нюанс: Docker не всегда регистрирует namespaces в ip netns list. Иногда приходится искать namespace через PID процесса контейнера и заходить через nsenter. Но базовая логика та же: внутри namespace можно выполнять обычные команды ip.
Быстрая диагностика сетевой проблемы через ip
Когда сайт не открывается или сервер «потерял сеть», не начинайте сразу с перезапуска всего подряд. Команда ip помогает быстро сузить область поиска.
Базовый порядок:
1) Проверить интерфейсы
ip -br linkИщите нужный интерфейс и состояния UP, LOWER_UP. Если интерфейс DOWN, проверьте сетевой менеджер, конфигурацию, гипервизор или физический линк.
2) Проверить IP-адреса
ip -br addrУбедитесь, что есть ожидаемый IPv4/IPv6-адрес. Если адреса нет, проблема может быть в DHCP, cloud-init, Netplan, NetworkManager или ручной конфигурации.
3) Проверить default route
ip routeЕсли нет default via ..., сервер может видеть только локальную подсеть.
4) Проверить маршрут до конкретного адреса
ip route get 1.1.1.1Команда покажет, через какой интерфейс и gateway пойдёт пакет.
5) Проверить gateway в neighbor-таблице
ip neigh showЕсли gateway в FAILED, проблема может быть на L2-уровне: ARP, VLAN, bridge, виртуальный свитч, сеть провайдера.
6) Проверить счётчики ошибок
ip -s link show dev eth0Растущие errors и dropped помогают отличить проблему приложения от сетевой или драйверной.
7) Проверить сокеты и порты
Здесь подключайте ss, а не ip:
ss -tulpen
ss -tan state establishedЕсли сервис не слушает порт, маршруты могут быть в порядке, но сайт всё равно будет недоступен.
При внешнем мониторинге доступности картина дополняется: сервис вроде Statuser проверяет сайт с заданным интервалом и присылает уведомление о сбое. После алерта ip помогает быстро понять, проблема внутри сервера или где-то дальше по сети. Если сбой кратковременный, полезно сохранить вывод ip -br addr, ip route, ip neigh и ip -s link в инцидентные заметки — потом проще сопоставить это с логами и метриками.
Для общего плана действий при падении сайта пригодится отдельная инструкция что делать, если упал сайт.
Шпаргалка: замена ifconfig, route, arp и netstat
Короткая таблица соответствий.
1) Показать интерфейсы
Старый вариант:
ifconfig -aСовременный вариант:
ip addr
ip -br addr2) Показать только L2-интерфейсы
ip link
ip -br link3) Включить интерфейс
sudo ip link set dev eth0 up4) Выключить интерфейс
sudo ip link set dev eth0 down5) Назначить IP-адрес
Старый стиль:
sudo ifconfig eth0 192.0.2.10 netmask 255.255.255.0Через ip:
sudo ip addr add 192.0.2.10/24 dev eth06) Удалить IP-адрес
sudo ip addr del 192.0.2.10/24 dev eth07) Показать маршруты
Старый вариант:
route -n
netstat -rnСовременный вариант:
ip route8) Добавить default gateway
sudo ip route add default via 192.0.2.1 dev eth09) Проверить маршрут до адреса
ip route get 8.8.8.8У route такой удобной команды нет.
10) Показать ARP-таблицу
Старый вариант:
arp -nСовременный вариант:
ip neigh11) Показать слушающие порты
Старый вариант:
netstat -tulpenСовременный вариант:
ss -tulpenip не заменяет netstat полностью. Разделение такое: ip — интерфейсы, адреса, маршруты, соседи; ss — сокеты и соединения.
12) Машиночитаемый вывод
ip -j addr
ip -j routeJSON-вывод удобен для скриптов, Ansible, health checks и разовых автоматизаций. Лучше парсить ip -j, чем нестабильный текстовый вывод.
Частые ошибки и безопасная работа
ip — мощный инструмент, но на удалённом сервере им легко отрезать себе доступ.
1) Не путайте временную и постоянную конфигурацию
Команды вида sudo ip addr add и sudo ip route add меняют состояние ядра прямо сейчас. После перезагрузки они обычно исчезают. Если изменение должно пережить reboot, внесите его в конфиг сетевого менеджера.
В Ubuntu Server это часто Netplan в /etc/netplan/*.yaml, в Debian может быть /etc/network/interfaces, в RHEL-подобных системах — NetworkManager через nmcli или профили соединений.
2) Проверяйте, какой интерфейс обслуживает SSH
Перед ip link set down, ip addr flush или сменой маршрута выполните:
ip route get YOUR_CLIENT_IPТак вы увидите, через какой интерфейс идёт ваш SSH-трафик.
3) Используйте replace, если не уверены, есть ли маршрут
sudo ip route replace default via 192.0.2.1 dev eth0add завершится ошибкой, если маршрут уже существует. replace добавит или заменит.
4) Не удаляйте default route без запасного доступа
Команда sudo ip route del default на удалённой машине может мгновенно оборвать внешний доступ.
5) Сохраняйте исходное состояние
Перед изменениями полезно выполнить:
ip -br addr
ip route
ip rule
ip neighСкопируйте вывод в заметку или тикет. Это ускоряет откат.
6) Учитывайте IPv6
Иногда IPv4 работает, а IPv6 сломан — или наоборот. Проверяйте отдельно:
ip -4 route
ip -6 route
ip -4 addr
ip -6 addrЕсли у домена есть AAAA-запись, клиенты могут пытаться идти по IPv6. При проблемах с DNS и адресацией полезны отдельные инструменты вроде dig; про него есть материал как проверить DNS-записи и отладить домен.
7) Не смешивайте инструменты без понимания
Если системой управляет NetworkManager, ручная команда ip может быть перезаписана. Если сеть настраивает cloud-init, правки Netplan тоже могут неожиданно поменяться при пересоздании инстанса. ip отлично подходит для диагностики и временных проверок, но постоянный источник правды должен быть один.
В связке с мониторингом доступности это особенно заметно: алерт говорит, что сломался пользовательский путь, а ip помогает проверить нижний уровень — адресацию, маршрутизацию, линк и соседей, прежде чем переходить к ss, ping, mtr и логам.
FAQ
Можно ли полностью удалить ifconfig и пользоваться только ip?
Да. Для современных Linux-систем ip покрывает задачи ifconfig, route и arp. Для сокетов и портов используйте ss.
Почему ip addr add не сохраняется после перезагрузки?
Потому что команда меняет текущее состояние ядра, а не постоянный конфиг. Настройку нужно добавить в Netplan, NetworkManager, systemd-networkd или другой сетевой менеджер.
Чем ip link отличается от ip addr?
ip link показывает и настраивает интерфейсы на канальном уровне: состояние, MTU, MAC. ip addr показывает и настраивает IP-адреса на этих интерфейсах.
Как понять, через какой интерфейс пойдёт трафик до IP?
Используйте ip route get IP_ADDRESS. Команда покажет маршрут, интерфейс, gateway и выбранный source IP.
Похожие статьи

Как работает DNS. От запроса до IP-адреса, простыми словами
Разбираемся, как устроена система DNS, какие бывают типы запросов и как браузер находит IP-адрес сайта. Добавляем советы по ручному резолвингу через hosts.
9 ноября 20256 мин

Команда ping: как пользоваться и правильно читать вывод
Практическое руководство по ping: запуск, параметры, интерпретация вывода и ограничения при диагностике сайтов и серверов.
15 октября 20269 мин

Не открывается сайт: пошаговая диагностика для обычного пользователя и владельца
Практический чеклист, который помогает понять, где именно сломалась доступность сайта: на устройстве, в DNS, HTTPS, сервере или сети.
10 августа 202610 мин
Настроить мониторинг за 30 секунд
Надёжные уведомления о даунтаймах. Без ложных срабатываний