Показать статистику
0 голосов
от (4.5тыс. баллов)

В линуксе всегда пользовался командой netstat что бы посмотреть список открытых сетевых портов: 

sudo netstat -tnlp

Как то же самое сделать в Маке?

15.7тыс. просмотров 3 ответов

3 Ответы

0 голосов
от (17.4тыс. баллов)

Попробуйте через lsof:

mymac7642:jcp and3001$ sudo lsof -PiTCP -sTCP:LISTEN
COMMAND    PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd      1     root    9u  IPv6 0x843cf6c66c6df1a7      0t0  TCP *:22 (LISTEN)
launchd      1     root   10u  IPv4 0x843cf6c66c6e4027      0t0  TCP *:22 (LISTEN)
launchd      1     root   12u  IPv6 0x843cf6c66c6df1a7      0t0  TCP *:22 (LISTEN)
launchd      1     root   19u  IPv4 0x843cf6c66c6e4027      0t0  TCP *:22 (LISTEN)
macmnsvc    56      mfe   20u  IPv6 0x843cf6c66c6df767      0t0  TCP *:8440 (LISTEN)
TracSrvWr   98     root   11u  IPv4 0x843cf6c66c6e36a7      0t0  TCP localhost:7778 (LISTEN)
mcpd       363     root  131u  IPv4 0x843cf6c68f1389a7      0t0  TCP *:49848 (LISTEN)
rapportd   672  and3001    3u  IPv4 0x843cf6c6958716a7      0t0  TCP *:52519 (LISTEN)
rapportd   672  and3001    4u  IPv6 0x843cf6c66c6dcf27      0t0  TCP *:52519 (LISTEN)
com.docke 1371  and3001    7u  IPv4 0x843cf6c6773dbd27      0t0  TCP localhost:49848 (LISTEN)
com.docke 1375  and3001   16u  IPv6 0x843cf6c67cfccaa7      0t0  TCP *:8080 (LISTEN)
0 голосов
от (4.5тыс. баллов)

В macOS, вы можете использовать команду lsof (list open files) для того же самого, что и netstat -tnlp в Linux. Вот пример команды, которую вы можете использовать для просмотра списка открытых сетевых портов на вашем Mac: 

sudo lsof -iTCP -sTCP:LISTEN -n -P

Пояснение флагов:

  • -iTCP: ограничивает вывод только TCP-соединениями.
  • -sTCP:LISTEN: фильтрует вывод, показывая только сетевые порты, на которых идет прослушивание (аналогично флагу -l в netstat).
  • -n: предотвращает преобразование числовых IP-адресов и номеров портов в имена.
  • -P: отключает преобразование номеров портов в имена служб.

Вывод будет содержать информацию о процессах и портах, на которых идет прослушивание. Если вы хотите отфильтровать вывод только для определенного порта, можно добавить grep в конце команды: 

sudo lsof -iTCP -sTCP:LISTEN -n -P | grep ':port_number'

Замените port_number на номер порта, который вы хотите проверить.

0 голосов
от (1.7тыс. баллов)

Вы можете использовать команду netstat и awk в macOS для просмотра списка открытых сетевых портов аналогично команде netstat -tnlp в Linux. Вот пример команды: 

netstat -anv -p tcp | awk 'NR>2 && $NF=="LISTEN" {print $1 " " $4 " " $6}'

Пояснение:

  • netstat -anv -p tcp: запускает netstat с флагами -a (все сокеты), -n (отображение числовых IP-адресов и номеров портов), -v (подробный вывод) и -p tcp (ограничение вывода только для TCP-соединений).
  • awk 'NR>2 && $NF=="LISTEN" {print $1 " " $4 " " $6}': использует awk для фильтрации вывода netstat, показывая только порты, на которых идет прослушивание (аналогично флагу -l в netstat).

Вывод будет содержать информацию о прослушивающих портах и IP-адресах. Если вы хотите отфильтровать вывод только для определенного порта, можно добавить grep в конце команды:

netstat -anv -p tcp | awk 'NR>2 && $NF=="LISTEN" {print $1 " " $4 " " $6}' | grep ':port_number'

Замените port_number на номер порта, который вы хотите проверить.

...