主要分為以下幾個步驟:
(1)、通過使用抓包Libpcap庫技術,對網絡流量包進行獲取,從而可以得到每個網絡通信包的五元組(源地址、目標地址、源端口、目標端口、協議號)信息和當前包的流量大小,得到這些信息後建立一個表,此表中的同一會話的包大小信息會隨著此會話的不斷交互而累加數據包的大小。
(2)、通過對/proc/下的所有進程的fd/目錄下的所有鏈接進行遍歷查看link的值,將遍歷到的所有包含socket:開頭的連接,將進程號與遍歷所得的對應進程號、進程對應的所有socket fd對應的inode號進行建表。在命令行可以輸入以下命令進行某一進程的當前網絡連接情況查看,如下(以firefox為例):
#get PID of firefox v0id@v0id:~$ ps aux | grep firefox v0id 2143 7.8 21.0 1138824 433960 ? Sl 11:19 44:36 /usr/lib/firefox/firefox
v0id@v0id:~$ ll /proc/2143/fd/ | grep socket lrwx------ 1 v0id v0id 64 11月 19 11:19 10 -> socket:[27273] lrwx------ 1 v0id v0id 64 11月 19 20:48 101 -> socket:[3726782] lrwx------ 1 v0id v0id 64 11月 19 11:19 13 -> socket:[27336] lrwx------ 1 v0id v0id 64 11月 19 11:19 14 -> socket:[27337] lrwx------ 1 v0id v0id 64 11月 19 11:19 21 -> socket:[28264] lrwx------ 1 v0id v0id 64 11月 19 20:48 30 -> socket:[29375] lrwx------ 1 v0id v0id 64 11月 19 20:48 31 -> socket:[29692] lrwx------ 1 v0id v0id 64 11月 19 20:48 32 -> socket:[30810] lrwx------ 1 v0id v0id 64 11月 19 20:48 33 -> socket:[30812] lrwx------ 1 v0id v0id 64 11月 19 20:48 36 -> socket:[31803] lrwx------ 1 v0id v0id 64 11月 19 11:19 4 -> socket:[26607] lrwx------ 1 v0id v0id 64 11月 19 20:48 40 -> socket:[31071] lrwx------ 1 v0id v0id 64 11月 19 20:48 41 -> socket:[31073] lrwx------ 1 v0id v0id 64 11月 19 20:52 44 -> socket:[5245647] lrwx------ 1 v0id v0id 64 11月 19 20:52 69 -> socket:[5244897] lrwx------ 1 v0id v0id 64 11月 19 20:52 71 -> socket:[5248187] lrwx------ 1 v0id v0id 64 11月 19 20:52 72 -> socket:[5246226] lrwx------ 1 v0id v0id 64 11月 19 20:52 75 -> socket:[5246227] lrwx------ 1 v0id v0id 64 11月 19 20:52 76 -> socket:[5246228] lrwx------ 1 v0id v0id 64 11月 19 20:52 77 -> socket:[5248188] lrwx------ 1 v0id v0id 64 11月 19 20:52 78 -> socket:[5248189] lrwx------ 1 v0id v0id 64 11月 19 20:52 79 -> socket:[5246239] lrwx------ 1 v0id v0id 64 11月 19 20:48 80 -> socket:[3726781] lrwx------ 1 v0id v0id 64 11月 19 20:52 81 -> socket:[5248214] lrwx------ 1 v0id v0id 64 11月 19 20:52 82 -> socket:[5248217] lrwx------ 1 v0id v0id 64 11月 19 20:52 83 -> socket:[5246330] lrwx------ 1 v0id v0id 64 11月 19 20:52 84 -> socket:[5248215] lrwx------ 1 v0id v0id 64 11月 19 20:52 85 -> socket:[5246331] lrwx------ 1 v0id v0id 64 11月 19 20:52 86 -> socket:[5248216] lrwx------ 1 v0id v0id 64 11月 19 20:52 87 -> socket:[5248218] lrwx------ 1 v0id v0id 64 11月 19 20:52 88 -> socket:[5249212] lrwx------ 1 v0id v0id 64 11月 19 20:48 89 -> socket:[37239] lrwx------ 1 v0id v0id 64 11月 19 11:19 9 -> socket:[27820] lrwx------ 1 v0id v0id 64 11月 19 20:52 90 -> socket:[5248222] lrwx------ 1 v0id v0id 64 11月 19 20:52 92 -> socket:[5248223] lrwx------ 1 v0id v0id 64 11月 19 20:52 93 -> socket:[5249279] lrwx------ 1 v0id v0id 64 11月 19 20:48 94 -> socket:[37240] lrwx------ 1 v0id v0id 64 11月 19 20:48 96 -> socket:[38308] lrwx------ 1 v0id v0id 64 11月 19 20:48 97 -> socket:[37345] lrwx------ 1 v0id v0id 64 11月 19 20:52 98 -> socket:[5249281] lrwx------ 1 v0id v0id 64 11月 19 20:52 99 -> socket:[5249282]
v0id@v0id:~$ ll /proc/2143/fd/ | grep socket ; cat /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 0101007F:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12396 1 00000000 100 0 0 10 0 1: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 11404 1 00000000 100 0 0 10 0 2: 9707A8C0:8BB9 0C7CB5DC:0050 02 00000001:00000000 01:00000166 00000002 1000 0 5243074 2 00000000 400 0 0 2 5 3: 9707A8C0:86F7 DF08A8C0:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5245647 1 00000000 21 4 8 10 -1 4: 9707A8C0:BFC9 E99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248217 1 00000000 20 4 24 10 -1 5: 9707A8C0:85FC AE2ED0CB:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248218 2 00000000 20 4 24 10 -1 6: 9707A8C0:9052 C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246239 2 00000000 20 4 20 10 -1 7: 9707A8C0:9281 925C4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246331 1 00000000 20 4 8 10 -1 8: 9707A8C0:DFB3 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5249212 2 00000000 21 4 24 10 -1 9: 9707A8C0:DFB5 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248223 2 00000000 20 4 24 10 -1 10: 9707A8C0:A614 E19D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246330 1 00000000 20 4 24 10 -1 11: 9707A8C0:9051 C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248189 2 00000000 20 4 1 6 -1 12: 9707A8C0:904B C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5244897 1 00000000 20 4 8 10 -1 13: 9707A8C0:DFA5 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248187 2 00000000 20 4 8 10 -1 14: 9707A8C0:A613 E19D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248214 1 00000000 20 4 24 10 -1 15: 9707A8C0:905E C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5249281 3 00000000 20 5 3 10 -1 16: 9707A8C0:EAFE DF08A8C0:0050 08 00000000:00000001 00:00000000 00000000 1000 0 2102209 1 00000000 20 4 6 50 16 17: 9707A8C0:DFB0 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248216 2 00000000 20 4 24 10 -1 18: 9707A8C0:904E C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246227 2 00000000 20 4 20 10 -1 19: 9707A8C0:DFB6 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5249279 2 00000000 21 0 0 10 -1 20: 9707A8C0:905F C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5249282 2 00000000 20 4 9 10 -1 21: 9707A8C0:C8CF 8805E29F:0050 08 00000000:00000001 00:00000000 00000000 1000 0 273820 1 00000000 20 4 6 43 16 22: 9707A8C0:975D 525D58DE:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246226 1 00000000 21 4 24 10 -1 23: 9707A8C0:9055 C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248215 1 00000000 20 4 20 10 -1 24: 9707A8C0:DFB4 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248222 2 00000000 20 4 24 10 -1 25: 9707A8C0:DFA9 DD5D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5248188 2 00000000 21 4 8 10 -1 26: 9707A8C0:904F C99D4F75:0050 01 00000000:00000000 00:00000000 00000000 1000 0 5246228 2 00000000 20 4 11 10 -1