Mac
lsof -i :port port 指代端口號,下文中都是如此

lsof -i tcp:port tcp 表示查看tcp類型的進(jìn)程
Linux
1. ss 命令
一般用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息,它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。
ss -tnlp | grep ssh 查看ssh進(jìn)程
ss -tnlp | grep ":port"

2. netstat 命令
netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。默認(rèn)情況下,netstat 會列出已打開的套接字。
netstat -anp | grep port
netstat -lnp | grep port

netstat 常用參數(shù)參考:
-
-n, --numericdon't resolve names,不解析名稱,即用網(wǎng)絡(luò)IP地址代替名稱,以顯示網(wǎng)絡(luò)連接情形 -
-p, --programsdisplay PID/Program name for sockets,顯示建立相關(guān)連接的程序名和PID -
-l, --listeningdisplay listening server sockets 顯示在 listening (監(jiān)聽) 的服務(wù)狀態(tài) -
-a, --alldisplay all sockets (default: connected) 顯示所有socket(否則默認(rèn)只顯示已連接的)
3. lsof 命令
能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。
lsof -i :port

查看具體某類進(jìn)程
ps -ef | grep 進(jìn)程名
舉??:
ps -ef | grep node 查看Nodejs服務(wù) 占用的端口
ps -ef | grep nginx

image.png
殺死進(jìn)程(Linux和Mac皆可)
kill -9 port -9指令是指強(qiáng)殺進(jìn)程(非必要不推薦使用,還是找出對應(yīng)的程序結(jié)束它的運(yùn)行并修改沖突端口為好)
另外,用pm2運(yùn)行的項(xiàng)目占用的端口貌似殺不掉,有種可能就是pm2已經(jīng)運(yùn)行了這個項(xiàng)目(我自己就是忘記了),本地又想運(yùn)行下進(jìn)行測試,造成的沖突。
Windows
netstat -ano | findstr "port"

用 PID 值去查出進(jìn)程名(上圖的PID是852)
tasklist | findstr "PID"然后可以去任務(wù)管理器中去終止對應(yīng)程序,或者用 taskkill 命令結(jié)束:
taskkill /f /t /im PID