tcpdump命令--實用篇

來源:互聯網
上載者:User

標籤:lte   查看   sci   轉換   比較   目標   之間   cpu   head   

//查看本機與mysql的操作命令 注意 -i any表示監聽所有網路介面,我們也根據自身情況選擇網路介面  #tcpdump -i any -w - dst port 3306 |strings    //查看本機58895上與mysql的命令   注意 -i any 表示監聽所有網路介面,我們需要根據自身情況選擇網路介面  #tcpdump -i any -w - dst port 3306 and src port 58895 |strings      同理,也可以使用上面的命令,查看kafka,etcd,redis,mc等的命令情況,只要是明文協議都可以
tcpdump命令格式
  #tcpdump option filter    option 舉例 -n, -i any 等    filter 是過濾包的條件,舉例: tcp, portrange 1-1000, src port 58895, host www.itshouce.com.cn,      filter可以進行組合 比如:        dst port 3306 and src port 58895         portrange 1-1000 or src port 58895        not dst port 3306                      option                  filter  舉例: tcpdump   -i any -n    portrange 1-3306 or portrange 10000-58895
tcpdump option
  //在en2這個網路介面監聽,如果不指定,那麼會搜尋所有的網路介面,在數字最小的網路連接埠上監聽  //也就是tcpdump -D  上左邊數字最小的  #tcpdump -i en2         //linux 2.2以上支援 -i any  #tcpdump -i any     可以監聽所有連接埠    -n   不要把ip轉換為機器名字  #tcpdump -n  // -w -     // -w為把內容write到某個地方, -表示標準輸出  也就是輸出到標準輸出中  #tcpdump  -w - |strings    這是一個超級有用的命令,把包的資料,用字元展示出來  // -w a.cap   把抓包結果寫入a.cap中  // -C 1      如果a.cap 超過1M 大小,則新開一個檔案,  -C fileSize , 單位是MB  #tcpdump  -C 1  -w a.cap  #ll    -rw-r--r--   1 root  wheel  1000092 Apr 21 21:05 a.cap    //超過1MB了    -rw-r--r--   1 root  wheel   849388 Apr 21 21:05 a.cap1  //-r 從某個檔案讀取  #tcpdump -n -r a.cap        #tcpdump -X    以十六進位以及ASCII的形式列印資料內容    #tcpdump -x     除了列印出header外,還列印packet裡面的資料(十六進位的形式)      #tcpdump -xx  以十六進位的形式列印header, data內容  // -A  把每一個packet都用以ASCII的形式列印出來  #tcpdump -A  host www.itshouce.com.cn     // -c 3 表示收到3個packet就退出  #tcpdump -A -c 3  host www.itshouce.com.cn    ...    3 packets captured    65 packets received by filter    0 packets dropped by kernel  //看目前機器上有哪些網路介面  #tcpdump -D    1.en0    2.awdl0    3.bridge0    4.utun0    5.en1    6.en2    7.p2p0    8.lo0  //-e  把串連層的頭列印出來  #tcpdump -e    21:15:27.665159 *:*:60:dc:d0:d9 (oui Unknown) > *:*:07:10:81:36 (oui Unknown), ethertype IPv4 (0x0800), length 79: zj-db0355dembp.lan.51318 > hiwifi.lan.domain: 20430+ A? www.itshouce.com.cn. (37)  #tcpdump -j timestamp type   可以修改輸出的時間格式,貌似centos6.5不支援  #tcpdump -J  顯示支援的時間格式  //-l  把stdout bufferd住,當你既想在螢幕上看結果,又想把結果輸出到檔案中時,比較有用  #tcpdump -l      //tee是一個命令,在螢幕上顯示dump內容,並把內容輸出到dump.log中    #tcpdump -l |tee dump.log         #tcpdump -l > dump.log &tail -f dump.log    //-q 就是quiect output, 盡量少的列印一些資訊  #tcpdump -q   //-S  列印真實的,絕對的tcp seq no  #tcpdump -S    21:33:06.569478 IP *dembp.lan.54864 > ***: Flags [P.], seq 3980049501:3980049596, ack 3916671858, win 4091, options [nop,nop,TS val 1201572125 ecr 1490447193], length 95  //預設抓取包長度是65535,  #tcpdump         //capture sieze 65535    listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes  //我們設定為256 該參數目的:減少抓包檔案的大小  #tcpdump -s  256        listening on pktap, link-type PKTAP (Packet Tap), capture size 256 bytes  #tcpdump -t   不要打時間戳記  #tcpudmp -tt   打出timstamp,從1970-1-1 以來的秒數,以及微秒數  #tcpdump -v    列印出詳細結果  如ttl  #tcpdump -vv   列印出更加詳細的結果  如window, checksum等
