Linux中國
又一波你可能不知道的 Linux 命令行網路監控工具
- mysql-sniffer:一個用於抓取、解碼MySQL請求相關的數據包的工具。它以可讀的方式顯示最頻繁或全部的請求。
- ngrep:在網路報文中執行grep。它能實時抓取報文,並用正則表達式或十六進位表達式的方式匹配(過濾)報文。它是一個可以對異常流量進行檢測、存儲或者對實時流中特定模式報文進行抓取的實用工具。
- p0f:一個被動的基於包嗅探的指紋採集工具,可以可靠地識別操作系統、NAT或者代理設置、網路鏈路類型以及許多其它與活動的TCP連接相關的屬性。
- pktstat:一個命令行式的工具,通過實時分析報文,顯示連接帶寬使用情況以及相關的協議(例如,HTTP GET/POST、FTP、X11)等描述信息。
- Snort:一個入侵檢測和預防工具,通過規則驅動的協議分析和內容匹配,來檢測/預防活躍流量中各種各樣的後門、殭屍網路、網路釣魚、間諜軟體攻擊。
- tcpdump:一個命令行的嗅探工具,可以基於過濾表達式抓取網路中的報文,分析報文,並且在包層面輸出報文內容以便於包層面的分析。他在許多網路相關的錯誤排查、網路程序debug、或安全監測方面應用廣泛。
- tshark:一個與Wireshark窗口程序一起使用的命令行式的嗅探工具。它能捕捉、解碼網路上的實時報文,並能以用戶友好的方式顯示其內容。
流/進程/介面層面的監控
在這個分類中,網路監控器通過把流量按照流、相關進程或介面分類,收集每個流、每個進程、每個介面的統計數據。其信息的來源可以是libpcap抓包庫或者sysfs內核虛擬文件系統。這些工具的監控成本很低,但是缺乏包層面的檢視能力。
- bmon:一個基於命令行的帶寬監測工具,可以顯示各種介面相關的信息,不但包括接收/發送的總量/平均值統計數據,而且擁有歷史帶寬使用視圖。
- iftop:一個帶寬使用監測工具,可以實時顯示某個網路連接的帶寬使用情況。它對所有帶寬使用情況排序並通過ncurses的介面來進行可視化。他可以方便的監控哪個連接消耗了最多的帶寬。(LCTT 譯註:延伸閱讀。)
- nethogs:一個基於ncurses顯示的進程監控工具,提供進程相關的實時的上行/下行帶寬使用信息。它對檢測佔用大量帶寬的進程很有用。(LCTT 譯註:延伸閱讀。)
- netstat:一個顯示許多TCP/UDP的網路堆棧的統計信息的工具。諸如打開的TCP/UDP連接書、網路介面發送/接收、路由表、協議/套接字的統計信息和屬性。當您診斷與網路堆棧相關的性能、資源使用時它很有用。
- speedometer:一個可視化某個介面發送/接收的帶寬使用的歷史趨勢,並且基於ncurses的條狀圖進行顯示的終端工具。
- sysdig:一個可以通過統一的界面對各個Linux子系統進行系統級綜合性調試的工具。它的網路監控模塊可以監控在線或離線、許多進程/主機相關的網路統計數據,例如帶寬、連接/請求數等。(LCTT 譯註:延伸閱讀。)
- tcptrack:一個TCP連接監控工具,可以顯示活動的TCP連接,包括源/目的IP地址/埠、TCP狀態、帶寬使用等。
- vnStat:一個存儲並顯示每個介面的歷史接收/發送帶寬視圖(例如,當前、每日、每月)的流量監控器。作為一個後台守護進程,它收集並存儲統計數據,包括介面帶寬使用率和傳輸位元組總數。(LCTT 譯註:延伸閱讀。)
主動網路監控器
不同於前面提到的被動的監聽工具,這個類別的工具們在監聽時會主動的「注入」探測內容到網路中,並且會收集相應的反應。監聽目標包括路由路徑、可供使用的帶寬、丟包率、延時、抖動(jitter)、系統設置或者缺陷等。
- dnsyo:一個DNS檢測工具,能夠管理跨越多達1500個不同網路的開放解析器的DNS查詢。它在您檢查DNS傳播或排查DNS設置的時候很有用。
- iperf:一個TCP/UDP帶寬測量工具,能夠測量兩個端點間最大可用帶寬。它通過在兩個主機間單向或雙向的輸出TCP/UDP探測流量來測量可用的帶寬。它在監測網路容量、調諧網路協議棧參數時很有用。一個叫做netperf的變種擁有更多的功能及更好的統計數據。
- netcat/socat:通用的網路調試工具,可以對TCP/UDP套接字進行讀、寫或監聽。它通常和其他的程序或腳本結合起來在後端對網路傳輸或埠進行監聽。(LCTT 譯註:延伸閱讀。)
- nmap:一個命令行的埠掃描和網路發現工具。它依賴於若干基於TCP/UDP的掃描技術來查找開放的埠、活動的主機或者在本地網路存在的操作系統。它在你審查本地主機漏洞或者建立維護所用的主機映射時很有用。zmap是一個類似的替代品,是一個用於互聯網範圍的掃描工具。(LCTT 譯註:延伸閱讀。)
- ping:一個常用的網路測試工具。通過交換ICMP的echo和reply報文來實現其功能。它在測量路由的RTT、丟包率以及檢測遠端系統防火牆規則時很有用。ping的變種有更漂亮的界面(例如,noping)、多協議支持(例如,hping)或者並行探測能力(例如,fping)。(LCTT 譯註:延伸閱讀。)
- sprobe:一個啟發式推斷本地主機和任意遠端IP地址之間的網路帶寬瓶頸的命令行工具。它使用TCP三次握手機制來評估帶寬的瓶頸。它在檢測大範圍網路性能和路由相關的問題時很有用。
- traceroute:一個能發現從本地到遠端主機的第三層路由/轉發路徑的網路發現工具。它發送限制了TTL的探測報文,收集中間路由的ICMP反饋信息。它在排查低速網路連接或者路由相關的問題時很有用。traceroute的變種有更好的RTT統計功能(例如,mtr)。
應用日誌解析器
在這個類別下的網路監測器把特定的伺服器應用程序作為目標(例如,web伺服器或者資料庫伺服器)。由伺服器程序產生或消耗的網路流量通過它的日誌被分析和監測。不像前面提到的網路層的監控器,這個類別的工具能夠在應用層面分析和監控網路流量。
- GoAccess:一個針對Apache和Nginx伺服器流量的互動式查看器。基於對獲取到的日誌的分析,它能展示包括日訪問量、最多請求、客戶端操作系統、客戶端位置、客戶端瀏覽器等在內的多個實時的統計信息,並以滾動方式顯示。
- mtop:一個面向MySQL/MariaDB伺服器的命令行監控器,它可以將成本最大的查詢和當前資料庫伺服器負載以可視化的方式顯示出來。它在您優化MySQL伺服器性能、調諧伺服器參數時很有用。
- ngxtop:一個面向Nginx和Apache伺服器的流量監測工具,能夠以類似top指令的方式可視化的顯示Web伺服器的流量。它解析web伺服器的查詢日誌文件並收集某個目的地或請求的流量統計信息。
總結
在這篇文章中,我展示了許多命令行式監測工具,從最底層的包層面的監控器到最高層應用程序層面的網路監控器。了解那個工具的作用是一回事,選擇哪個工具使用又是另外一回事。單一的一個工具不能作為您每天使用的通用的解決方案。一個好的系統管理員應該能決定哪個工具更適合當前的環境。希望這個列表對此有所幫助。
歡迎您通過回復來改進這個列表的內容!
via: http://xmodulo.com/useful-command-line-network-monitors-linux.html
作者:Dan Nanni 譯者:wwy-hust 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
對這篇文章感覺如何?
太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
More in:Linux中國
如何通過 VLC 使用字幕
使用 VLC 媒體播放器播放和管理字幕的新手指南。
Unix 桌面:在 Linux 問世之前
僅僅開源還不足以實現開放,還需開放標準和建立共識。
Valve 對於 Ubuntu 的 Snap 版本的 Steam 並不滿意:原因何在
你可能會發現,Snap 版本的 Steam 並不如你期待的那樣好,你怎麼看?
Wine 9.0 發布,實驗性地加入了 Wayland 驅動
Wine 的這個新版本正在為未來做好準備!