1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        netstat 還能這么玩兒?

        共 2754字,需瀏覽 6分鐘

         ·

        2022-02-17 09:21

        一次摸魚的機會,看到群里小伙伴問了一嘴 netstat -tnpl 這個命令是干啥的,netstat 這個命令用過很多次,但是我其實也沒有認真研究,但是這是一個問題,我不能放過它,而且 netstat 這個命令我日常就用來查詢端口的監(jiān)聽狀態(tài)了,所以趁著這次機會,一起搞懂 netstat 這個命令。

        netstat 這個命令在 Linux 、Windows 和 MacOS 操作系統(tǒng)下都兼容,不同的是,netstat 在 UNIX 下顯示詳細信息的命令是 man netstat ,而在 Linux 和 Windows 下面是 netstat --help。

        Linux 下的 netstat 命令

        當我在 Linux 下執(zhí)行 man netstat?命令之后,系統(tǒng)顯示出來的提示著實讓我嚇一大跳,看來這個命令內(nèi)容很多??!不要被這么長的描述嚇到,我們一步一步來。

        首先來了解一下 netstat 這個命令是干啥的。

        官方給我們的解釋就是

        netstat?--?show?network?status

        列出網(wǎng)絡狀態(tài)

        但是這網(wǎng)絡狀態(tài)都有啥呢?帶著疑問,我在 Linux 下執(zhí)行了一下。

        打印出來是一個六元組,六元組每一列的內(nèi)容分別是

        仔細看了一下這個六元組,這好像表明 netstat 這個命令是用于監(jiān)控傳入和傳出的網(wǎng)絡連接和狀態(tài)的一個命令行工具啊

        從整體上來看,netstst 的輸出結(jié)果可以分為兩部分,一部分是 Active Internet connections,稱為活躍 TCP 連接,其中的 Recv-Q 和 Send-Q 指的是客戶端發(fā)送隊列和客戶端接收隊列。這兩個隊列的值一般都是 0 ,如果不是 0 的話表示有消息堆積還沒有發(fā)出去/取出,這種情況一般很少見到。

        另外一部分是 Active UNIX domain sockets, 稱為 活躍的 Unix 域套接字,這部分中的 socket 和網(wǎng)絡 socket 套接字一樣,不同的是,這塊只能用來本地通信,性能要比網(wǎng)絡 socket 高。Active UNIX domain sockets 也是一個六元組,分別表示

        netstat 參數(shù)釋義

        下面我們來解釋一下 netstat --help 列出來的一些參數(shù),我們從最常見的一些參數(shù)開始入手,這樣大家看起來也能形成階段性記憶,不至于失去重點。

        netstat -a

        -a 這個參數(shù)默認會監(jiān)控所有的 socket 連接。

        包括已經(jīng)監(jiān)聽的、已經(jīng)建立連接的、客戶端發(fā)送的等待服務器的和未被監(jiān)聽都會被列出來。

        netstat -at/-t

        netstat -atnetstat -t 這倆后綴都是用來監(jiān)聽與 TCP 協(xié)議有關(guān)的端口,不同的是 netstat -at 會監(jiān)聽所有 State(狀態(tài))下的端口,而 netstat -t 僅僅會監(jiān)聽 ESTABLISHED 狀態(tài)的端口。

        netstat -at

        netstat -t

        netstat -au/-u

        同樣的,netstat -aunetstat -u 都會監(jiān)控與 UDP 有關(guān)的端口,不同的是 netstat -au 會監(jiān)聽所有 State(狀態(tài))下的端口,而 netstat -u 僅僅會監(jiān)聽 ESTABLISHED 狀態(tài)的端口。

        netstat -au

        netstat -u

        我這里測試是沒有監(jiān)控已經(jīng)建立連接狀態(tài)下的 UDP 協(xié)議。

        netstat -ap

        這條命令用于列出程序運行的端口,常用的命令是

        netstat?-ap|grep?'程序名'

        比如我們要找 http 程序,就是 Netstat -ap|grep http

        還可以直接列出端口號

        netstat?-ap|grep?8080

        不過需要注意下,并不是所有的程序都能被找到,沒有權(quán)限的不會顯示,使用 root 權(quán)限可以查詢所有信息。

        netstat -l

        netstat -l 用于監(jiān)聽正在處于監(jiān)聽狀態(tài)的端口(讀起來還真有那么點費勁,為了讀起來更順暢,后面直接使用列出替換監(jiān)聽)。

        netstat -lt 只用于列出所有監(jiān)聽 TCP 端口。

        netstat -lu 只用于列出所有監(jiān)聽 UDP 端口。

        netstat -lx 只用于列出所有監(jiān)聽 UNIX 端口。

        netstat -s

        netstat -s用于列出所有端口的統(tǒng)計信息。

        netstat -st用于列出 TCP 端口的統(tǒng)計信息。

        netstat -su用于列出 UDP 端口的統(tǒng)計信息。

        netstat -p

        netstat -p 可以與其他參數(shù)一起使用,例如 netstat -pt 就可以列出服務名稱和 PID 號。

        netstat -c

        使用 netstat -c 將每隔一秒列出網(wǎng)絡信息。

        netstat -r

        netstat -r用于列出路由核心信息。

        netstat --verbose

        這條命令會列出系統(tǒng)支持的地址族(Address Family)。

        Address Family 簡單來說就是底層是使用的哪種通信協(xié)議來遞交數(shù)據(jù)的,如 AF_INET 用的是 TCP/IPv4;AF_INET6 使用的是 TCP/IPv6;而 AF_LOCAL 或者 AF_UNIX 則指的是本地通信(即本次通信是在當前主機上的進程間的通信),一般用絕對路徑的形式來指明。

        netstat -i

        netstat -i 用來列出網(wǎng)絡接口數(shù)據(jù)包,包括傳輸和接收具有 MTU(最大傳輸單元)的數(shù)據(jù)包。

        另外,netstat -ie 還用于列出內(nèi)核接口表,和 ifconfig 命令很相似

        關(guān)于這個問題

        所以,回到文章剛開始的那個疑問,netstat -tnpl 是干什么用的,其實這就是幾個參數(shù)的組合

        • -t :僅列出與 tcp 有關(guān)的信息
        • -n:以數(shù)字形式列出
        • -p:列出正在使用 socket PID 和 程序名稱
        • -l:列出正在監(jiān)聽的服務器 socket

        我們執(zhí)行一下這個命令。

        另外,在 Linux 中,已經(jīng)推薦使用 ss 來替代 netstat ,使用 ip route 來替代 netstat -r ,使用 ip -s link 來替代 netstat -i ,使用 ip addr 來替代 netstat -g 了。





        ?往期推薦?

        ??

        30 歲,我當了程序員。

        啥叫進入內(nèi)核態(tài)???

        用了這么久 Linux ,才知道這些概念。。。

        哈哈哈,去年這些網(wǎng)站"崩了"!

        從零到阿里的三年

        中美教育對比

        原來這才是動態(tài)代理?。。?/a>

        原來這才是 Socket!

        "我的"職業(yè)規(guī)劃

        手撕匯編。。。

        瀏覽 35
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            在线播放亚洲激情视频 | 国产69精品久久久久777 欧美日韩免费一区二区三区 | 午夜一级大片 | 中国少妇做受XXXXX69 | 中文字幕黄色电影 | 黄色一级片免费观看 | 黄色免费网站在线看 | 欧美精品人妻一区二区三区视频 | 国产乱论 | 寝室里的高潮h百合 |