在Windows環境下,用netstat指令檢視某個端口号是否占用,為哪個程序所占用.
eg、檢視端口号為61078被哪個程式占用
1、檢視端口号為61079被哪個PID所占用:Netstat –ano|findstr “<端口号>”
<a href="http://s4.51cto.com/wyfs02/M01/77/15/wKiom1Zi5B3CFyDoAABXe83umGg876.png" target="_blank"></a>
從結果中可以找到端口61078被PID為5576的程序占用
2、通過該PID查找對應的程序名稱
從結果中可以判斷PID為5576的程序名為YoukuMediaCenter.exe
3、通過用任務管理器檢視找到該程序的安裝目錄
<a href="http://s2.51cto.com/wyfs02/M00/77/13/wKioL1Zi5jixqg3OAACOz84jTBg034.png" target="_blank"></a>
<a href="http://s1.51cto.com/wyfs02/M02/77/15/wKiom1Zi5geyYMJUAAFtAOD9t2c644.png" target="_blank"></a>
擴充
netatat指令
Netstat用于顯示與IP、TCP、UDP和ICMP協定相關的統計資料,一般用于檢驗本機各端口的網絡連接配接情況。
常見參數
-a (all)顯示所有選項,預設不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-o 顯示與每個連接配接相關的所屬程序PID
-n 拒絕顯示别名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀态
-p 顯示建立相關連結的程式名
-r 顯示路由資訊,路由表
-e 顯示擴充資訊,例如uid等
-s 按各個協定進行統計
-c 每隔一個固定時間,執行該netstat指令。
提示:LISTEN和LISTENING的狀态隻有用-a或者-l才能看到
網絡連接配接狀态
1)、LISTEN:首先服務端需要打開一個socket進行監聽, 偵聽來自遠方TCP端口的連接配接請求
2)、 SYN_SENT:用戶端通過應用程式調用connect進行active open.于是用戶端tcp發送一個SYN以請求建立一個連接配接.之後狀态置為SYN_SENT. 在發送連接配接請求後等待比對的連接配接請求
3)、 SYN_RECV:服務端應發出ACK确認用戶端的 SYN,同時自己向用戶端發送一個SYN. 之後狀态置為SYN_RECV,在收到和發送一個連接配接請求後等待對連接配接請求的确認
4)、ESTABLISHED: 代表一個打開的連接配接,雙方可以進行或已經在資料互動了,資料可以傳送給使用者
5)、 FIN_WAIT1:主動關閉(active close)端應用程式調用close,于是其TCP發出FIN請求主動關閉連接配接,之後進入FIN_WAIT1狀态.等待遠端TCP的連接配接中斷請求,或先前的連接配接中斷請求的确認
6)、CLOSE_WAIT:被動關閉(passive close)端TCP接到FIN後,就發出ACK以回應FIN請求(它的接收也作為檔案結束符傳遞給上層應用程式),并進入CLOSE_WAIT. 等待從本地使用者發來的連接配接中斷請求
7)、FIN_WAIT2:主動關閉端接到ACK後,就進入了 FIN-WAIT-2 . 從遠端TCP等待連接配接中斷請求
8)、LAST_ACK:被動關閉端一段時間後,接收到檔案結束符的應用程 序将調用CLOSE關閉連接配接。這導緻它的TCP也發送一個 FIN,等待對方的ACK.就進入了LAST-ACK . 等待原來發向遠端TCP的連接配接中斷請求的确認
9)、TIME_WAIT:在主動關閉端接收到FIN後,TCP 就發送ACK包,并進入TIME-WAIT狀态。等待足夠的時間以確定遠端TCP接收到連接配接中斷請求的确認
10)、CLOSING: 比較少見.等待遠端TCP對連接配接中斷的确認
11)、CLOSED: 被動關閉端在接受到ACK包後,就進入了closed的狀态。連接配接結束. 沒有任何連接配接狀态
12)、UNKNOWN: 未知的Socket狀态。
tasklist指令
“Tasklist”指令是一個用來顯示運作在本地或遠端計算機上的所有程序的指令行工具,帶有多個執行參數,預設顯示所有程序
<a href="http://s3.51cto.com/wyfs02/M00/78/87/wKiom1Z_TqyyOB4HAAA4bkkPj10176.png" target="_blank"></a>
參數
/S system 指定連接配接到的遠端系統。
/U [domain\]user 指定使用哪個使用者執行這個指令。
/P [password] 為指定的使用者指定密碼。
(使用tasklist指令檢視遠端系統的程序時,需要遠端機器的RPC 伺服器的支援,否則,該指令就不能正常使用)
<a href="http://s4.51cto.com/wyfs02/M02/78/87/wKiom1Z_T-jQ_RhKAAAk0uvjzvE589.png" target="_blank"></a>
/M [module] 列出調用指定的 DLL 子產品的所有程序,如果沒有指定子產品名,顯示每個程序加載的所有子產品。
/SVC 顯示每個程序中的服務。
/V 指定要顯示詳述資訊。
/FI filter 顯示一系列符合篩選器指定的程序。
lt (小于),
le (小于等于),
gt (大于),
ge (大于等于),
eq (等于),
ne (不等于)
<a href="http://s1.51cto.com/wyfs02/M01/78/86/wKioL1Z_U2-RQV_vAACCfTDs7v8449.png" target="_blank"></a>
列出了系統中正在運作的非“justin”使用者狀态的所有程序。
taskkill
taskkill是用來終止程序的
參數清單:
/S system 指定要連接配接到的遠端系統。
/U [domain\]user 指定應該在哪個使用者上下文 執行這個指令。
/P [password] 為提供的使用者上下文指定密碼。如果忽略,提示輸入。
/F 指定要強行終止程序。
/FI filter 指定篩選進或篩選出查詢的 的任務。
/PID process id 指定要終止的程序的PID。
/IM image name 指定要終止的程序的圖像名。通配符 '*'可用來指定所有圖像名。
/T Tree kill: 終止指定的程序和任何由此啟動的子程序。
/? 顯示幫助/用法。
<a href="http://s2.51cto.com/wyfs02/M01/78/88/wKiom1Z_VjywaMKqAAAcMZMtLE8305.png" target="_blank"></a>
本文轉自 justin_peng 51CTO部落格,原文連結:http://blog.51cto.com/ityunwei2017/1719930,如需轉載請自行聯系原作者