3 回答

TA貢獻(xiàn)1821條經(jīng)驗 獲得超5個贊
在macOS High Sierra上,使用以下命令:
lsof -nP -i4TCP:$PORT | grep LISTEN
在舊版本上,使用以下形式之一:
lsof -nP -iTCP:$PORT | grep LISTENlsof -nP -i:$PORT | grep LISTEN
$PORT
用端口號或逗號分隔的端口號列表替換。
sudo
如果您需要有關(guān)#1024以下端口的信息,請前置(后跟空格)。
該-n
標(biāo)志用于顯示IP地址而不是主機(jī)名。這使得命令執(zhí)行速度更快,因為獲取主機(jī)名的DNS查找可能很慢(許多主機(jī)需要幾秒或一分鐘)。
該-P
標(biāo)志是用于顯示原始的端口號,而不是解決的名字,如http
,ftp
或像更深奧的服務(wù)名稱dpserve
,socalia
。
有關(guān)更多選項,請參閱注釋。

TA貢獻(xiàn)1805條經(jīng)驗 獲得超10個贊
從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
命令會給出一個監(jiān)聽某個端口的進(jìn)程列表,并listening smth
為某些模式greps這個。
有了這個,很容易詢問特定的過程,例如listening dropbox
,或端口,例如listening 22
。
lsof
命令有一些專門的選項來詢問端口,協(xié)議,進(jìn)程等,但我個人發(fā)現(xiàn)上面的功能更方便,因為我不需要記住所有這些低級選項。lsof
是一個非常強(qiáng)大的工具,但不幸的是使用起來不那么舒服。

TA貢獻(xiàn)1789條經(jīng)驗 獲得超8個贊
真的很驚訝沒有人建議:
lsof -i :PORT_NUMBER
獲得所需的基本信息。例如,檢查端口1337:
lsof -i :1337
其他變化,取決于具體情況:
sudo lsof -i :1337lsof -i tcp:1337
您可以輕松地在此基礎(chǔ)上提取PID本身。例如:
lsof -t -i :1337
這也與此命令等效(結(jié)果):
lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID
為了完整性,因為經(jīng)常一起使用:
殺死PID:
kill -9 <PID># kill -9 60401
或作為一個班輪:
kill -9 $(lsof -t -i :1337)
添加回答
舉報