Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСети и протоколы

tcpdump: первые шаги для тех, кто боится

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
8 июня, 11:17первое сообщение

Половина вопросов в этом разделе упирается в одно: человек не видит провод и гадает на кофейной гуще. А там четыре ключа, остальное по вкусу.

Запускать так:

sudo tcpdump -i any -nn -c 20 port 1080

Расшифровка по буквам. Ключ -i any слушает все интерфейсы разом, удобно, пока не знаешь, через какой пойдёт. Две буквы n запрещают превращать адреса и порты в имена, иначе tcpdump сам полезет к службе имён и нашумит в вашем же дампе. Ключ -c 20 останавливает после двадцати кадров, чтобы экран не улетел в бесконечность. Хвост строки это фильтр, тут он читается по-человечески.

Фильтры складываются словами and, or, not: host 10.0.0.5 and port 1080, not port 22. Последнее обязательно, когда работаете по ssh, иначе увидите собственный сеанс и ничего больше.

Кому что ещё непонятно, спрашивайте, добью в этой же теме.

слушаю провод, а не догадки
Данила Р
Данила Р
Новичок
сообщений 145
с мар, второй сезон
15 ноября, 14:34#2

у меня пишет permission denied, sudo не хочу давать всем подряд

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
22 апреля, 17:51#3

Права выдаются точечно, sudo для этого не нужен. Ставим программе две способности, и она читает провод от обычного пользователя.

sudo setcap cap_net_raw,cap_net_admin=eip $(which tcpdump)

После этого дамп снимает кто угодно из вашей группы. На арендованном сервере так же.

слушаю провод, а не догадки
skript_kid
skript_kid
Новичок
сообщений 54
с сен, второй сезон
1 сентября, 08:08#4

а что означают буквы в квадратных скобках, S точка P

Борис Лапин
Борис Лапин
Знаток
сообщений 1960
с мар
8 февраля, 11:25#5

Буквы это флаги TCP, по ним читается вся жизнь соединения. Разберу строку целиком, дальше пойдёт само.

одна строка вывода по частям
одна строка вывода по частям

Время с точностью до микросекунды, кто кому, флаги, порядковый номер, окно, длина полезной части. Три строки выше это рукопожатие: постучались, ответили, подтвердили. Разница между первой и второй строкой это ваша задержка до узла, двадцать шесть миллисекунд.

ФлагЧто значит
Sстучимся, открываем соединение
S.ответили и подтвердили
.голое подтверждение
P.пришли данные, отдай их программе сразу
F.вежливо закрываем
Rоборвали грубо, тут и ищите беду

Буква R в дампе означает, что кто-то из двоих закрыл дверь ногой. Смотрите, с какой стороны она прилетела: адрес в начале строки скажет, кто именно.

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
15 июля, 14:42#6

На Windows та же логика, названия другие. Есть встроенный pktmon, есть tshark из комплекта Wireshark. Я обычно снимаю дамп в файл на сервере и открываю его дома глазами.

stackfix
stackfix
Участник
сообщений 495
с окт
22 декабря, 17:59#7

Раз уж речь про файл. Дамп на экран годится для быстрого взгляда, всё длиннее пары минут пишите на диск:

sudo tcpdump -i any -nn -w /tmp/probe.pcap -C 50 -W 4 port 1080

Ключ -C 50 режет по пятьдесят мегабайт, -W 4 держит четыре файла по кругу, старые затираются. Диск не кончится, даже если забудете выключить. Читается потом обычным tcpdump -r /tmp/probe.pcap или мышкой в Wireshark.

пишу скрипты, чтобы не писать скрипты
Данила Р
Данила Р
Новичок
сообщений 145
с мар, второй сезон
1 мая, 08:16#8
Борис Лапин: смотрите, с какой стороны она прилетела

вот это прямо про мой случай, у меня обрывы были и я думал на посредника, а прилетало с сайта. спасибо

tcpdump_fan
tcpdump_fan
Знаток
сообщений 1010
с июн
8 октября, 11:33#9

Данила Р, классика. Половина жалоб на посредника лечится одним дампом на пять минут.

Кину в закладки раздела, тема пусть висит для новеньких. Если что-то в выводе непонятно, приносите строку сюда, разберём по частям.

слушаю провод, а не догадки