25

Я использую ноутбук OS X Mountain Lion и у меня есть пара коробок Vagrant. Я пытаюсь выяснить, какой процесс прослушивает порт 8080. Мои варианты выдают около ста строк, но ни одна из них не имеет определенного номера порта. Я предполагаю что-то вроде:

netstat -XXX | grep 8080

7 ответов7

50

К сожалению, в OSX вы застряли с netstat BSD, который не покажет вам идентификатор процесса, который подключен к данному порту. Вместо этого вы должны использовать lsof . Синтаксис, который вам нужно использовать:

lsof -i :8080

Это распечатает кучу информации, большая часть которой вам не нужна, но поля хорошо помечены. Например, проверьте этот пример вывода.

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

Это говорит мне, что порт 53237 используется идентификатором процесса 927. При чтении поля COMMAND имейте в виду, что этот вывод является усеченным, на самом деле полное имя двоичного файла - GoogleTalkPlugin.

7

Это то, что мне нравится использовать при поиске PID порта прослушивания. Для Linux используйте: netstat -tunlp

  • н сеть
  • л порты прослушивания
  • р процесс
  • t tcp
  • как ты?

Дополнительную информацию можно найти на страницах руководства.

5

Я был в процессе изменения netstat в OS X, чтобы обеспечить эту функцию, и наткнулся на тот факт, что -v даст вам pid, связанный с сокетом.

4

Для меня следующие две строки лучше всего показывают, какие приложения имеют открытые порты прослушивания и туннель:

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN
1

Чтобы узнать конкретный порт, используйте команду netstat ниже

  netstat -an | grep ':8080'
1

От человека нетстать

-p, --program Показать PID и имя программы, к которой принадлежит каждый сокет.

Я обычно просто делаю это: netstat -antup | grep 8080

0

Команда ниже показывает соединение:

netstat -antop | grep :8080

Для просмотра всего потока в реальном времени вы можете использовать watch:

watch -d -t -n 1 'lsof -n -i :8080'

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