Linux中利用netstat命令查看網絡狀態
補充:
IP地址是服務器在互聯網中唯一的地址標識。
假設有一臺阿里雲服務器,我們通過IP地址可以找到它。
服務器中啟動了Tomcat、FTP服務...,
當客戶端訪問服務器時,如何確定訪問的是哪一個服務?
解:
端口就是用於網絡通信的接口,是數據從傳輸層向上傳遞到應用層的數據通道。
每個常規服務都有默認的端口號,通過不同的端口號就可以訪問不同服務。
總結:
客戶端通過IP地址訪問服務器,假設數據包訪問的是80端口,則為Web服務。
若數據包訪問的是21端口,則訪問的是FTP服務。
即:客戶端可以通過固定的端口訪問指定的服務。
而我們可以通過在服務器中查看已經開啟的端口號,就可以判斷服務器中開啟了那些服務。
1、netstat
netstat是網絡狀態查看命令,可以查看到本機開啟的端口及有哪些客戶端連接。
2、命令格式
netstat [選項]
3、選項
-a:列出所有網絡狀態,包括Socket程序。
-c:秒數,指定每隔幾秒刷新一次網絡狀態。
-n:使用IP地址和端口號顯示,不使用域名與服務名。
-p:顯示PID和程序名。
-t:顯示使用TCP協議端口的連接狀況。
-u:顯示使用UDP協議端口的連接狀況。
-I:僅顯示監聽狀態的連接。
-r:顯示路由表。
4、 案例
案例1、查看本機開啟的端口
netstat -tuln
這裡的選項-tuln是比較常用的方式。
Proto(協議):
一般就是 TCP 協議或者 UDP 協議。
Recv-Q(接收隊列):
表示接收到的數據,已經在本地的緩衝中,但是還沒有被進程取走。
Send-Q(發送隊列) :
表示從本機發送,對方還沒有收到的數據,依然在本地的緩衝中,不具備ACK標誌數據包。
Local Address(本機IP地址及端口號):
Foreign Address(遠程主機IP地址及端口號)
State(狀態):
-LISTEN:監聽狀態,只有TCP協議需要監聽,而UDP協議不需要監聽。
-ESTABLISHED:已經建立連接的狀態。
-SYN_SENT:SYN發起包,就是主動發起連接的數據包。
-SYN_RECV:接收到主動連接的數據包。
-FIN_WAIT1:正在中斷的連接。
-FIN_WAIT2:已經中斷的連接,但是正在等待對方主機進行確認。
-TIME_WAIT:連接已經中斷,但是套接字依然在網絡中等待結束。
-CLOSED:套接字沒有被使用。
案例2:
netstat -tulnp
查看本機有哪些程序開啟的端口
案例3:
netstat -an
查看所有連接。
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
閱讀更多 程序員日常筆記 的文章