對任何規(guī)模的業(yè)務(wù)來說皮服,網(wǎng)絡(luò)監(jiān)控工具都是一個重要的功能。網(wǎng)絡(luò)監(jiān)控的目標可能千差萬別参咙。比如龄广,監(jiān)控活動的目標可以是保證長期的網(wǎng)絡(luò)服務(wù)、安全保護蕴侧、對性能進行排查择同、網(wǎng)絡(luò)使用統(tǒng)計等。由于它的目標不同净宵,網(wǎng)絡(luò)監(jiān)控器使用很多不同的方式來完成任務(wù)敲才。比如對包層面的嗅探裹纳,對數(shù)據(jù)流層面的統(tǒng)計數(shù)據(jù),向網(wǎng)絡(luò)中注入探測的流量归斤,分析服務(wù)器日志等痊夭。
盡管有許多專用的網(wǎng)絡(luò)監(jiān)控系統(tǒng)可以365天24小時監(jiān)控,但您依舊可以在特定的情況下使用命令行式的網(wǎng)絡(luò)監(jiān)控器脏里,某些命令行式的網(wǎng)絡(luò)監(jiān)控器在某方面很有用她我。如果您是系統(tǒng)管理員,那您就應(yīng)該有親身使用一些知名的命令行式網(wǎng)絡(luò)監(jiān)控器的經(jīng)歷迫横。這里有一份Linux上流行且實用的網(wǎng)絡(luò)監(jiān)控器列表番舆。
包層面的嗅探器
在這個類別下,監(jiān)控工具在鏈路上捕捉獨立的包矾踱,分析它們的內(nèi)容恨狈,展示解碼后的內(nèi)容或者包層面的統(tǒng)計數(shù)據(jù)。這些工具在最底層對網(wǎng)絡(luò)進行監(jiān)控呛讲、管理禾怠,同樣的也能進行最細粒度的監(jiān)控,其代價是影響網(wǎng)絡(luò)I/O和分析的過程贝搁。
dhcpdump:一個命令行式的DHCP流量嗅探工具吗氏,捕捉DHCP的請求/回復(fù)流量,并以用戶友好的方式顯示解碼的DHCP協(xié)議消息雷逆。這是一款排查DHCP相關(guān)故障的實用工具弦讽。
dsniff:一個基于命令行的嗅探、偽造和劫持的工具合集膀哲,被設(shè)計用于網(wǎng)絡(luò)審查和滲透測試往产。它可以嗅探多種信息,比如密碼某宪、NSF流量(LCTT 譯注:此處疑為 NFS 流量)仿村、email消息、網(wǎng)絡(luò)地址等兴喂。
httpry:一個HTTP報文嗅探器奠宜,用于捕獲、解碼HTTP請求和回復(fù)報文瞻想,并以用戶友好的方式顯示這些信息。(LCTT 譯注:延伸閱讀娩嚼。 )
-
IPTraf:基于命令行的網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)查看器蘑险。它實時顯示包層面、連接層面岳悟、接口層面佃迄、協(xié)議層面的報文/字節(jié)數(shù)泼差。抓包過程由協(xié)議過濾器控制,且操作過程全部是菜單驅(qū)動的呵俏。(LCTT 譯注:延伸閱讀堆缘。)
mysql-sniffer:一個用于抓取、解碼MySQL請求相關(guān)的數(shù)據(jù)包的工具普碎。它以可讀的方式顯示最頻繁或全部的請求吼肥。
ngrep:在網(wǎng)絡(luò)報文中執(zhí)行g(shù)rep。它能實時抓取報文麻车,并用正則表達式或十六進制表達式的方式匹配(過濾)報文缀皱。它是一個可以對異常流量進行檢測、存儲或者對實時流中特定模式報文進行抓取的實用工具动猬。
p0f:一個被動的基于包嗅探的指紋采集工具啤斗,可以可靠地識別操作系統(tǒng)、NAT或者代理設(shè)置赁咙、網(wǎng)絡(luò)鏈路類型以及許多其它與活動的TCP連接相關(guān)的屬性钮莲。
-
pktstat:一個命令行式的工具,通過實時分析報文彼水,顯示連接帶寬使用情況以及相關(guān)的協(xié)議(例如崔拥,HTTP GET/POST、FTP猿涨、X11)等描述信息握童。
Snort:一個入侵檢測和預(yù)防工具,通過規(guī)則驅(qū)動的協(xié)議分析和內(nèi)容匹配叛赚,來檢測/預(yù)防活躍流量中各種各樣的后門澡绩、僵尸網(wǎng)絡(luò)、網(wǎng)絡(luò)釣魚俺附、間諜軟件攻擊肥卡。
tcpdump:一個命令行的嗅探工具,可以基于過濾表達式抓取網(wǎng)絡(luò)中的報文事镣,分析報文步鉴,并且在包層面輸出報文內(nèi)容以便于包層面的分析。他在許多網(wǎng)絡(luò)相關(guān)的錯誤排查璃哟、網(wǎng)絡(luò)程序debug氛琢、或安全監(jiān)測方面應(yīng)用廣泛。
tshark:一個與Wireshark窗口程序一起使用的命令行式的嗅探工具随闪。它能捕捉阳似、解碼網(wǎng)絡(luò)上的實時報文,并能以用戶友好的方式顯示其內(nèi)容铐伴。
流/進程/接口層面的監(jiān)控
在這個分類中撮奏,網(wǎng)絡(luò)監(jiān)控器通過把流量按照流俏讹、相關(guān)進程或接口分類,收集每個流畜吊、每個進程泽疆、每個接口的統(tǒng)計數(shù)據(jù)。其信息的來源可以是libpcap抓包庫或者sysfs內(nèi)核虛擬文件系統(tǒng)玲献。這些工具的監(jiān)控成本很低殉疼,但是缺乏包層面的檢視能力。
-
bmon:一個基于命令行的帶寬監(jiān)測工具青自,可以顯示各種接口相關(guān)的信息株依,不但包括接收/發(fā)送的總量/平均值統(tǒng)計數(shù)據(jù),而且擁有歷史帶寬使用視圖延窜。
iftop:一個帶寬使用監(jiān)測工具恋腕,可以實時顯示某個網(wǎng)絡(luò)連接的帶寬使用情況。它對所有帶寬使用情況排序并通過ncurses的接口來進行可視化逆瑞。他可以方便的監(jiān)控哪個連接消耗了最多的帶寬荠藤。(LCTT 譯注:延伸閱讀。)
nethogs:一個基于ncurses顯示的進程監(jiān)控工具获高,提供進程相關(guān)的實時的上行/下行帶寬使用信息哈肖。它對檢測占用大量帶寬的進程很有用。(LCTT 譯注:延伸閱讀念秧。)
netstat:一個顯示許多TCP/UDP的網(wǎng)絡(luò)堆棧的統(tǒng)計信息的工具淤井。諸如打開的TCP/UDP連接書、網(wǎng)絡(luò)接口發(fā)送/接收摊趾、路由表币狠、協(xié)議/套接字的統(tǒng)計信息和屬性。當您診斷與網(wǎng)絡(luò)堆棧相關(guān)的性能砾层、資源使用時它很有用漩绵。
-
speedometer:一個可視化某個接口發(fā)送/接收的帶寬使用的歷史趨勢,并且基于ncurses的條狀圖進行顯示的終端工具肛炮。
sysdig:一個可以通過統(tǒng)一的界面對各個Linux子系統(tǒng)進行系統(tǒng)級綜合性調(diào)試的工具止吐。它的網(wǎng)絡(luò)監(jiān)控模塊可以監(jiān)控在線或離線、許多進程/主機相關(guān)的網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)侨糟,例如帶寬碍扔、連接/請求數(shù)等。(LCTT 譯注:延伸閱讀秕重。)
-
tcptrack:一個TCP連接監(jiān)控工具蕴忆,可以顯示活動的TCP連接,包括源/目的IP地址/端口悲幅、TCP狀態(tài)套鹅、帶寬使用等。
vnStat:一個存儲并顯示每個接口的歷史接收/發(fā)送帶寬視圖(例如汰具,當前卓鹿、每日、每月)的流量監(jiān)控器留荔。作為一個后臺守護進程吟孙,它收集并存儲統(tǒng)計數(shù)據(jù),包括接口帶寬使用率和傳輸字節(jié)總數(shù)聚蝶。(LCTT 譯注:延伸閱讀杰妓。)
主動網(wǎng)絡(luò)監(jiān)控器
不同于前面提到的被動的監(jiān)聽工具,這個類別的工具們在監(jiān)聽時會主動的“注入”探測內(nèi)容到網(wǎng)絡(luò)中碘勉,并且會收集相應(yīng)的反應(yīng)巷挥。監(jiān)聽目標包括路由路徑、可供使用的帶寬验靡、丟包率倍宾、延時、抖動(jitter)胜嗓、系統(tǒng)設(shè)置或者缺陷等高职。
dnsyo:一個DNS檢測工具,能夠管理跨越多達1500個不同網(wǎng)絡(luò)的開放解析器的DNS查詢辞州。它在您檢查DNS傳播或排查DNS設(shè)置的時候很有用怔锌。
iperf:一個TCP/UDP帶寬測量工具,能夠測量兩個端點間最大可用帶寬变过。它通過在兩個主機間單向或雙向的輸出TCP/UDP探測流量來測量可用的帶寬埃元。它在監(jiān)測網(wǎng)絡(luò)容量、調(diào)諧網(wǎng)絡(luò)協(xié)議棧參數(shù)時很有用牵啦。一個叫做netperf的變種擁有更多的功能及更好的統(tǒng)計數(shù)據(jù)亚情。
netcat/socat:通用的網(wǎng)絡(luò)調(diào)試工具,可以對TCP/UDP套接字進行讀哈雏、寫或監(jiān)聽楞件。它通常和其他的程序或腳本結(jié)合起來在后端對網(wǎng)絡(luò)傳輸或端口進行監(jiān)聽。(LCTT 譯注:延伸閱讀裳瘪。)
nmap:一個命令行的端口掃描和網(wǎng)絡(luò)發(fā)現(xiàn)工具土浸。它依賴于若干基于TCP/UDP的掃描技術(shù)來查找開放的端口、活動的主機或者在本地網(wǎng)絡(luò)存在的操作系統(tǒng)彭羹。它在你審查本地主機漏洞或者建立維護所用的主機映射時很有用黄伊。zmap是一個類似的替代品,是一個用于互聯(lián)網(wǎng)范圍的掃描工具派殷。(LCTT 譯注:延伸閱讀还最。)
-
ping:一個常用的網(wǎng)絡(luò)測試工具墓阀。通過交換ICMP的echo和reply報文來實現(xiàn)其功能。它在測量路由的RTT拓轻、丟包率以及檢測遠端系統(tǒng)防火墻規(guī)則時很有用斯撮。ping的變種有更漂亮的界面(例如,noping)扶叉、多協(xié)議支持(例如勿锅,hping)或者并行探測能力(例如,fping)枣氧。(LCTT 譯注:延伸閱讀溢十。)
sprobe:一個啟發(fā)式推斷本地主機和任意遠端IP地址之間的網(wǎng)絡(luò)帶寬瓶頸的命令行工具。它使用TCP三次握手機制來評估帶寬的瓶頸达吞。它在檢測大范圍網(wǎng)絡(luò)性能和路由相關(guān)的問題時很有用张弛。
traceroute:一個能發(fā)現(xiàn)從本地到遠端主機的第三層路由/轉(zhuǎn)發(fā)路徑的網(wǎng)絡(luò)發(fā)現(xiàn)工具。它發(fā)送限制了TTL的探測報文宗挥,收集中間路由的ICMP反饋信息乌庶。它在排查低速網(wǎng)絡(luò)連接或者路由相關(guān)的問題時很有用。traceroute的變種有更好的RTT統(tǒng)計功能(例如契耿,mtr)瞒大。
應(yīng)用日志解析器
在這個類別下的網(wǎng)絡(luò)監(jiān)測器把特定的服務(wù)器應(yīng)用程序作為目標(例如,web服務(wù)器或者數(shù)據(jù)庫服務(wù)器)搪桂。由服務(wù)器程序產(chǎn)生或消耗的網(wǎng)絡(luò)流量通過它的日志被分析和監(jiān)測透敌。不像前面提到的網(wǎng)絡(luò)層的監(jiān)控器,這個類別的工具能夠在應(yīng)用層面分析和監(jiān)控網(wǎng)絡(luò)流量踢械。
-
GoAccess:一個針對Apache和Nginx服務(wù)器流量的交互式查看器酗电。基于對獲取到的日志的分析内列,它能展示包括日訪問量撵术、最多請求、客戶端操作系統(tǒng)话瞧、客戶端位置嫩与、客戶端瀏覽器等在內(nèi)的多個實時的統(tǒng)計信息,并以滾動方式顯示交排。
-
mtop:一個面向MySQL/MariaDB服務(wù)器的命令行監(jiān)控器划滋,它可以將成本最大的查詢和當前數(shù)據(jù)庫服務(wù)器負載以可視化的方式顯示出來。它在您優(yōu)化MySQL服務(wù)器性能埃篓、調(diào)諧服務(wù)器參數(shù)時很有用处坪。
ngxtop:一個面向Nginx和Apache服務(wù)器的流量監(jiān)測工具,能夠以類似top指令的方式可視化的顯示W(wǎng)eb服務(wù)器的流量。它解析web服務(wù)器的查詢?nèi)罩疚募⑹占硞€目的地或請求的流量統(tǒng)計信息同窘。
總結(jié)
在這篇文章中玄帕,我展示了許多命令行式監(jiān)測工具,從最底層的包層面的監(jiān)控器到最高層應(yīng)用程序?qū)用娴木W(wǎng)絡(luò)監(jiān)控器塞椎。了解那個工具的作用是一回事桨仿,選擇哪個工具使用又是另外一回事。單一的一個工具不能作為您每天使用的通用的解決方案案狠。一個好的系統(tǒng)管理員應(yīng)該能決定哪個工具更適合當前的環(huán)境。希望這個列表對此有所幫助钱雷。
歡迎您通過回復(fù)來改進這個列表的內(nèi)容骂铁!
via: http://xmodulo.com/useful-command-line-network-monitors-linux.html