Поскольку Snow Leopard (10.6), до Mojave (10.14) , каждая версия macOS поддерживает это:
sudo lsof -iTCP -sTCP:LISTEN -n -P
Лично я получил эту простую функцию в моем ~/.bash_profile
:
listening() {
if [ $# -eq 0 ]; then
sudo lsof -iTCP -sTCP:LISTEN -n -P
elif [ $# -eq 1 ]; then
sudo lsof -iTCP -sTCP:LISTEN -n -P | grep -i --color $1
else
echo "Usage: listening [pattern]"
fi
}
Затем команда listening
выводит список процессов, прослушивающих какой-либо порт, и listening smth
указывает это для некоторого шаблона.
Имея это, довольно легко спросить о конкретном процессе, например, listening dropbox
или порт, например listening 22
.
Команда
lsof
имеет несколько специализированных опций для запроса о порте, протоколе, процессе и т. Д., Но лично я обнаружил, что функция выше более удобна, поскольку мне не нужно запоминать все эти низкоуровневые опции. lsof
- довольно мощный инструмент, но, к сожалению, он не так удобен в использовании.