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