источник
Одной из альтернатив является использование lsof
утилиты; в частности, lsof -i 4tcp
будут перечислены все процессы с открытыми сетевыми сокетами TCP IPv4. Страница man lsof
предоставит вам подробную информацию о том, как использовать утилиту и как интерпретировать вывод.
Если вас интересует конкретный порт, вы можете использовать этот пример:
lsof -i 4tcp:8080 -sTCP:LISTEN
Если вы хотите получить только идентификатор процесса, вы можете запустить это:
lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Я использую приведенную ниже команду, когда хочу увидеть все, что находится на определенном порте для TCP или UDP. Этот -n
параметр отключает попытки преобразования IP-адресов в доменные имена, а также -P
отключает попытки выяснить имя определенного порта. Кроме того, выполнение as root
покажет вам больше процессов, чем обычного пользователя.
sudo lsof -iTCP:53 -iUDP:53 -n -P
В следующем примере кода перечислены все запущенные TCP-серверы на вашем локальном компьютере с OSX:
netstat -a -Ptcp | egrep 'tcp4.*LISTEN'
tcp4 0 0 127.0.0.1.2022 *.* LISTEN 0 0
tcp4 0 0 *.3141 *.* LISTEN 0 0
LISTEN
показывает только сокеты, прослушивающие соединения. То есть серверы.
Первая строка показывает сервер , привязанные к localhost
, он же 127.0.0.1
, порт 2022
. Он будет отвечать на локальные запросы, но не на интернет-запросы.
Вторая строка - это сервер, связанный со всеми адресами, т. Е. *
Порт 3141
. Он будет отвечать на запросы Интернет.
Чтобы вывести список портов, используемых клиентами и серверами, используйте следующее:
netstat -an -Ptcp | grep tcp4
netstat
на хостах, основанных на BSD, нет никакой информации о процессе ... вот в чем вопрос.Это должно быть возможно в окне терминала с помощью команды Netstat .
И если вам больше нравится GUI:
источник