首頁 > 軟體

Linux抓包命令tcpdump命令圖解

2020-06-16 16:45:21

什麼是tcpdump?tcpdump命令-->用來將網路中傳送的封包的"頭"完全截獲下來提供分析,常見的有Wireshark。在Linux中輸入命令man tcpdump給出的定義如下所示:

tcpdump - 轉儲網路上的資料流

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

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

【命令作用】

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

【常用關鍵字】

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埠的封包

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-09/15420.htm


IT145.com E-mail:sddin#qq.com