Библиотека — Linux — справочник команд: сетевой стек [X]
Шифр
linux-tldr-network
Разделы
cheatsheet linux network
Сверено
2 сентября — в этот день утверждения статьи сверялись с первоисточниками, а не правился текст
Объём
4 959 знаков · 13 разделов · чтения около 5 минут

Linux — справочник команд: сетевой стек


← Назад к обзору


ss

Статистика сокетов. Быстрее и информативнее netstat, работает через netlink.

# Все TCP-соединения с процессами
ss -tnp

# Слушающие порты
ss -tlnp

# Сокеты в состоянии TIME-WAIT (с подсчётом)
ss -t state time-wait | wc -l

# Подробная информация о TCP-сокете (congestion window, RTT, retrans)
ss -ti dst 10.0.0.1

# Фильтр по порту
ss -tn dport = :443

nstat

Счётчики сетевой статистики ядра. Показывает дельту (инкремент) между вызовами.

# Все ненулевые счётчики (дельта с прошлого вызова, история обновляется)
nstat

# То же, но без обновления истории (-s): базовая точка не сдвигается
nstat -s

# Абсолютные значения с момента загрузки (-a), без обновления истории
nstat -as

# Конкретный счётчик (например, ретрансмиты)
nstat -s | grep -i retrans

gethostlatency

eBPF: задержки DNS-резолвинга (getaddrinfo, gethostbyname). Ловит медленный DNS.

# Все DNS-запросы в реальном времени с задержками
gethostlatency

# Только для конкретного PID
gethostlatency -p 1234

tcplife

eBPF: время жизни TCP-соединений, объём переданных данных, PID процесса.

# Все TCP-соединения с временем жизни
tcplife

# Фильтр по локальному порту
tcplife -L 443

# Фильтр по удалённому порту (-D — именно порты, а не длительность)
tcplife -D 5432

tcpretrans

eBPF: трассировка повторных передач TCP в реальном времени. Первый инструмент при подозрении на сетевые потери.

# Все ретрансмиты
tcpretrans

# С подсчётом по потокам (summary)
tcpretrans -c

# Включить TLP (Tail Loss Probe) кроме обычных ретрансмитов
tcpretrans -l

udpconnect

eBPF: трассировка UDP-соединений (connect() для UDP-сокетов).

# Все UDP connect() в системе
udpconnect

# Ключей у скрипта нет, фильтровать приходится по выводу
udpconnect | grep nginx

tcpdump

Захват пакетов. Тяжёлый, но незаменимый для анализа «на проводе».

# Трафик на конкретном интерфейсе и порту
tcpdump -i eth0 port 443 -nn

# Первые 200 байт каждого пакета, запись в файл
tcpdump -i any -s 200 -w /tmp/capture.pcap

# Только SYN-пакеты (новые соединения)
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0' -nn

# Трафик между двумя хостами
tcpdump -i eth0 host 10.0.0.1 and host 10.0.0.2 -nn

# Чтение pcap-файла с фильтром
tcpdump -r /tmp/capture.pcap port 80

ip

Швейцарский нож для сетевой конфигурации и статистики (iproute2).

# Все интерфейсы с адресами
ip -br addr

# Статистика по интерфейсу (ошибки, dropped, overruns)
ip -s link show eth0

# Таблица маршрутизации
ip route

# Соседи (ARP-таблица)
ip neigh

# Мониторинг сетевых событий в реальном времени
ip monitor

nicstat

Статистика сетевых интерфейсов в стиле iostat: утилизация и насыщенность.

# Все интерфейсы, обновление каждую секунду
nicstat 1

# Расширенная статистика интерфейса: ошибки, коллизии, defer
nicstat -x 1

# Статистика TCP, включая долю ретрансмитов (%ReTX)
nicstat -t 1

ethtool

Настройки и диагностика драйвера NIC.

# Состояние линка, скорость, дуплекс
ethtool eth0

# Статистика драйвера (ring buffer drops, tx errors)
ethtool -S eth0

# Информация о драйвере и firmware
ethtool -i eth0

# Проверить и настроить offloading
ethtool -k eth0
ethtool -K eth0 tso on gro on

pwru 🟢

eBPF: «packet-where-are-you» — трассировка пути пакета через все подсистемы ядра.

# Трассировка пакетов к конкретному хосту
# Фильтр — позиционный аргумент в синтаксисе pcap-filter (man 7 pcap-filter)
pwru 'host 10.0.0.1'

# С фильтром по порту и протоколу
pwru 'host 10.0.0.1 and tcp port 443'

# Показать стек ядра для каждой точки прохождения
pwru --output-stack 'host 10.0.0.1'

# Не терять пакет после NAT или снятия инкапсуляции
pwru --filter-track-skb 'host 10.0.0.1'

# Захватить заодно BPF-программы TC и XDP
pwru --filter-trace-tc --filter-trace-xdp 'host 10.0.0.1'

retis 🟢

Трассировка пакетов через сетевой стек с привязкой к контексту подсистем. Набор коллекторов закрытый: skb, skb-drop, skb-tracking, ovs, nft, ct, dev, ns. Комплементарен pwru.

# Без -c поднимаются все коллекторы, чьи требования выполнены
retis collect

# Контекст правил nftables
retis collect -c nft

# Пакеты и причины отбрасывания (drop reason)
retis collect -c skb,skb-drop

# Фильтр в синтаксисе pcap-filter, как у tcpdump
retis collect -c skb,nft -f "ip dst 10.0.0.1"

# Готовый профиль для разбора дропов в netfilter
retis -p nft-dropmon collect --allow-system-changes

Связанные заметки

Из библиотеки института уносят только знания. Читателей здесь не считают: посещение не регистрируется, отметок в издании не остаётся, счётчиков нет ни у одного издания фонда.

Издание пополняется и пересверяется. Текст доступен на условиях CC BY-SA 4.0 — унесённое можно передавать дальше на тех же условиях.