netstat命令是一個監控TCP/IP網路的非常有用的工具,它可以顯示路由表、實際的網路連接以及每一個網路介面裝置的狀態資訊,這裡我只用到其中的部分功能.
netstat 的常用參數: - t、- u、- w和- x分別表示TCP、UDP、RAW和UNIX通訊端串連。-a標記,還會顯示出等待串連(也就是說處於監聽模式)的通訊端。-l 顯示正在被監聽(listen)的連接埠, -n表示直接顯示連接埠數字而不是通過察看/etc/service來轉換為連接埠名,-p選項表示列出監聽的程式
1) netstat -tl
查看當前tcp監聽連接埠
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:rrac *:* LISTEN
tcp 0 0 *:34006 *:* LISTEN
......
2) netstat -tlp
查看當前tcp監聽連接埠, 需要顯示監聽的程式名,當不清楚mysql的監聽連接埠時比較好用
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:rrac *:* LISTEN -
tcp 0 0 *:34006 *:* LISTEN 23425/mysqld
......
3) netstat -tl | grep 34006
只查看mysql的監聽連接埠,當前啟動的mysql連接埠為34006,明確知道mysql監聽連接埠時使用
4) netstat -ta | grep 34006
tcp 0 0 *:34006 *:* LISTEN
tcp 0 0 linux.local:34006 linux.local:41485 ESTABLISHED
tcp 0 0 linux.local:34006 linux.local:41486 ESTABLISHED
...
tcp 0 0 10.3.2.35:41488 10.3.2.35:34006 ESTABLISHED
tcp 0 0 10.3.2.35:41489 10.3.2.35:34006 ESTABLISHED
tcp 0 0 10.3.2.35:41490 10.3.2.35:34006 ESTABLISHED
由於資料庫和運用程式都放在同一台機器了,因此這裡串連被顯示了兩次. 可以使用-p參數來顯示PID,然後grep PID.
5) netstat -tap | grep 34006 | grep 23425
23425是當前mysql的PID
tcp 0 0 *:34006 *:* LISTEN 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41510 ESTABLISHED 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41511 ESTABLISHED 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41516 ESTABLISHED 23425/mysqld
WINDOWS下用法:
目標:在Windows環境下,用netstat命令查看某個連接埠號碼是否佔用,為哪個進程所佔用.
操作:操作分為兩步:(1)查看該連接埠被那個PID所佔用;方法一:有針對性的查看連接埠,使用命令
Netstat –ano|findstr “<連接埠號碼>”,,最後一列為PID。圖中的連接埠號碼為1068,所對應的PID為3840。