說說Linux抓包命令tcpdump

大雄45發表於2022-02-17
導讀 什麼是tcpdump?tcpdump -->用來將網路中傳送的資料包的"頭"完全截獲下來提供分析,常見的有Wireshark。在 中輸入 man tcpdump給出的定義如下所示:

tcpdump - 轉儲網路上的資料流

是不是感覺很懵?我們用通俗、形象、學術的表達方式來全方位描述tcpdump:

  • 通俗的來說,tcpdump是一個抓包工具,用於抓取網路中傳輸的資料包
  • 形象的來說,tcpdump如同國家海關,凡是入境和出境的貨物,海關都要抽樣檢查,看看裡面具體是什麼貨物
  • 學術的來說,tcpdump是一種Sniffer(嗅探器),利用乙太網的特性,透過將網路裝置置於混雜模式來獲取傳輸在網路中的資訊包
  • 說說Linux抓包命令tcpdump說說Linux抓包命令tcpdump

    命令作用

    該命令支援針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。tcpdump就是一種免費的網路分析工具,尤其其提供了原始碼,公開了介面,因此具備很強的可擴充套件性,對於網路維護和入侵者都是非常有用的工具。tcpdump存在於基本的FreeBSD系統中,由於它需要將網路介面設定為混雜模式,普通使用者不能正常執行,但具備root許可權的使用者可以直接執行它來獲取網路上的資訊。因此係統中存在網路分析工具主要不是對本機安全的威脅,而是對網路上的其他計算機的安全存在威脅。經典的系統管理員分析工具!

    說說Linux抓包命令tcpdump說說Linux抓包命令tcpdump

    常用關鍵字

    tcpdump命令中幾種關鍵字:

  • 第一種:型別關鍵字,包括:host,net,port
  • 第二種:傳輸方向關鍵字,包括:src,dst
  • 第三種:協議關鍵字,包括: ip,arp,tcp,udp等型別
  • 第四種:其他關鍵字,包括:gateway,broadcast,less,greater,not,!,and,&&,or,||
  • 備註說明

    1) 抓取回環網口的包:

$ tcpdump -i lo

2) 防止包截斷的方法:

 $ tcpdump -s 0

3) 以數字顯示主機及埠:

  $ tcpdump -n

命令淺解
$ tcpdump tcp -i eth1 -t -s0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

1)tcp: # ip,icmp,arp,rarp,udp這些選項要放第一個引數,用來過濾資料包的型別
2)-i eth1 # 只抓經過網口eth1的包
3)-t # 不顯示時間戳
4)-s 0 # 抓取資料包時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的資料包
5)-c 100 # 只抓取100個資料包
6)dst port ! 22 # 不抓取目標埠是22的資料包
7)src net 192.168.1.0/24 # 資料包的源網路地址為192.168.1.0/24
8)-w ./target.cap # 儲存成cap檔案,方便用wireshark工具進行分析

其它命令
$ tcpdump host 192.168.0.1 and /(192.168.0.2 or 192.168.0.3 /)

# 擷取主機1與主機2或3之間的通訊包

$ tcpdump ip host 192.168.0.1 and ! 192.168.0.2

# 擷取主機1除了和主機2之外所有主機通訊的ip包

$ tcpdump tcp port 23 host 210.27.48.1

# 擷取主機192.168.0.1接收或發出的telnet包

$ tcpdump -i eth0 host ! 192.168.0.1 and ! 192.168.0.2 and dst port 80

# 截獲除了主機1、2外訪問本機http埠的資料包

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2856054/,如需轉載,請註明出處,否則將追究法律責任。

相關文章