Существует ли эквивалентный инструмент/команда оболочки для Mac (предпочтительно интегрированная с ОС), которая имеет функциональность командной строки Windows netstat -b -n
? (отображает активные сетевые подключения с приложением, которое их создало, а также исходный/целевой IP+порт)
решение1
В OS X есть netstat
команда, но она не отображает информацию о программах, связанных с сетевыми подключениями. Если вы хотите это увидеть, вам нужно использовать lsof
вместо этого. Обратите внимание, что ее нужно запустить как root (т.е. с помощью sudo
), чтобы увидеть программы других пользователей:
sudo lsof -i
lsof
также имеет множество опций для управления отображаемым содержимым:
sudo lsof -i tcp -nP # show TCP unly (no UDP), and don't translate IP addrs and ports numbers to names
sudo lsof -i 6tcp -stcp:listen # show only IPv6 TCP ports in the listen state
sudo lsof -i @10.11.12.13 # show only connections to/from 10.11.12.13
...более подробную информацию см. на странице руководства.
решение2
lsof выводит список открытых файлов, поэтому если процесс находится, скажем, на этапе последнего подтверждения, они не будут перечислены
netstat не выдаст pid на osx
утилита не работает так, как предполагалось
поэтому нет правильных ответов
Насколько я понимаю, нет способа дублировать работу cports на Mac.
все остальные ответы вводят в заблуждение
решение3
Попробуйте nettop
. Он делает именно то, что вы просили.http://osxdaily.com/2013/06/07/watch-network-traffic-mac-os-x-nettop/
решение4
Как уже отмечалось, netstat также доступен в Mac OS X как инструмент командной строки.
Если вы предпочитаете графический интерфейс, интегрированный с ОС, то вы можете использовать сетевую утилиту, расположенную здесь:/Applications/Utilities/Network\ Utility.app
Помимо netstat, он также обеспечивает легкий доступ к другим сетевым утилитам. Хороший обзор сетевой утилиты можно найти в статье«Как использовать сетевую утилиту».