四、netstat 命令
netstat是網(wǎng)絡(luò)狀態(tài)查看命令,既可以查看到本機(jī)開啟的端口援所,也可以查看有哪些客戶端連接。
在CentOS7.x中netstat命令默認(rèn)沒有安裝欣除,如果需要使用住拭,需要安裝net-snmp和net-tools軟件包。(CentOS6中自動安裝)
1历帚、netstat命令的基本信息如下滔岳。
- 命令名稱:netstat。
- 英文原意:Print network connections挽牢,routing tables谱煤,interface statistics,masquerade connections禽拔,and multicast memberships刘离。
- 所在路徑:/bin/netstat。
- 執(zhí)行權(quán)限:所有用戶睹栖。
- 功能描述:輸出網(wǎng)絡(luò)連接硫惕、路由表、接口統(tǒng)計野来、偽裝連接和組播成員恼除。
命令格式如下:
[rootelocalhost ~] # netstat [選項(xiàng)]
選項(xiàng):
-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é)議端口的連接狀況
-1:僅顯示監(jiān)聽狀態(tài)的連接
-r:顯示路由表
2豁辉、例子1:查看本機(jī)開啟的端口
這是本機(jī)最常用的方式,使用選項(xiàng)-tuln
舀患。因?yàn)槭褂昧?code>-l選項(xiàng)徽级,所以只能看到監(jiān)聽狀態(tài)的連接,而不能看到已經(jīng)建立連接狀態(tài)的連接聊浅。例如:
這個命令的輸出較多灰追。
- Proto:網(wǎng)絡(luò)連接的協(xié)議,一般就是TCP協(xié)議或者UDP協(xié)議狗超。
- Recv-Q:表示接收到的數(shù)據(jù)。已經(jīng)在本地的緩沖中朴下,但是還沒有被進(jìn)程取走努咐。
- Send-Q:表示從本機(jī)發(fā)送,對方還沒有收到的數(shù)據(jù)殴胧。依然在本地的緩沖中渗稍,一般是不具備ACK標(biāo)志的數(shù)據(jù)包佩迟。
- Local Address:本機(jī)的IP地址和端口號。
- Foreign Address:遠(yuǎn)程主機(jī)的IP地址和端口號竿屹。
- State:狀態(tài)报强。常見的狀態(tài)主要有以下幾種。
- LISTEN:監(jiān)聽狀態(tài)拱燃,只有TCP協(xié)議需要監(jiān)聽秉溉,而UDP協(xié)議不需要監(jiān)聽。
- ESTABLISHED:已經(jīng)建立連接的狀態(tài)碗誉。如果使用“-l”選項(xiàng)召嘶,則看不到已經(jīng)建立連接的狀態(tài)。
- SYNSENT:SYN發(fā)起包哮缺,就是主動發(fā)起連接的數(shù)據(jù)包弄跌。
- SYNRECV:接收到主動連接的數(shù)據(jù)包。
- FINWAIT1:正在中斷的連接尝苇。
- FINWAIT2:已經(jīng)中斷的連接铛只,但是正在等待對方主機(jī)進(jìn)行確認(rèn)。
- TIMEWAIT:連接已經(jīng)中斷糠溜,但是套接字依然在網(wǎng)絡(luò)中等待結(jié)束淳玩。
- CLOSED:套接字沒有被使用。
在這些狀態(tài)中诵冒,我們最常用的就是LISTEN
和ESTABLISHED
狀態(tài)凯肋,一種代表正在監(jiān)聽,另一種代表已經(jīng)建立連接汽馋。
3侮东、例子2:查看本機(jī)有哪些程序開啟的端口
如果使用“p”選項(xiàng),則可以查看到是哪個程序占用了端口豹芯,并且可以知道這個程序的PID悄雅。例如:
4、例子3:查看所有連接
使用選項(xiàng)“-an”可以查看所有連接铁蹈,包括監(jiān)聽狀態(tài)的連接(LISTEN)宽闲、已經(jīng)建立連接狀態(tài)的連接(ESTABLISHED)、Socket程序連接等握牧。因?yàn)檫B接較多容诬,所以輸出的內(nèi)容有很多。例如:
從“Active UNIX domain sockets”開始沿腰,之后的內(nèi)容就是Socket程序產(chǎn)生的連接览徒,之前的內(nèi)容都是網(wǎng)絡(luò)服務(wù)產(chǎn)生的連接。我們可以在“-an”選項(xiàng)的輸出中看到各種網(wǎng)絡(luò)連接狀態(tài)颂龙,而之前的“-tuln”選項(xiàng)則只能看到監(jiān)聽狀態(tài)习蓬。
5纽什、例子4:查看網(wǎng)關(guān)地址
ifconfig
命令只能看到IP地址,Mac地址躲叼,子網(wǎng)掩碼芦缰。如下圖
但是我們并不同通過ifconfig
命令查看到網(wǎng)關(guān),如果需要查看網(wǎng)關(guān)地址枫慷,就需要用到netstat 命令
让蕾。如下圖
執(zhí)行命令:netstat -rn