91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Linux中的tcpdump工具

發布時間:2021-09-26 17:26:36 來源:億速云 閱讀:164 作者:iii 欄目:系統運維

本篇內容主要講解“如何使用Linux中的tcpdump工具”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用Linux中的tcpdump工具”吧!

先來看一個比較基本的用法:

代碼如下:


tcpdump -i eth0


其中,eth0為參數值,表示需要抓包的網口,這是個必需參數哦。

tcpdump的具體參數及意義:

-i:指定tcpdump監聽的網絡接口

-s:指定要監聽數據包的長度

-c:指定要監聽的數據包數量,達到指定數量后自動停止抓包

-w:指定將監聽到的數據包寫入文件中保存

-A:指定將每個監聽到的數據包以ACSII可見字符打印

-n:指定將每個監聽到數據包中的域名轉換成IP地址后顯示

-nn:指定將每個監聽到的數據包中的域名轉換成IP、端口從應用名稱轉換成端口號后顯示

-e:指定將監聽到的數據包鏈路層的信息打印出來,包括源mac和目的mac,以及網絡層的協議

-p:將網卡設置為非混雜模式,不能與host或broadcast一起使用

-r:指定從某個文件中讀取數據包

-S:指定打印每個監聽到的數據包的TCP絕對序列號而非相對序列號


tcpdump支持很多的關鍵字,下面先看幾個例子:

(例1)tcpdump -i eth0 host 192.168.0.250 ----- 在網口eth0上抓取主機地址為192.168.0.250的所有數據包 。

(例2)tcpdump -i eth0 net 192.168.0.0/24 ------ 在網口eth0上抓取網絡地址為192.168.0.0/24的所有數據包

(例3)tcpdump -i eth0 port 80 ------ 在網口eth0上抓取端口為80的所有數據包(注意,這里不區分是源端口還是目的端口)

當然,我們也可以指定源端口或目的端口

(例4)tcpdump -i eth0 src port 80 and dst port 6100 --- 在網口eth0上抓取源端口為80且目的端口為6100的數據包,這里用到了and邏輯運算符

(例5)tcpdump -i eth0 icmp --- 在網口eth0上抓取所有icmp協議的數據包

以上幾個例子,可以大致體現出tcpdump的基本用法。

實際上,tcpdump主要包括三種類型的關鍵字,第一種是關于類型的關鍵字,主要包括host,net,port,如上面的例(1)(2)(3),第二種

是確定傳輸方向的關鍵字,主要包括src,dst,src or dst,src and dst,這些關鍵字指明了傳輸的方向,如上面的例(4)。第三種是協議關鍵字,包括fddi,ip,arp,

rarp,tcp,udp,imcp等,如上面的例(5)。

除了這三種類型的關鍵字外,還有其他重要的關鍵字,如:gateway,broadcast,less,greater,還有三種邏輯運算,取非運算是'not'、'!',與運算符是'and'、'&&'、

或運算符是'or'、'||',這些關鍵字可以組合起來構成強大的組合條件來滿足我們的需求。

借助tcpdump統計http請求
這里所說的統計http請求,是指統計QPS(每秒請求數),統計前十條被訪問最多的url。一般做這樣的統計時,我們經常會使用網站訪問日志來統計。當我們來到一個陌生的服務器環境,需要立即統計當前前十條被訪問最多的url,來初步確定是否存在攻擊行為,使用tcpdump則簡單得多,因為我們不需要關心網站日志在哪,不需要考慮網站日志有沒有開啟之類的問題,直接用tcpdump捕捉當前的http包,再進一步過濾,就會得出我們想要的統計。此功能已集成到EZHTTP,下面是效果圖:
如何使用Linux中的tcpdump工具

下面介紹其統計方法。
1、捕捉10秒的數據包。

代碼如下:


tcpdump -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -w /tmp/tcp.cap -s 512 2>&1 &
sleep 10
kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`


此命令表示監控網卡eth0,捕捉tcp,且21-22字節字符為GE或者PO,表示匹配GET或者POST請求的數據包,并寫到/tmp/tcp.cap文件。
2、這時候我們得到最新10秒的二進制數據包文件,我們下一步就是通過strings命令來找出GET/POST的url以及Host。

代碼如下:


strings /tmp/tcp.cap | grep -E "GET /|POST /|Host:" | grep --no-group-separator -B 1 "Host:" | grep --no-group-separator -A 1 -E "GET /|POST /" | awk '{url=$2;getline;host=$2;printf ("%s\n",host""url)}' > url.txt


此命令是本文的關鍵,通過strings顯示二進制文件tcp.cap所有可打印字符,然后通過grep和awk過濾出http請求,并把拼接得到的url(包括域名+uri)寫進一個文件url.txt。
3、這時我們拿到了近10秒鐘所有的訪問url,接下來的統計就容易得出,比如:
統計QPS:

代碼如下:


(( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))


排除靜態文件統計前10訪問url:

代碼如下:


grep -v -i -E "\.(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n 10

到此,相信大家對“如何使用Linux中的tcpdump工具”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克东县| 五河县| 武宁县| 广安市| 台前县| 阜南县| 武威市| 大余县| 达州市| 西城区| 朝阳县| 苍梧县| 六盘水市| 陵水| 汽车| 凤山市| 方正县| 鄂伦春自治旗| 郁南县| 浏阳市| 呼伦贝尔市| 婺源县| 宿迁市| 交口县| 洛浦县| 桑植县| 徐汇区| 白河县| 丹江口市| 台北县| 纳雍县| 常山县| 南木林县| 曲阜市| 张北县| 保康县| 汉中市| 容城县| 桃江县| 东源县| 延安市|