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

Linux: получить все вызовы подключения для локального порта

У меня есть туннель ssh, через который клиент подключается к серверу. С помощью, wireshark, Я мог видеть периодическое соединение SSH помимо keepalive, но я не могу получить процесс (pid), что вызывает этот трафик.

я использовал ss -ntap -o state all '( dport = :22 )' в цикле while, но он захватывает только keepalive соединения с локального порта, который ssh слушает.

 tcp        0      0 192.168.132.126:52998   10.10.100.102:22 \
 ESTABLISHED 0          10619644   8875/ssh

Как я могу получить идентификатор процесса, который вызывает ssh трафик для этого подключения? Другими словами, как я могу получить все вызовы подключения, инициированные для 10.10.100.102:22 ?

Быстро и грязно.

  1. Использовать iptables -A INPUT ... -j DROP для временного отбрасывания пакетов, идущих на локальный порт.
  2. затем sleep 10
  3. Собрать ss -antp, есть вероятность, что ваши связи будут там висеть со статусом (я думаю) SYN
  4. Затем перезагрузите брандмауэр iptables, чтобы отменить все изменения.
  5. Механизм повторной передачи TCP заставит ваши зависшие соединения продолжаться. Они только задержатся.