麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

Linux進程網絡流量統計的實現過程

2024-09-05 23:05:01
字體:
來源:轉載
供稿:網友

前言

linux都有相應開源工具實時采集網絡連接、進程等信息其中網絡連接一般包括最基本的五元組信息(源地址、目標地址、源端口、目標端口、協議號)再加上所屬進程信息pid, exe, cmdline)等。其中這兩項數據大多可直接讀取linux /proc目錄下的網絡狀態連接文件/proc/net/tcp、/proc/net/udp), 進程狀態目錄(/proc/pid/xx) 。

在某些應用安全場景需要結合進程網絡連接、流入流出流量等數據可分析出是否在內網存在惡意外傳敏感數據現象在網絡監控 時發現 服務器大量帶寬被占用但不清楚由系統具體哪個進程占用 。為此都需要獲取到更細粒度的進程級網絡流量數據綜合分析。

在linux proc目錄下可查到主機級網絡數據,例如/proc/net/snmp提供了主機各層IP、ICMP、ICMPMsg、TCP、UDP詳細數據,/proc/net/netstat 文件 InBcastPkts、 OutBcastPkts、InOctets、OutOctets字段表示主機的收發包數、收包字節數據。很可惜沒有 進程級流入流出網絡流量數據。

為此參考nethogs原理實現統計進程級網絡流量方式。

基本數據

涉及proc以下幾個目錄或文件網絡狀態文件/proc/net/tcp、/proc/net/udp, 進程文件描述符目錄/proc/pid/fd。

網絡狀態文件/proc/net/tcp

我們重點關注五元組+狀態+inode號分別在第2、3、4、11列

其中第23列分別是主機字節序ip:port ,例如”0500000A:0016″ -> “10.0.0.5″, 22

第4列是狀態信息狀態字段含義如下:

“01″: “ESTABLISHED”,
“02″: “SYN_SENT”,
“03″: “SYN_RECV”,
“04″: “FIN_WAIT1″,
“05″: “FIN_WAIT2″,
“06″: “TIME_WAIT”,
“07″: “CLOSE”,
“08″: “CLOSE_WAIT”,
“09″: “LAST_ACK”,
“0A”: “LISTEN”,
“0B”: “CLOSING”

第11列是inode號 linux系統文件系統中的一個文件系統對象包括文件、目錄、設備文件、socket、管道等的元信息。

Linux,進程,網絡流量統計

進程文件描述符

/proc/pid/fd目錄下列出當前進程打開的文件信息其中0、1、2表示標準輸入、輸出、錯誤。

網絡連接是以socket:開頭的文件描述符,其中[]號內的是inode號這樣與網絡狀態文件/proc/net/tcp下的inode號可對應起來

Linux,進程,網絡流量統計

以pid:25133進程為例, 文件描述符是10、12 對應inode號分別是512505532、512473483的網絡連接,同時在下圖中的/proc/net/tcp都可以查找到對應連接的詳細信息。

Linux,進程,網絡流量統計

根據上述文件信息可以從/proc/net/tcp建立起網絡連接五元組->inode的映射, 而 /proc/pid/fd建立起連接inode ->進程的映射。

這樣 通過inode號作為橋梁關聯起系統內的進程與網絡連接的信息。

實現流程

為了實時獲取網絡連接流量在linux主機上使用開源libpcap庫來抓取網絡報文。整個實現流程圖如下包含以下5個關鍵步驟。

Linux,進程,網絡流量統計

抓包

使用抓包Libpcap庫獲取到網絡packet結構。

解析報文

解析出packet的五元組(源地址、目標地址、源端口、目標端口、協議號)信息和當前包的流量大小。

緩存更新

在ConnInodeHash查找五元組組成的key對應的inode號如果不存在重新讀取/proc/net/tcp與udp刷新ConnInodeHash緩存建立起連接與inode的映射并重新讀取/proc/pid/fd目錄對所有文件描述符遍歷過濾出以socket:開頭的連接刷新InodeProcessHash緩存重新建立inode與進程的映射。

hash查找

根據查找到inode號在InodeProcessHash查找相應進程pid。

統計流量

根據報文地址,判斷網絡連接方向,累加進程流入、流出數據。

總結

對linux主機抓包,結合網絡狀態文件、進程文件描述符實現一種細粒度的進程級網絡流量采集方式。

通過linux 文件inode號作為橋梁,關聯出進程、網絡連接的關系,可以統計進程接收/發送的總量/平均值等各維度數據,也可以分析出進程各個網絡連接的流量數據,這些在主機流量安全分析、網絡監控排查等場景方面可作為重要依據。但同時也需要注意的是持續通過libpcap抓包對主機性能有損耗影響。

以上所述是小編給大家介紹的Linux進程網絡流量統計的實現過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九色在线78m| 成人福利视频 | 毛片网站视频 | 国产69久久精品成人看 | 欧美精品在线视频观看 | 亚洲精品成人18久久久久 | 91欧美视频 | 亚洲人成网站在e线播放 | 国产一区二区不卡 | 毛片免费在线观看 | 鲁丝一区二区三区不属 | 轻点插视频 | 亚洲最大的成人网 | 国产在线导航 | 午夜视频国产 | 亚洲免费在线看 | 欧美日本色 | 性aaa| 欧美成人二区 | 小情侣嗯啊哦视频www | 免费观看一级黄色片 | 一区二区三区手机在线观看 | 一本免费视频 | 精品中文字幕久久久久四十五十骆 | 久久恋| 久在线观看福利视频69 | 欧美爱爱视频 | 精品国产一区三区| 久国产| 久草在线免费资源站 | 91福利免费观看 | 在线成人免费观看www | 一级做受大片免费视频 | 色99久久 | 亚洲一区二区三区日本久久九 | 亚洲av一级毛片特黄大片 | 日韩视频在线观看免费 | 中文字幕在线观看日韩 | 国产精品久久久久久久亚洲按摩 | 亚洲网站免费观看 | 一本色道久久综合亚洲精品小说 |