對(duì)任何規(guī)模的業(yè)務(wù)來說,網(wǎng)絡(luò)監(jiān)控工具都是一個(gè)重要的功能漫谷。網(wǎng)絡(luò)監(jiān)控的目標(biāo)可能千差萬別仔雷。
比如,監(jiān)控活動(dòng)的目標(biāo)可以是保證長(zhǎng)期的網(wǎng)絡(luò)服務(wù)舔示、安全保護(hù)碟婆、對(duì)性能進(jìn)行排查、網(wǎng)絡(luò)使用統(tǒng)計(jì)等斩郎。
由于它的目標(biāo)不同脑融,網(wǎng)絡(luò)監(jiān)控器使用很多不同的方式來完成任務(wù)。
比如對(duì)包層面的嗅探缩宜,對(duì)數(shù)據(jù)流層面的統(tǒng)計(jì)數(shù)據(jù)肘迎,向網(wǎng)絡(luò)中注入探測(cè)的流量,分析服務(wù)器日志等锻煌。
盡管有許多專用的網(wǎng)絡(luò)監(jiān)控系統(tǒng)可以365天24小時(shí)監(jiān)控妓布,但您依舊可以在特定的情況下使用命令行式的網(wǎng)絡(luò)監(jiān)控器,某些命令行式的網(wǎng)絡(luò)監(jiān)控器在某方面很有用宋梧。
如果您是系統(tǒng)管理員匣沼,那您就應(yīng)該有親身使用一些知名的命令行式網(wǎng)絡(luò)監(jiān)控器的經(jīng)歷。這里有一份Linux上流行且實(shí)用的網(wǎng)絡(luò)監(jiān)控器列表捂龄。
—————————
包層面的嗅探器
在這個(gè)類別下释涛,監(jiān)控工具在鏈路上捕捉獨(dú)立的包,分析它們的內(nèi)容倦沧,展示解碼后的內(nèi)容或者包層面的統(tǒng)計(jì)數(shù)據(jù)唇撬。
這些工具在最底層對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)控、管理展融,同樣的也能進(jìn)行最細(xì)粒度的監(jiān)控窖认,其代價(jià)是影響網(wǎng)絡(luò)I/O和分析的過程。
? dhcpdump:一個(gè)命令行式的DHCP流量嗅探工具告希,捕捉DHCP的請(qǐng)求/回復(fù)流量扑浸,并以用戶友好的方式顯示解碼的DHCP協(xié)議消息。這是一款排查DHCP相關(guān)故障的實(shí)用工具燕偶。
? dsniff:一個(gè)基于命令行的嗅探喝噪、偽造和劫持的工具合集,被設(shè)計(jì)用于網(wǎng)絡(luò)審查和滲透測(cè)試指么。它可以嗅探多種信息酝惧,比如密碼驰吓、NSF流量(LCTT 譯注:此處疑為 NFS 流量)、email消息系奉、網(wǎng)絡(luò)地址等檬贰。
? httpry:一個(gè)HTTP報(bào)文嗅探器,用于捕獲缺亮、解碼HTTP請(qǐng)求和回復(fù)報(bào)文翁涤,并以用戶友好的方式顯示這些信息。
? IPTraf:基于命令行的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)查看器萌踱。它實(shí)時(shí)顯示包層面葵礼、連接層面、接口層面并鸵、協(xié)議層面的報(bào)文/字節(jié)數(shù)鸳粉。抓包過程由協(xié)議過濾器控制,且操作過程全部是菜單驅(qū)動(dòng)的园担。
? mysql-sniffer:一個(gè)用于抓取届谈、解碼MySQL請(qǐng)求相關(guān)的數(shù)據(jù)包的工具。它以可讀的方式顯示最頻繁或全部的請(qǐng)求弯汰。
? ngrep:在網(wǎng)絡(luò)報(bào)文中執(zhí)行g(shù)rep艰山。它能實(shí)時(shí)抓取報(bào)文,并用正則表達(dá)式或十六進(jìn)制表達(dá)式的方式匹配(過濾)報(bào)文咏闪。它是一個(gè)可以對(duì)異常流量進(jìn)行檢測(cè)曙搬、存儲(chǔ)或者對(duì)實(shí)時(shí)流中特定模式報(bào)文進(jìn)行抓取的實(shí)用工具。
? p0f:一個(gè)被動(dòng)的基于包嗅探的指紋采集工具鸽嫂,可以可靠地識(shí)別操作系統(tǒng)纵装、NAT或者代理設(shè)置、網(wǎng)絡(luò)鏈路類型以及許多其它與活動(dòng)的TCP連接相關(guān)的屬性据某。
? pktstat:一個(gè)命令行式的工具橡娄,通過實(shí)時(shí)分析報(bào)文,顯示連接帶寬使用情況以及相關(guān)的協(xié)議(例如哗脖,HTTP GET/POST瀑踢、FTP扳还、X11)等描述信息才避。
? Snort:一個(gè)入侵檢測(cè)和預(yù)防工具,通過規(guī)則驅(qū)動(dòng)的協(xié)議分析和內(nèi)容匹配氨距,來檢測(cè)/預(yù)防活躍流量中各種各樣的后門桑逝、僵尸網(wǎng)絡(luò)、網(wǎng)絡(luò)釣魚俏让、間諜軟件攻擊楞遏。
? tcpdump:一個(gè)命令行的嗅探工具茬暇,可以基于過濾表達(dá)式抓取網(wǎng)絡(luò)中的報(bào)文,分析報(bào)文寡喝,并且在包層面輸出報(bào)文內(nèi)容以便于包層面的分析糙俗。他在許多網(wǎng)絡(luò)相關(guān)的錯(cuò)誤排查、網(wǎng)絡(luò)程序debug预鬓、或安全監(jiān)測(cè)方面應(yīng)用廣泛巧骚。
? tshark:一個(gè)與Wireshark窗口程序一起使用的命令行式的嗅探工具。它能捕捉格二、解碼網(wǎng)絡(luò)上的實(shí)時(shí)報(bào)文劈彪,并能以用戶友好的方式顯示其內(nèi)容。
——————————————
流/進(jìn)程/接口層面的監(jiān)控
在這個(gè)分類中顶猜,網(wǎng)絡(luò)監(jiān)控器通過把流量按照流沧奴、相關(guān)進(jìn)程或接口分類,收集每個(gè)流长窄、每個(gè)進(jìn)程滔吠、每個(gè)接口的統(tǒng)計(jì)數(shù)據(jù)。
其信息的來源可以是libpcap抓包庫或者sysfs內(nèi)核虛擬文件系統(tǒng)挠日。這些工具的監(jiān)控成本很低屠凶,但是缺乏包層面的檢視能力。
? bmon:一個(gè)基于命令行的帶寬監(jiān)測(cè)工具肆资,可以顯示各種接口相關(guān)的信息矗愧,不但包括接收/發(fā)送的總量/平均值統(tǒng)計(jì)數(shù)據(jù),而且擁有歷史帶寬使用視圖郑原。
? iftop:一個(gè)帶寬使用監(jiān)測(cè)工具唉韭,可以實(shí)時(shí)顯示某個(gè)網(wǎng)絡(luò)連接的帶寬使用情況。它對(duì)所有帶寬使用情況排序并通過ncurses的接口來進(jìn)行可視化犯犁。他可以方便的監(jiān)控哪個(gè)連接消耗了最多的帶寬属愤。
? nethogs:一個(gè)基于ncurses顯示的進(jìn)程監(jiān)控工具,提供進(jìn)程相關(guān)的實(shí)時(shí)的上行/下行帶寬使用信息酸役。它對(duì)檢測(cè)占用大量帶寬的進(jìn)程很有用住诸。
? netstat:一個(gè)顯示許多TCP/UDP的網(wǎng)絡(luò)堆棧的統(tǒng)計(jì)信息的工具。諸如打開的TCP/UDP連接書涣澡、網(wǎng)絡(luò)接口發(fā)送/接收贱呐、路由表、協(xié)議/套接字的統(tǒng)計(jì)信息和屬性入桂。當(dāng)您診斷與網(wǎng)絡(luò)堆棧相關(guān)的性能奄薇、資源使用時(shí)它很有用。
? speedometer:一個(gè)可視化某個(gè)接口發(fā)送/接收的帶寬使用的歷史趨勢(shì)抗愁,并且基于ncurses的條狀圖進(jìn)行顯示的終端工具馁蒂。
? sysdig:一個(gè)可以通過統(tǒng)一的界面對(duì)各個(gè)Linux子系統(tǒng)進(jìn)行系統(tǒng)級(jí)綜合性調(diào)試的工具呵晚。它的網(wǎng)絡(luò)監(jiān)控模塊可以監(jiān)控在線或離線、許多進(jìn)程/主機(jī)相關(guān)的網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)沫屡,例如帶寬饵隙、連接/請(qǐng)求數(shù)等。
? tcptrack:一個(gè)TCP連接監(jiān)控工具沮脖,可以顯示活動(dòng)的TCP連接癞季,包括源/目的IP地址/端口、TCP狀態(tài)倘潜、帶寬使用等绷柒。
? vnStat:一個(gè)存儲(chǔ)并顯示每個(gè)接口的歷史接收/發(fā)送帶寬視圖(例如,當(dāng)前涮因、每日废睦、每月)的流量監(jiān)控器。作為一個(gè)后臺(tái)守護(hù)進(jìn)程养泡,它收集并存儲(chǔ)統(tǒng)計(jì)數(shù)據(jù)嗜湃,包括接口帶寬使用率和傳輸字節(jié)總數(shù)。
——————————————
主動(dòng)網(wǎng)絡(luò)監(jiān)控器
不同于前面提到的被動(dòng)的監(jiān)聽工具澜掩,這個(gè)類別的工具們?cè)诒O(jiān)聽時(shí)會(huì)主動(dòng)的“注入”探測(cè)內(nèi)容到網(wǎng)絡(luò)中购披,并且會(huì)收集相應(yīng)的反應(yīng)。監(jiān)聽目標(biāo)包括路由路徑肩榕、可供使用的帶寬刚陡、丟包率、延時(shí)株汉、抖動(dòng)(jitter)筐乳、系統(tǒng)設(shè)置或者缺陷等。
? dnsyo:一個(gè)DNS檢測(cè)工具乔妈,能夠管理跨越多達(dá)1500個(gè)不同網(wǎng)絡(luò)的開放解析器的DNS查詢蝙云。它在您檢查DNS傳播或排查DNS設(shè)置的時(shí)候很有用。
? iperf:一個(gè)TCP/UDP帶寬測(cè)量工具路召,能夠測(cè)量?jī)蓚€(gè)端點(diǎn)間最大可用帶寬勃刨。它通過在兩個(gè)主機(jī)間單向或雙向的輸出TCP/UDP探測(cè)流量來測(cè)量可用的帶寬。它在監(jiān)測(cè)網(wǎng)絡(luò)容量股淡、調(diào)諧網(wǎng)絡(luò)協(xié)議棧參數(shù)時(shí)很有用身隐。一個(gè)叫做netperf的變種擁有更多的功能及更好的統(tǒng)計(jì)數(shù)據(jù)。
? netcat/socat:通用的網(wǎng)絡(luò)調(diào)試工具揣非,可以對(duì)TCP/UDP套接字進(jìn)行讀抡医、寫或監(jiān)聽躲因。它通常和其他的程序或腳本結(jié)合起來在后端對(duì)網(wǎng)絡(luò)傳輸或端口進(jìn)行監(jiān)聽早敬。
? nmap:一個(gè)命令行的端口掃描和網(wǎng)絡(luò)發(fā)現(xiàn)工具忌傻。它依賴于若干基于TCP/UDP的掃描技術(shù)來查找開放的端口、活動(dòng)的主機(jī)或者在本地網(wǎng)絡(luò)存在的操作系統(tǒng)搞监。它在你審查本地主機(jī)漏洞或者建立維護(hù)所用的主機(jī)映射時(shí)很有用水孩。zmap 是一個(gè)類似的替代品,是一個(gè)用于互聯(lián)網(wǎng)范圍的掃描工具琐驴。
? ping:一個(gè)常用的網(wǎng)絡(luò)測(cè)試工具俘种。通過交換ICMP的echo和reply報(bào)文來實(shí)現(xiàn)其功能。它在測(cè)量路由的RTT绝淡、丟包率以及檢測(cè)遠(yuǎn)端系統(tǒng)防火墻規(guī)則時(shí)很有用宙刘。ping的變種有更漂亮的界面(例如,noping)牢酵、多協(xié)議支持(例如悬包,hping)或者并行探測(cè)能力(例如,fping)馍乙。
? sprobe:一個(gè)啟發(fā)式推斷本地主機(jī)和任意遠(yuǎn)端IP地址之間的網(wǎng)絡(luò)帶寬瓶頸的命令行工具布近。它使用TCP三次握手機(jī)制來評(píng)估帶寬的瓶頸。它在檢測(cè)大范圍網(wǎng)絡(luò)性能和路由相關(guān)的問題時(shí)很有用丝格。
? traceroute:一個(gè)能發(fā)現(xiàn)從本地到遠(yuǎn)端主機(jī)的第三層路由/轉(zhuǎn)發(fā)路徑的網(wǎng)絡(luò)發(fā)現(xiàn)工具撑瞧。它發(fā)送限制了TTL的探測(cè)報(bào)文,收集中間路由的ICMP反饋信息显蝌。它在排查低速網(wǎng)絡(luò)連接或者路由相關(guān)的問題時(shí)很有用预伺。traceroute的變種有更好的RTT統(tǒng)計(jì)功能(例如,mtr)曼尊。
—————————
應(yīng)用日志解析器
在這個(gè)類別下的網(wǎng)絡(luò)監(jiān)測(cè)器把特定的服務(wù)器應(yīng)用程序作為目標(biāo)(例如扭屁,web服務(wù)器或者數(shù)據(jù)庫服務(wù)器)。
由服務(wù)器程序產(chǎn)生或消耗的網(wǎng)絡(luò)流量通過它的日志被分析和監(jiān)測(cè)涩禀。不像前面提到的網(wǎng)絡(luò)層的監(jiān)控器料滥,這個(gè)類別的工具能夠在應(yīng)用層面分析和監(jiān)控網(wǎng)絡(luò)流量。
? GoAccess:一個(gè)針對(duì)Apache和Nginx服務(wù)器流量的交互式查看器艾船】梗基于對(duì)獲取到的日志的分析,它能展示包括日訪問量屿岂、最多請(qǐng)求践宴、客戶端操作系統(tǒng)、客戶端位置爷怀、客戶端瀏覽器等在內(nèi)的多個(gè)實(shí)時(shí)的統(tǒng)計(jì)信息阻肩,并以滾動(dòng)方式顯示。
? mtop:一個(gè)面向MySQL/MariaDB服務(wù)器的命令行監(jiān)控器,它可以將成本最大的查詢和當(dāng)前數(shù)據(jù)庫服務(wù)器負(fù)載以可視化的方式顯示出來烤惊。它在您優(yōu)化MySQL服務(wù)器性能乔煞、調(diào)諧服務(wù)器參數(shù)時(shí)很有用。
? ngxtop:一個(gè)面向Nginx和Apache服務(wù)器的流量監(jiān)測(cè)工具柒室,能夠以類似top指令的方式可視化的顯示W(wǎng)eb服務(wù)器的流量渡贾。它解析web服務(wù)器的查詢?nèi)罩疚募⑹占硞€(gè)目的地或請(qǐng)求的流量統(tǒng)計(jì)信息。
———
總結(jié)
在這篇文章中雄右,我展示了許多命令行式監(jiān)測(cè)工具空骚,從最底層的包層面的監(jiān)控器到最高層應(yīng)用程序?qū)用娴木W(wǎng)絡(luò)監(jiān)控器。
了解那個(gè)工具的作用是一回事擂仍,選擇哪個(gè)工具使用又是另外一回事囤屹。單一的一個(gè)工具不能作為您每天使用的通用的解決方案。
一個(gè)好的系統(tǒng)管理員應(yīng)該能決定哪個(gè)工具更適合當(dāng)前的環(huán)境逢渔。希望這個(gè)列表對(duì)此有所幫助牺丙!
作者:C語言編程老師
https://www.bilibili.com/read/cv10386002
出處: bilibili