Я смотрел на вывод netstat на MacBook. Я заметил, что некоторые приложения позволяют вам указать, какой порт он использует. Например, utorrent позволяет вам сделать это. Я выбрал порт 55743, затем запустил netstat | grep 55743 и вывод был следующий.

udp6       0      0  *.55743                *.*
udp4       0      0  *.55743                *.*

Когда я utorrent порт освобождается. Но, если я не знал номер порта, то как я могу узнать, какое приложение использует какой порт? И возможно ли, чтобы некоторые приложения тайно использовали порты для связи с устройствами внешних серверов?

2 ответа2

2

Как отметил Дэвид Хоуд, lsof -i - ваш друг, дает вам снимок текущих соединений / операций с сокетами . К сожалению, в OS X netstat не поддерживает эту функцию.

Другие варианты включают в себя:

Activity Monitor.app позволяет просматривать файлы и порты, открытые приложением. Это можно сделать, дважды щелкнув по процессу и открыв вкладку "Открыть файлы и порты".

Dtrace - проверьте скрипт soconnect, который дает вам непрерывную информацию о сетевых операциях, пока вы не выйдете (control+c). Пример вывода:

sudo /tmp/soconnect.d 
PID    PROCESS          FAM ADDRESS          PORT   LAT(us) RESULT
8211   X-Lite           2   192.168.1.109    5060        25 Success
4112   Google Chrome    2   173.194.34.134   443         53 In progress
8211   X-Lite           2   192.168.1.109    5060        30 Success

Одно приложение, которое мне лично очень нравится, это немного стукач, но это коммерческое программное обеспечение. Хотя это программное обеспечение брандмауэра для настольных компьютеров, у него есть ряд функций, которые могут быть вам интересны:

  • сетевой монитор, который сообщает, какие приложения куда подключаются (аналогично выходу soconnect.d)
  • захватывать сетевой трафик для каждого приложения (т. е. аналогично wireshark, вы можете наблюдать за сетевым трафиком, но ограничивать его только конкретным приложением)

Чтобы ответить на ваш второй вопрос - да, в традиционных операционных системах (например, OS X, Windows) приложения имеют возможность подключаться к сторонним системам различными способами и отправлять что угодно. Ряд брандмауэров настольных компьютеров пытаются решить эту проблему, позволяя указать, к чему может подключаться каждое приложение, создавая своего рода белый список. Как и все остальное в сфере безопасности, этот подход не лишен недостатков.

пс. У меня нет связи с поставщиками брандмауэров для настольных компьютеров :)

1

Вы можете сделать это с помощью нескольких аргументов netstat или с помощью lsof:

netstat -lp
lsof -i udp:55743

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .