在linux中使用tcpdump抓包的方法:

在linux中使用tcpdump抓包的方法:

1,运行下面命令来从所有网卡中捕获数据包:

tcpdump -i any

2,从指定网卡中捕获数据包

tcpdump -i eth0

3,指定网卡,IP地址,写入文件

tcpdump -i eth0 host 10.19.150.242 -w ./datdump.cap

4,指定网卡,源ip 且 目的ip,写入文件

tcpdump -i eth0 src host 10.10.100.19 and dst host 10.10.100.153 -w ./datdump1.cap

5,指定网卡,源ip 或 目的ip,写入文件

tcpdump -i eth0 src host 10.10.100.19 or dst host 10.10.100.153 -w ./datdump1.cap

6,指定网卡,tcp端口 且 源ip 且 目的ip,写入文件

tcpdump -i eth0 tcp port 52312 and src host 10.10.100.19 and dst host 10.10.100.153 -w ./datdump3.cap

7,指定网卡,tcp端口 且 源ip 且 目的ip,写入文件

tcpdump -i eth0 host ! 10.10.100.19 and ! 10.10.100.153 -w ./datdump4.cap

8,只抓取sync的数据包 具体什么意思,详见

tcpdump -i eth0 tcp[13] == 2 -w ./datdump5.cap

9,只抓取HTTP包

tcpdump -i eth0 ‘tcp[(tcp[12]>>2):4] = 0x48545450’ -w ./datdump5.cap

10,只抓取ip数据帧中没有数据的包,详见

