Назад | Перейти на главную страницу

Можно ли смотреть пакеты подключения tcp при вызове подключения из командной строки в Linux?

В основном я хочу сделать что-то вроде strace ssh user @ host, и вместо того, чтобы видеть системные вызовы, я хочу наблюдать за пакетами соединения tcp при установке соединения.

У меня эта странная проблема между двумя конкретными машинами, где b может подключиться к a, но большую часть времени не может подключиться к b, а когда он может подключиться, соединение очень медленное, и требуется всего лишь минута, чтобы получить приветствие ssh.

Похоже, пакеты сбрасываются, поэтому я ищу способ диагностики. Я знаю, что могу запустить wirehark или что-то в этом роде (предложения приветствуются), но я подумал, есть ли что-то простое и конкретное для процесса, которое было бы удобно.

Вы можете отлично выполнять нюхание с помощью tcpdump

установить tcpdump

на debian, ubuntu

apt install tcpdump 

на CentOS

yum install tcpdump

слушать пакеты tcp

сначала перечислите ваши интерфейсы

tcpdump -D

список / захват пакетов на интерфейсе eth0

tcpdump -n -i eth0

список / захват ТОЛЬКО TCP-пакетов на интерфейсе eth0

 tcpdump -i eth0 tcp

скриншоты

tcpdump Показать доступные интерфейсы

tcpdump Capture показать пакеты

Итак, я нашел свою проблему, это оказался скрипт, генерирующий множество правил удаления iptables. Я предполагаю, что один из IP-адресов, который он блокировал, был на одном из маршрутов между двумя машинами, поэтому он был прерывистым. Удаление правил iptables решило проблему.