10 ответов:
Я не вижу как. PID не делает это на проводе (вообще говоря), плюс Wireshark позволяет вам смотреть на то, что находится на проводе - потенциально все машины, которые общаются по сети. Во всяком случае, идентификаторы процессов не уникальны на разных машинах.
на всякий случай, если вы ищете альтернативный способ, и среда, которую вы используете, - это Windows, Microsoft Сетевой Монитор 3.3-это хороший выбор. Он имеет столбец имя процесса. Вы можете легко добавить его в фильтр с помощью контекстного меню и применить фильтр.. Как обычно графический интерфейс очень интуитивно понятен...
вы можете сопоставить номера портов от wireshark до номеров портов, скажем, netstat который скажет вам PID процесса прослушивания на этом порту.
используйте анализатор сообщений Microsoft v1. 4
перейдите к ProcessId из средства выбора полей.
Etw -> EtwProviderMsg --> EventRecord ---> Header ----> ProcessIdщелкните правой кнопкой мыши и добавить столбец
в Windows есть экспериментальная сборка, которая делает это, как описано в списке рассылки,фильтр по имени локального процесса
Это важная вещь, чтобы иметь возможность сделать для мониторинга, где некоторые процессы пытаются подключиться, и кажется, что нет никакого удобного способа сделать это на Linux. Однако возможны несколько обходных путей, и поэтому я считаю, что стоит упомянуть о них.
есть программа под названием нонет что позволяет запускать программу без доступа в интернет (у меня есть большинство программ запуска на моей системе, настроенной с ним). Он использует setguid для запуска процесса в группе nonet и устанавливает значение iptables правило для отказа от всех подключений из этой группы.
обновление: теперь я использую еще более простую систему, вы можете легко иметь читаемую конфигурацию iptables с ferm и просто использовать программу
sgдля запуска программы с определенной группой. Iptables также позволяет перенаправлять трафик, поэтому вы даже можете перенаправить его на отдельный интерфейс или локальный прокси-сервер на порту, который позволяет фильтровать в wireshark или регистрировать пакеты непосредственно из iptables, если вы этого не сделаете хотите отключить весь интернет во время проверки трафика.это не очень сложно адаптировать его для запуска программы в группе и сократить весь остальной трафик с iptables на время выполнения, а затем вы можете захватить трафик только из этого процесса.
Если я когда-нибудь приду к его написанию, я опубликую ссылку здесь.
С другой стороны, вы всегда можете запустить процесс в виртуальной машине и нюхать правильный интерфейс для изоляции соединений делает, но это было бы довольно плохое решение...
в некоторых случаях вы не можете фильтровать по ID процесса. Например, в моем случае мне нужно было нюхать трафик из одного процесса. Но я нашел в его конфигурации целевой IP-адрес машины, добавил фильтр
ip.dst==someipи вуаля. Он не будет работать в любом случае, но для некоторых это полезно.
получить номер порта с помощью
netstat:netstat -bа затем использовать фильтр Wireshark:
tcp.port == portnumber
если вы хотите следить за приложением, которое все еще должно быть запущено, то это, безусловно, возможно:
- установить докер (см. https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/)
- откройте терминал и запустите крошечный контейнер:
docker run -t -i ubuntu /bin/bash(измените "ubuntu" на ваш любимый дистрибутив, это не должно быть так же, как в вашей реальной системе)- установите приложение в контейнер, используя тот же способ, что и вы установите его в реальной системе.
- запустите wireshark в вашей реальной системе, перейдите в capture > options . В открывшемся окне вы увидите все ваши интерфейсы. Вместо того, чтобы выбрать
any,wlan0,eth0, ... выберите новый виртуальный интерфейс .- начать запись
- запустите приложение в контейнере
у вас могут возникнуть некоторые сомнения относительно запуска вашего программного обеспечения в контейнере, поэтому вот ответы на следующие вопросы вопросы, которые вы, вероятно, хотите спросить:
- будет ли мое приложение работать внутри контейнера ? почти наверняка да, но вам может понадобиться немного узнать о докере, чтобы заставить его работать
- не будет ли мое приложение работать медленно ? ничтожна. Если ваша программа-это что-то, что запускает тяжелые вычисления в течение недели, то теперь это может занять неделю и 3 секунды
- что делать, если мое программное обеспечение или что-то еще ломается в контейнере ? это хорошая вещь о контейнерах. Все, что работает внутри, может только сломать текущий контейнер и не может повредить остальную часть системы.
вы можете проверить номера портов с помощью этих примеров команд на wireshark: -
tcp.порт==80
tcp.порт==14220
Comments