tcpdump -i eth0 ‘((ip[2:2] – ((ip[0]&0xf)<

tcpdump [ 选项 ] [ -c 数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ]

man tcpdump

tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]

&#x200B;    [ -c count ]

&#x200B;    [ -C file_size ] [ -G rotate_seconds ] [ -F file ]

&#x200B;    [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]

&#x200B;    [ --number ] [ -Q in|out|inout ]

&#x200B;    [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]

&#x200B;    [ -W filecount ]

&#x200B;    [ -E spi@ipaddr algo:secret,... ]

&#x200B;    [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]

&#x200B;    [ --time-stamp-precision=tstamp_precision ]

&#x200B;    [ --immediate-mode ] [ --version ]

&#x200B;    [ expression ]

&#x9009;&#x9879;&#x7FFB;&#x8BD1;&#x5982;&#x4E0B;&#xFF1A;

-l&#xFF1A;&#x4F7F;&#x6807;&#x51C6;&#x8F93;&#x51FA;&#x53D8;&#x4E3A;&#x7F13;&#x51B2;&#x884C;&#x5F62;&#x5F0F;&#xFF1B;

-c&#xFF1A;&#x6293;&#x5305;&#x6B21;&#x6570;&#xFF1B;

-nn&#xFF1A;&#x76F4;&#x63A5;&#x4EE5; IP &#x53CA; Port Number &#x663E;&#x793A;&#xFF0C;&#x800C;&#x975E;&#x4E3B;&#x673A;&#x540D;&#x4E0E;&#x670D;&#x52A1;&#x540D;&#x79F0;&#xFF1B;

-s &#xFF1A;<数据包大小> &#x8BBE;&#x7F6E;&#x6BCF;&#x4E2A;&#x6570;&#x636E;&#x5305;&#x7684;&#x5927;&#x5C0F;&#xFF1B;

-i&#xFF1A;&#x6307;&#x5B9A;&#x76D1;&#x542C;&#x7684;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;&#xFF1B;

-r&#xFF1A;&#x4ECE;&#x6307;&#x5B9A;&#x7684;&#x6587;&#x4EF6;&#x4E2D;&#x8BFB;&#x53D6;&#x5305;&#xFF1B;

-w&#xFF1A;&#x8F93;&#x51FA;&#x4FE1;&#x606F;&#x4FDD;&#x5B58;&#x5230;&#x6307;&#x5B9A;&#x6587;&#x4EF6;&#xFF1B;

-a&#xFF1A;&#x5C06;&#x7F51;&#x7EDC;&#x5730;&#x5740;&#x548C;&#x5E7F;&#x64AD;&#x5730;&#x5740;&#x8F6C;&#x53D8;&#x6210;&#x540D;&#x5B57;&#xFF1B;

-d&#xFF1A;&#x5C06;&#x5339;&#x914D;&#x4FE1;&#x606F;&#x5305;&#x7684;&#x4EE3;&#x7801;&#x4EE5;&#x4EBA;&#x4EEC;&#x80FD;&#x591F;&#x7406;&#x89E3;&#x7684;&#x6C47;&#x7F16;&#x683C;&#x5F0F;&#x7ED9;&#x51FA;&#xFF1B;

-e&#xFF1A;&#x5728;&#x8F93;&#x51FA;&#x884C;&#x6253;&#x5370;&#x51FA;&#x6570;&#x636E;&#x94FE;&#x8DEF;&#x5C42;&#x7684;&#x5934;&#x90E8;&#x4FE1;&#x606F;&#xFF1B;

-f&#xFF1A;&#x5C06;&#x5916;&#x90E8;&#x7684;Internet&#x5730;&#x5740;&#x4EE5;&#x6570;&#x5B57;&#x7684;&#x5F62;&#x5F0F;&#x6253;&#x5370;&#x51FA;&#x6765;&#xFF1B;

-t&#xFF1A;&#x5728;&#x8F93;&#x51FA;&#x7684;&#x6BCF;&#x4E00;&#x884C;&#x4E0D;&#x6253;&#x5370;&#x65F6;&#x95F4;&#x6233;&#xFF1B;

-v &#xFF1A;&#x8F93;&#x51FA;&#x7A0D;&#x5FAE;&#x8BE6;&#x7EC6;&#x7684;&#x62A5;&#x6587;&#x4FE1;&#x606F;&#xFF1B;--vv&#x5219;&#x8F93;&#x51FA;&#x66F4;&#x8BE6;&#x7EC6;&#x4FE1;&#x606F;&#x3002;
</数据包大小>

抓取带有特殊标记的数据包

https://www.jb51.net/LINUXjishu/118388.html?pc

示例:抓取只包含SYN位的数据包

1.客户端发送SYN

2.服务端回应SYN和ACK

3.客户端发送ACK

现在我们仅捕获包含SYN位的数据包。 注意,不希望步骤2(SYN-ACK)的数据包,只是一个普通的初始SYN。

tcp头的结构

在linux中使用tcpdump抓包的方法:

TCP头包含20个字节固定长度的数据(上图中的前4行),而控制位位于第13个字节(字节计算从0开始)

在linux中使用tcpdump抓包的方法:

只看我们感兴趣的控制位:

在linux中使用tcpdump抓包的方法:

这些是我们感兴趣的TCP控制位。我们对这个八位组中的位进行了编号,从0到7,从右到左,所以PSH位是位编号3,而URG位是编号5,SYN位是2。

在linux中使用tcpdump抓包的方法:

如果只包含 SYN 位,那就是 tcp头的第13个字节(0开始)的值为2,即tcp[13] == 2。

tcpdump -i eth0 tcp[13] == 2 -w ./datdump5.cap

如果抓取包含SYN位的数据包

tcpdump -i eth0 ‘tcp[13] & 2 == 2’ -w ./datdump5.cap

示例:只抓取ip数据包没有数据的包

tcpdump -i eth0 ‘((ip[2:2] – ((ip[0]&0xf)<

ip[2:2]

表示整个ip数据包总长度,即ip头的第2个字节(0开始)开始的两个字节(2,3)的值。

(ip[0]&0xf)<

Original: https://www.cnblogs.com/xutopia/p/15738423.html
Author: xutopia
Title: 在linux中使用tcpdump抓包的方法:

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613125/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球