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

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

linux培訓:netstat網絡狀態(tài)查看命令

更新時間:2019年04月03日13時37分 來源:傳智播客linux培訓 瀏覽次數:

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

    命令格式如下:

    [root@localhost ~]# netstat [選項]
    選項:
    -a:列出所有網絡狀態(tài),包括 Socket 程序;
    -c秒數:指定每隔幾秒刷新一次網絡狀態(tài);
    -n:使用 IP 地址和端口號顯示,不使用域名與服務名;-p:顯示 PID 和程序名;
    -t:顯示使用 TCP 協(xié)議端口的連接狀況;
    -u:顯示使用 UDP 協(xié)議端口的連接狀況;
    -I:僅顯示監(jiān)聽狀態(tài)的連接;
    -r:顯示路由表;
    【例 1】查看本機開啟的端口。
    這是本機最常用的方式,使用選項"-tuln"。因為使用了"-I"選項,所以只能看到監(jiān)聽狀態(tài)的連接,而不能看到已經連接狀態(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é)議接收隊列發(fā)送隊列本機的 IP 地址及端口號 遠程主機的 IP 地址及端口號 狀態(tài)這個命令的輸出較多。
    1) Proto:網絡連接的協(xié)議,一般就是 TCP 協(xié)議或者 UDP 協(xié)議。
    2) Recv-Q:表示接收到的數據,已經在本地的緩沖中,但是還沒有被進程取走。
    3) Send-Q:表示從本機發(fā)送,對方還沒有收到的數據,依然在本地的緩沖中,不具備 ACK 標志的數據包。
    4) Local Address:本機的 IP 地址和端口號。
    5) ForeignAddress:遠程主機的 IP 地址和端口號。
    6) State:狀態(tài)。常見的狀態(tài)主要有以下幾種。
    -LISTEN:監(jiān)聽狀態(tài),只有 TCP 協(xié)議需要監(jiān)聽,而 UDP 協(xié)議不需要監(jiān)聽。
    -ESTABLISHED:已經建立連接的狀態(tài)。如果使用"-I"選項,則看不到已經建立連接的狀態(tài)。
    -SYN_SENT:SYN 發(fā)起包,就是主動發(fā)起連接的數據包。
    -SYN_RECV:接收到主動連接的數據包。
    -FIN_WAIT1:正在中斷的連接。
    -FIN_WAIT2:已經中斷的連接,但是正在等待對方主機進行確認。
    -TIME_WAIT:連接已經中斷,但是套接字依然在網絡中等待結束。
    -CLOSED:套接字沒有被使用。
    在這些狀態(tài)中,我們最常用的就是 LISTEN 和 ESTABLISHED 狀態(tài),一種代表正在監(jiān)聽,另一種代表已經連接。
    【例 2】查看本機有哪些程序開啟的端口。
    如果使用"-p"選項,則可以查看到是哪個程序占用了端口,并且可以知道這個程序的 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
    #比之前的命令多了一個"-p"選項,結果多了可以知道是哪個程序占用了端口【例 3】 查看所有連接。
    使用選項"-an"可以查看所有連接,包括監(jiān)聽狀態(tài)的連接(LISTEN)、已經建立連接狀態(tài)的連接(ESTABLISHED)、Socke 程序連接等。因為連接較多,所以輸出的內容有很多。例如:
    [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...省略部分內容...
    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…省略部分內容...
    從"Active UNIX domain sockets"開始,之后的內容就是 Socke 程序產生的連接,之前的內容都是網絡服務產生的連接。我們可以在"-an"選項的輸出中看到各種網絡連接狀態(tài),而之前的"-tuln"選項則只能看到監(jiān)聽狀態(tài)。
》》》傳智播客linux培訓班,帶你從新手到大神,咨詢右下角窗口咨詢開班時間《《《
傳智播客linux培訓

0 分享到:
和我們在線交談!