歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:如何使用tcpdump來捕獲TCP SYN,ACK和FIN包

Linux系統入門學習:如何使用tcpdump來捕獲TCP SYN,ACK和FIN包

日期:2017/2/28 14:27:24   编辑:Linux教程

問題:我想要監控TCP連接活動(如,建立連接的三次握手,以及斷開連接的四次握手)。要完成此事,我只需要捕獲TCP控制包,如SYN,ACK或FIN標記相關的包。我怎樣使用tcpdump來僅僅捕獲TCP SYN,ACK和/或FYN包?

作為業界標准的捕獲工具,tcpdump提供了強大而又靈活的包過濾功能。作為tcpdump基礎的libpcap包捕獲引擎支持標准的包過濾規則,如基於5重包頭的過濾(如基於源/目的IP地址/端口和IP協議類型)。

Linux網絡十分有用的兩個命令ip和TcpDump http://www.linuxidc.com/Linux/2012-11/74823.htm

Linux下抓包工具TcpDump使用 http://www.linuxidc.com/Linux/2012-11/75080.htm

Linux TcpDump命令詳解 http://www.linuxidc.com/Linux/2012-12/75666.htm

Linux操作系統TcpDump抓包分析詳解 http://www.linuxidc.com/Linux/2013-07/87309.htm

Tcpdump的用法及使用案例 http://www.linuxidc.com/Linux/2013-11/93200.htm

Linux運維工程師利器:Nmap和TCPdump http://www.linuxidc.com/Linux/2014-02/96993.htm

tcpdump/libpcap的包過濾規則也支持更多通用分組表達式,在這些表達式中,包中的任意字節范圍都可以使用關系或二進制操作符進行檢查。對於字節范圍表達,你可以使用以下格式:

  1. proto [ expr : size ]

“proto”可以是熟知的協議之一(如ip,arp,tcp,udp,icmp,ipv6),“expr”表示與指定的協議頭開頭相關的字節偏移量。有我們熟知的直接偏移量如tcpflags,也有取值常量如tcp-syn,tcp-ack或者tcp-fin。“size”是可選的,表示從字節偏移量開始檢查的字節數量。

使用這種格式,你可以像下面這樣過濾TCP SYN,ACK或FIN包。

只捕獲TCP SYN包:

  1. # tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) != 0"

只捕獲TCP ACK包:

  1. # tcpdump -i <interface> "tcp[tcpflags] & (tcp-ack) != 0"

只捕獲TCP FIN包:

  1. # tcpdump -i <interface> "tcp[tcpflags] & (tcp-fin) != 0"

之捕獲TCP SYN或ACK包:

  1. # tcpdump -r <interface> "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"

Copyright © Linux教程網 All Rights Reserved