[linux]ngrep命令、常見用法


1、ngrep

ngrep工具是grep命令的網絡版,ngrep用於抓包,並可以通過正則表達式,過濾、獲取指定樣式的數據包。能識別TCP、UDP和ICMP協議,理解bpf的過濾機制。

可以用來分析、定位服務中的問題。

因為如果包含多個服務的大型服務出現問題,需要逐步分析定位問題到具體的服務。使用ngrep抓包可以確定數據包是否已經到了某個服務模塊,從而定位是哪個部分的問題。

1.1 安裝

1.2 語法

ngrep <-LhNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num> <-s snaplen> <-S limitlen> <-w normal|byline|single|none> <-c cols> <-P char> <-F file>

1.3 選項

  • -q :不顯示包的詳情,都以‘#’ 號代替現實
  • -e :顯示空數據包
  • -i :忽略大小寫
  • -v :反轉匹配
  • -R :don't do privilege revocation logic
  • -x :以16進制格式顯示
  • -X :以16進制格式匹配
  • -w :整字匹配
  • -p :不使用混雜模式
  • -l :make stdout line buffered
  • -D :replay pcap_dumps with their recorded time intervals
  • -t :在每個匹配的包之前顯示時間戳
  • -T :顯示上一個匹配的數據包之間的時間間隔
  • -M :僅進行單行匹配
  • -I :從文件中讀取數據進行匹配
  • -O :將匹配的數據保存到文件
  • -n :僅捕獲指定數目的數據包進行查看
  • -A :匹配到數據包后dump隨后的指定數目的數據包
  • -s :set the bpf caplen
  • -S :set the limitlen on matched packets
  • -W :設置顯示格式byline將解析包中的換行符
  • -c :強制顯示列的寬度
  • -P :set the non-printable display char to what is specified
  • -F :使用文件中定義的bpf(Berkeley Packet Filter)
  • -N :顯示由IANA定義的子協議號
  • -d :使用哪個網卡,可以用-L選項查詢
  • -L :查詢網卡接口

2、使用實例

注意:需要以超級管理員身份執行該命令

  • ngrep host 192.168.1.8 udp:抓udp包

  • ngrep -W byline -qd any '.event' udp port 1514:抓取1514端口udp包,過濾正則匹配包含‘event’字段的包

  • ngrep -W byline 'GET /' 'tcp and dst port 80' -d eth1 | awk -v RS="#+" -v FS="\n" 'length() > 1000':查詢大於1k的請求頭

  • ngrep -d en0 -W byline host 192.168.1.9:抓取本地 en0 和 61.135.169.125(百度ip)的通信信息,並以行打印出來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM