教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

linux培訓(xùn):netstat網(wǎng)絡(luò)狀態(tài)查看命令

更新時(shí)間:2019年04月03日13時(shí)37分 來源:傳智播客linux培訓(xùn) 瀏覽次數(shù):

    我們需要先簡(jiǎn)單了解一下端口的作用。在互聯(lián)網(wǎng)中,如果 IP 地址是 IP 服務(wù)器在互聯(lián)網(wǎng)中唯一的地址標(biāo)識(shí),那么大家可以想象一下:我有一臺(tái)服務(wù)器,它有固定的公網(wǎng) IP 地址,通過 IP 地址可以找到我的服務(wù)器。但是我的服務(wù)器中既啟動(dòng)了網(wǎng)頁服務(wù)(Web 服務(wù)),又啟動(dòng)了文件傳輸服務(wù)(FTP 服務(wù)),那么你的客戶端訪問我的服務(wù)器,到底應(yīng)該如何確定你訪問的是哪一個(gè)服務(wù)呢?
    端口就是用于網(wǎng)絡(luò)通信的接口,是數(shù)據(jù)從傳輸層向上傳遞到應(yīng)用層的數(shù)據(jù)通道。我們可以理解為每個(gè)常規(guī)服務(wù)都有默認(rèn)的端口號(hào),通過不同的端口號(hào),我們就可以確定不同的服務(wù)。也就是說,客戶端通過 IP 地址訪問到我的服務(wù)器,如果數(shù)據(jù)包訪問的是 80 端口,則訪問的是 Web 服務(wù);而如果數(shù)據(jù)包訪問的是 21 端口,則訪問的是 FTP 服務(wù)。
    我們可以簡(jiǎn)單地理解為每個(gè)常規(guī)服務(wù)都有一個(gè)默認(rèn)端口(默認(rèn)端口可以修改),這個(gè)端口是所有人都知道的,客戶端可以通過固定的端口訪問指定的服務(wù)。而我們通過在服務(wù)器中查看已經(jīng)開啟的端口號(hào),就可以判斷服務(wù)器中開啟了那些服務(wù)。
    netstat 是網(wǎng)絡(luò)狀態(tài)查看命令,既可以查看到本機(jī)開啟的端口,也可以查看有哪些客戶端連接。netstat 命令的基本信息如下。
    命令名稱:netstat。
    英文原意:Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships。
    所在路徑:/bin/netstat.
    執(zhí)行權(quán)限:所有用戶。
    功能描述:輸出網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)、偽裝連接和組播成員。

    命令格式如下:

    [root@localhost ~]# netstat [選項(xiàng)]
    選項(xiàng):
    -a:列出所有網(wǎng)絡(luò)狀態(tài),包括 Socket 程序;
    -c秒數(shù):指定每隔幾秒刷新一次網(wǎng)絡(luò)狀態(tài);
    -n:使用 IP 地址和端口號(hào)顯示,不使用域名與服務(wù)名;-p:顯示 PID 和程序名;
    -t:顯示使用 TCP 協(xié)議端口的連接狀況;
    -u:顯示使用 UDP 協(xié)議端口的連接狀況;
    -I:僅顯示監(jiān)聽狀態(tài)的連接;
    -r:顯示路由表;
    【例 1】查看本機(jī)開啟的端口。
    這是本機(jī)最常用的方式,使用選項(xiàng)"-tuln"。因?yàn)槭褂昧?quot;-I"選項(xiàng),所以只能看到監(jiān)聽狀態(tài)的連接,而不能看到已經(jīng)連接狀態(tài)的連接。例如:
    [root@localhost ~]# netstat -tuln
    Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp  0  0 0.0.0.0:3306  0.0.0.0:* LISTEN
    tcp  0  0 0.0.0.0:11211 0.0.0.0:* LISTEN
    tcp  0  0 0.0.0.0:22 0.0.0.0:* LISTEN
    tcp  0  0:::11211 :::* LISTEN
    tcp  0  0 :::80 :::* LISTEN
    tcp  0   0 :::22 :::* LISTEN
    udp  0   0 0.0.0.0:11211 0.0.0.0:*
    udp  0   0:::11211 :::*
    #協(xié)議接收隊(duì)列發(fā)送隊(duì)列本機(jī)的 IP 地址及端口號(hào) 遠(yuǎn)程主機(jī)的 IP 地址及端口號(hào) 狀態(tài)這個(gè)命令的輸出較多。
    1) Proto:網(wǎng)絡(luò)連接的協(xié)議,一般就是 TCP 協(xié)議或者 UDP 協(xié)議。
    2) Recv-Q:表示接收到的數(shù)據(jù),已經(jīng)在本地的緩沖中,但是還沒有被進(jìn)程取走。
    3) Send-Q:表示從本機(jī)發(fā)送,對(duì)方還沒有收到的數(shù)據(jù),依然在本地的緩沖中,不具備 ACK 標(biāo)志的數(shù)據(jù)包。
    4) Local Address:本機(jī)的 IP 地址和端口號(hào)。
    5) ForeignAddress:遠(yuǎn)程主機(jī)的 IP 地址和端口號(hào)。
    6) State:狀態(tài)。常見的狀態(tài)主要有以下幾種。
    -LISTEN:監(jiān)聽狀態(tài),只有 TCP 協(xié)議需要監(jiān)聽,而 UDP 協(xié)議不需要監(jiān)聽。
    -ESTABLISHED:已經(jīng)建立連接的狀態(tài)。如果使用"-I"選項(xiàng),則看不到已經(jīng)建立連接的狀態(tài)。
    -SYN_SENT:SYN 發(fā)起包,就是主動(dòng)發(fā)起連接的數(shù)據(jù)包。
    -SYN_RECV:接收到主動(dòng)連接的數(shù)據(jù)包。
    -FIN_WAIT1:正在中斷的連接。
    -FIN_WAIT2:已經(jīng)中斷的連接,但是正在等待對(duì)方主機(jī)進(jìn)行確認(rèn)。
    -TIME_WAIT:連接已經(jīng)中斷,但是套接字依然在網(wǎng)絡(luò)中等待結(jié)束。
    -CLOSED:套接字沒有被使用。
    在這些狀態(tài)中,我們最常用的就是 LISTEN 和 ESTABLISHED 狀態(tài),一種代表正在監(jiān)聽,另一種代表已經(jīng)連接。
    【例 2】查看本機(jī)有哪些程序開啟的端口。
    如果使用"-p"選項(xiàng),則可以查看到是哪個(gè)程序占用了端口,并且可以知道這個(gè)程序的 PID。例如:
    [root@localhost ~]# netstat -tulnp
    Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address  Foreign Address State PID/Program nametcp  0  0 0.0.0.0:3306  0.0.0.0:* LISTEN 2359/mysqldtcp  0  0 0.0.0.0:11211  0.0.0.0:* LISTEN 1563/memcachedtcp  0  0 0.0.0.0:22  0.0.0.0:* LISTEN 1490/sshdtcp  0  0 :::11211 :::* LISTEN 1563/memcachedtcp  0  0 :::80 :::* LISTEN 21025/httpd
    tcp  0  0 :::22 :::*
    LISTEN 1490/sshd
    udp  0  0 0.0.0.0:11211  0.0.0.0:* 1563/memcachedudp  0  0:::11211 :::* 1563/memcached
    #比之前的命令多了一個(gè)"-p"選項(xiàng),結(jié)果多了可以知道是哪個(gè)程序占用了端口【例 3】 查看所有連接。
    使用選項(xiàng)"-an"可以查看所有連接,包括監(jiān)聽狀態(tài)的連接(LISTEN)、已經(jīng)建立連接狀態(tài)的連接(ESTABLISHED)、Socke 程序連接等。因?yàn)檫B接較多,所以輸出的內(nèi)容有很多。例如:
    [root@localhost ~]# netstat -an
    Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address  Foreign Address  Statetcp  0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
    tcp  0 0 0.0.0.0:11211 0.0.0.0:* LISTEN
    tcp  0 0 117.79.130.170:80 78.46.174.55:58815 SYN_RECVtcp  0 0 0.0.0.0:22 0.0.0.0:* LISTEN
    tcp  0 0 117.79.130.170:22 124.205.129.99:10379 ESTABLISHEDtcp  0 0 117.79.130.170:22 124.205.129.99:11811 ESTABLISHED...省略部分內(nèi)容...
    udp  0  0 0.0.0.0:11211 0.0.0.0:*
    udp  0 0:::11211 :::*
    Active UNIX domain sockets (servers and established)Proto RefCnt Flags Type State I-Node Pathunix  2  [ACC]  STREAM  LISTENING  9761  @/var/run/hald/dbus-fr41WkQn1C…省略部分內(nèi)容...
    從"Active UNIX domain sockets"開始,之后的內(nèi)容就是 Socke 程序產(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)。
》》》傳智播客linux培訓(xùn)班,帶你從新手到大神,咨詢右下角窗口咨詢開班時(shí)間《《《
傳智播客linux培訓(xùn)

0 分享到:
和我們?cè)诰€交談!