Dos命令 netstat -ano 檢視端口占用及關閉程序
1. 檢視端口占用
在windows命令列視窗下執行:
netstat -aon|findstr "8080"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
埠“8080”被PID(程序號)為2448的程序佔用。
如果查詢的指定埠沒有被佔用 命令列中就無顯示.
檢視埠“8080”被哪個應用佔用,,繼續執行下面命令:
tasklist|findstr "2448"
notepad.exe 2016 Console 0 16,064 K
2. 關閉程序
2.1 按程序號關閉程序
taskkill /pid 2152
多個時格式為:
taskkill /pid 2152 /pid 1284
2.2 按程序名關閉程序
如要關閉notepad.exe,格式為:
taskkill /im notepad.exe
指定多個時格式為:
taskkill /im notepad.exe /im iexplorer.exe
如果是要關閉所有的,則使用萬用字元*,即:
taskkill /im *.exe
2.3 有提示的關閉程序
taskkill /t /im notepad.exe taskkill /t /pid 2152
這個效果是提示後在使用者確定後關閉,有提示框。
2.4 強行終止程序
taskkill /f /im notepad.exe taskkill /f /pid 2152
3. 埠狀態
3.1 LISTENING狀態
FTP服務啟動後首先處於偵聽(LISTENING)狀態。
3.2 ESTABLISHED狀態
ESTABLISHED的意思是建立連線。表示兩臺機器正在通訊。
3.3 CLOSE_WAIT
對方主動關閉連線或者網路異常導致連線中斷,這時我方的狀態會變成CLOSE_WAIT 此時我方要呼叫close()來使得連線正確關閉
3.4 TIME_WAIT
我方主動呼叫close()斷開連線,收到對方確認後狀態變為TIME_WAIT。TCP協議規定TIME_WAIT狀態會一直持續2MSL(即兩倍的分段最大生存期),以此來確保舊的連線狀態不會對新連線產生影響。處於TIME_WAIT狀態的連線佔用的資源不會被核心釋放,所以作為伺服器,在可能的情況下,儘量不要主動斷開連線,以減少TIME_WAIT狀態造成的資源浪費。
目前有一種避免TIME_WAIT資源浪費的方法,就是關閉socket的LINGER選項。但這種做法是TCP協議不推薦使用的,在某些情況下這個操作可能會帶來錯誤。
3.5 SYN_SENT狀態
SYN_SENT狀態表示請求連線,當你要訪問其它的計算機的服務時首先要發個同步訊號給該埠,此時狀態為SYN_SENT,如果連線成功了就變為ESTABLISHED,此時SYN_SENT狀態非常短暫。但如果發現SYN_SENT非常多且在向不同的機器發出,那你的機器可能中了衝擊波或震盪波之類的病毒了。這類病毒為了感染別的計算機,它就要掃描別的計算機,在掃描的過程中對每個要掃描的計算機都要發出了同步請求,這也是出現許多SYN_SENT的原因。