一、查看本地端口狀態
CMD的netstat命令可以查看本地端口的狀態,操作命令如下:
netstat -ano
其中,-a表示顯示所有選項,-n表示不使用別名,-o表示顯示一列「進程標識符」(PID)。
執行該命令後,CMD會輸出所有正在使用的端口及其對應的PID號,如下所示:
協議 本地地址 外部地址 狀態 進程標識符
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 716
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 127.0.0.1:5354 0.0.0.0:0 LISTENING 1404
TCP 127.0.0.1:27015 0.0.0.0:0 LISTENING 5884
TCP 192.168.1.2:139 0.0.0.0:0 LISTENING 4
可以看到,該命令列出了所有正在使用的TCP和UDP端口及其狀態,以及對應的PID號。通過PID號可以查找到該端口是哪個程序在使用。
二、查看指定端口狀態
若想查看指定端口的狀態,可以使用命令
netstat -ano | findstr ":端口號"
例如,要查看端口號為80的狀態,可以輸入
netstat -ano | findstr ":80"
CMD將輸出所有使用端口號為80的連接以及它們的狀態和PID號,如下所示:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 192.168.1.2:80 192.168.1.100:1234 ESTABLISHED 4524
TCP 192.168.1.2:80 192.168.1.100:1235 ESTABLISHED 4524
可以看到,其中一個連接處於LISTENING狀態,即該端口正在等待客戶端連接;另外兩個連接處於ESTABLISHED狀態,即與客戶端已建立連接。
三、查看遠程主機端口狀態
如果想查看遠程主機的端口狀態,可以使用命令:
netstat -an | findstr "遠程主機IP:端口號"
其中,-a表示顯示所有選項,-n表示不使用別名。
例如,要查看192.168.1.100主機上端口號為80的連接,可以輸入
netstat -an | findstr "192.168.1.100:80"
CMD將輸出所有與該主機建立的連接以及它們的狀態和本地端口號,如下所示:
TCP 192.168.1.2:1234 192.168.1.100:80 ESTABLISHED
TCP 192.168.1.2:1235 192.168.1.100:80 ESTABLISHED
可以看到,本地主機與遠程主機192.168.1.100的端口號為80的連接分別處於ESTABLISHED狀態。
四、查看端口所屬的進程
可以使用Tasklist命令查看所有進程及其對應的PID號,操作命令如下:
tasklist
其中,/FI表示篩選程序,/FI “PID eq 進程標識符”表示按進程標識符篩選進程名稱。
例如,要查看進程標識符為6888的進程名稱,可以輸入
tasklist /FI "PID eq 6888"
CMD將輸出指定PID號的進程名稱和進程所在路徑,如下所示:
映像名稱 PID 會話名 會話# 內存使用
SystemIdleProcess 0 Services 0 16 K
System 4 Services 0 7,936 K
smss.exe 340 Services 0 288 K
csrss.exe 556 Services 0 4,116 K
wininit.exe 628 Services 0 4,940 K
services.exe 688 Services 0 12,468 K
...
可以看到,PID號為6888的進程名稱為services.exe。
結合第一條命令的輸出結果,可以根據PID號找到具體哪個程序在使用指定的端口。
五、關閉指定端口的連接
如果想關閉指定端口的連接,可以使用命令:
taskkill /F /PID 進程標識符
其中,-F表示強制終止進程。
例如,想關閉PID號為4524的進程,可以輸入
taskkill /F /PID 4524
此時,命令提醒用戶關閉進程可能導致數據丟失,是否繼續終止。若確認關閉,回車即可。
如需一次性關閉所有使用指定端口的進程,可以使用如下命令:
for /f "skip=1 tokens=2" %a in ('netstat -ano ^| findstr ":端口號"') do taskkill /f /pid %a
其中,%a是一個變量,用於保存netstat -ano命令輸出結果中PID號所在位置的第2列數據。
六、結語
CMD的netstat和tasklist命令可以方便地查看本地和遠程主機的端口狀態及其對應進程的信息,並且可以通過taskkill命令關閉指定端口的連接。在編寫和調試網絡程序時,這些命令可以提高效率,快速定位問題。
原創文章,作者:HURKI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333197.html