tcpdump過濾項
  下面所有測試中都有 -i any的選項,表示抓取所有網路介面上的包,只是為了讓測試方便    //抓取arp協議的包,然後host為192.168.199.*  測試時需要在另一個session,做一個ifconfig指令  //arp可以換為tcp,udp等  #tcpudmp -i any -n arp host 192.168.199      22:39:58.991043 ARP, Request who-has 192.168.199.125 tell 192.168.199.1, length 28    22:39:58.991059 ARP, Reply 192.168.199.125 is-at a4:5e:60:dc:d0:d9, length 28  //抓取訪問destination 80連接埠的包,然後我們做一個curl www.baidu.com的操作  #tcpdump -i any -n dst port 80  22:53:06.041382 IP 192.168.199.125.63161 > 119.75.219.45.80: Flags [F.], seq 0, ack 1, win 65535, length 0  //抓取源上連接埠是80的包  #tcpdump -i any -n src port 80         22:57:48.343422 IP 112.80.248.73.80 > 192.168.199.125.63275: Flags [.], seq 38478:39918, ack 78, win 193, length 1440  //抓取源或者目標連接埠都是80的包  #tcpdump -i any -n port 80        22:58:51.165333 IP 112.80.248.74.80 > 192.168.199.125.63298: Flags [F.], seq 100439, ack 79, win 193, length 0    22:58:51.165349 IP 192.168.199.125.63298 > 112.80.248.74.80: Flags [R], seq 703147494, win 0, length 0  //表示抓取destination prot 在1到80之間的連接埠的資料  #tcpdump  -i any -n dst portrange 1-80   在另外的面做curl www.baidu.com   以及  telnet 192.168.21.1     23:00:13.550006 IP 192.168.199.125.63310 > *.*.248.73.80: Flags [.], ack 71649, win 8012, length 0    23:01:27.363723 IP 192.168.199.125.63327 > 192.168.21.1.23: Flags [S], seq 621213649, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 1240986522 ecr 0,sackOK,eol], length 0  //抓取源的連接埠是20-80的包  #tcpdump -i any -n src portrange 20-80    //抓取連接埠是20-80的包,不考慮源  #tcpdump -i any -n portrange 20-80         //抓取destination為www.baidu.com的包  #tcpdump -i any dst www.baidu.com    然後ping www.baidu.com ,以及 在瀏覽器中訪問www.baidu.com    22:22:17.445872 IP *0355dembp.lan > 112.80.248.73: ICMP echo request, id 26478, seq 0, length 64    2:22:50.108236 IP  *0355dembp.lan.62371 > 112.80.248.74.https: Flags [S], seq 2884215363, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 1238683151 ecr 0,sackOK,eol], length 0  //抓取destination為192.168.1.2的包  #tcpdump -i any dst 192.168.1.2    22:26:46.808706 IP zj-db0355dembp.lan > 192.168.1.2: ICMP echo request, id 31854, seq 0, length 64  //抓取destination為192.168.1.[0-255]的包  #tcpdump -i any dst 192.168.1    可以指定範圍  #ifconfig  可以看出我原生ip是192.168.199.125  //抓取source為192.168.*.*的包, 使用-n 則只是為了顯示ip,而不是主機名稱,   #tcpdump -i any -n src 192.168        22:30:50.490355 IP 192.168.199.125.61086 > *.*.*.*.341: Flags [.], ack 56, win 8185, options [nop,nop,TS val 1239157627 ecr 1580310986], length 0  //抓取192.168的包(不管是source還是destination )  #tcpdump -i any -n host 192.168         22:38:07.580567 IP *.*.*.*.34186 > 192.168.199.125.61086: Flags [P.], seq 787907565:787907668, ack 871423065, win 126, options [nop,nop,TS val 1580748123 ecr 1239593243], length 103    22:38:08.453788 IP 192.168.199.125.61086 > *.*.*.*.34186: Flags [P.], seq 9481:10147, ack 5769, win 8179, options [nop,nop,TS val 1239594178 ecr 1580748994], length 666  //抓取包長度小於800的包  #tcpudmp -i any -n less 800     21:09:17.687673 IP 192.168.199.1.50150 > *.*.*.*.1900: UDP, length 385  //抓取包長度大於800的包  #tcpdump -i any -n greater 800       21:13:21.801351 IP 192.168.199.125.64826 > *.*.*.*.80: Flags [P.], seq 2155:3267, ack 44930, win 8192, length 1112    //只抓取tcp包  #tcpdump -i any -n tcp       1:21:18.777815 IP 192.168.199.125.50249 > *.*.*.*.443: Flags [.], ack 75, win 4093, options [nop,nop,TS val 1269008649 ecr 44997038], length 0  //只抓取udp包  #tcpdump -i any -n udp      21:22:48.434449 IP 192.168.199.1.50150 > *.*.*.*.1900: UDP, length 385  //只抓取icmp的包,internet控制包  #tcpdump -i any -n icmp       21:25:42.550374 IP 192.168.199.1 > 192.168.199.125: ICMP *.*.*.* unreachable - need to frag (mtu 1480), length 556

tcpdump命令--實用篇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.