Поиск локальных процессов, запускающих TCP-соединения

С tcpdump я вижу много SYN-пакетов … и IP-адрес источника – Localhost.

Я хочу найти, какие процессы пытаются подключиться.

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

3 Solutions collect form web for “Поиск локальных процессов, запускающих TCP-соединения”

Предполагая, что у вас установлен SystemTap

 probe begin { printf("ok\n"); } probe syscall.connect { # connect however may fail or flail around in a EINPROGRESS state; # this log only indicates that a connect was attempted if (uaddr_af == "AF_INET" || uaddr_af == "AF_INET6") printf("%s[%d]: %s\n", execname(), pid(), argstr); } probe syscall.connect.return { printf(" -> %s[%d]: %s\n", execname(), pid(), retstr); } 

сохранено как whomakeconnect.stp будет показывать вызовы connect при запуске с stap как root

 # stap-prep ... fix anything reported, it requires debug kernels ... # stap whomakeconnect.stp 

Вы можете использовать netstat cammand. Он показывает состояние пакета. Но вы должны поймать выход, потому что это кажется только при отправке. Это не похоже на сокет для прослушивания tcp. Вот почему вы можете заставить его поймать, используя команду watch. Я полагаю, что соединение связано с ipv4.

 watch -n 0.1 'netstat -4pn | grep -F "SYN_SENT"' 

флаги nestat

p flag: идентификатор процесса / имя

n flag: числовой вывод (без разрешения dns)

4: показать ipv4 сокеты

команда watch делает команду netstat повторяющейся с 0,1-секундным периодом.

Недавно я был в той же ситуации в Linux (виновником был adb ). Мой подход заключался в использовании системы аудита для регистрации системных вызовов connect() .

 sudo auditctl -a exit,always -F arch=b64 -S connect -k who-connects 

Чтобы сообщить системе аудита о регистрации всех системных вызовов connect() (здесь 64-битный вариант, вы можете добавить еще один вариант для 32-битных вариантов, если вы работаете в многоэкранной системе с 32-разрядными и 64-разрядными приложениями)

Позднее запустить:

 sudo ausearch -i -k who-connects 

Чтобы узнать, что сделало связи.

По-прежнему можно было бы создавать TCP-соединения, не используя API-интерфейс сокета. Например, реализовав стек TCP в пользовательском пространстве и используя API нижнего уровня для отправки пакетов, но это не будет распространено (особенно в интерфейсе loopback).

  • TCP-потоки, сосуществующие с UDP при использовании SFQ (стохастическая честная очередь)
  • Есть ли более быстрый интерфейс для информации из / proc / net / tcp?
  • Как передать полученные данные из netcat в другой скрипт в качестве аргумента?
  • Отбросить пакеты TCP и предотвратить повторную передачу TCP
  • `cat / dev / ttyACM` теряет данные при передаче через netcat
  • Мониторинг портов на маршрутизаторе NAT на основе GNU / Linux
  • Какая часть недавней исправления TCP-буфера для Linux также применяется к SCTP?
  • Отправить пакет TCP на тот же источник
  • Как правильно делать реле «netcat», чтобы у меня было больше контроля?
  • Закройте необходимые порты
  • как проверить rx ring, max_backlog и max_syn_backlog размер
  • Interesting Posts

    Регулирование пользовательских деmonoв от прослушивания на непривилегированных портах (предотrotation подмены сервера)?

    Получить размер отправленного запроса на завивание

    как печатать, если строка содержит определенный шаблон и не печатать, если она не содержит шаблон

    Если я SSH на удаленную машину, и мое соединение будет отключено, то есть шанс, что запуск, который я сделал, продолжится?

    ImportError: /usr/lib64/libxml2.so.2: version `LIBXML2_2.9.0 'не найден

    Как удалить постоянные данные конфигурации из APT?

    На каких дистрибутивах unix установлен Python как часть стандартной установки?

    Как получить среднюю скорость потока труб

    Vi заменит искомую строку

    Как вы скрываете панель?

    Как стандартизировать количество символов в столбце?

    Маршрутизация всего трафика с eth0 на wlan0

    Окно исчезло после того, как я нажал клавишу в Openbox, как мне вернуть его?

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

    как дублировать значения каждой строки под каждым в течение n раз?

    Linux и Unix - лучшая ОС в мире.