在 Wireshark 程序目录中,包含两个命令行捕获工具。这两个工具分别是 Dumpcap 和 Tshark。当不能以图形界面方式捕获数据时,可以在命令行使用 dumpcap 或 tshark 程序实施捕获。

一、使用 Dumpcap 捕获数据

执行 dumpcap -h 可以查看参数详情。

1、执行 dumpcap -D

D:\Program Files (x86)\Wireshark>dumpcap.exe -D
1. \Device\NPF_{ACEA0E58-E009-48BF-A484-A1366798B51D} (鏈湴杩炴帴* 3)
2. \Device\NPF_{BACE2AAC-EC26-4FC4-B385-DDAFE347F309} (VMware Network Adapter VMnet8)
3. \Device\NPF_{B038E4F2-4F55-43AD-9583-3D227791EB37} (鏈湴杩炴帴* 2)
4. \Device\NPF_{3866F6C2-1EFA-4A37-A62B-AE28EF24ABBD} (WLAN)
5. \Device\NPF_{9738C864-0A1F-490E-98FC-49B52AB40490} (VMware Network Adapter VMnet1)
6. \Device\NPF_{E4469318-F5DA-467C-AC80-7B4B91264577} (鏈湴杩炴帴)


显示乱码不要介意,可见当前有6个接口。

2、捕获数据。在捕获数据时,可以使用-c 或 -a选项指定停止捕获数据包的条件。本例中选择捕获第4个接口上的数据,并且当捕获文件达到1000KB时自动停止捕获。执行命令如下所示。

D:\Program Files (x86)\Wireshark>dumpcap -i 4 -a filesize:1000 -w e:\file\Wireshark\1000kb.pcapng
Capturing on 'WLAN'
File: e:\file\Wireshark\1000kb.pcapng
Packets captured: 1296
Packets received/dropped on interface 'WLAN': 1296/0 (pcap:0/dumpcap:0/flushed:0/ps_ifdrop:0) (100.0%)


从输出的信息中可以看到捕获的文件名、数据包数。

3、查看生成捕获文件 100kb.pcapng 的大小。

D:\Program Files (x86)\Wireshark>dir e:\file\Wireshark\1000kb.pcapng
 驱动器 E 中的卷是 文档
 卷的序列号是 000F-D904

 e:\file\Wireshark 的目录

2016/03/01  18:58         1,000,676 1000kb.pcapng
               1 个文件      1,000,676 字节
               0 个目录 13,512,331,264 可用字节



二、使用 Tshark 捕获数据

Tshark 是依赖 dumpcap 捕获数据的。可以通过 tshark -h 查看参数信息。操作如下:

1、打开终端

2、切换到 Wireshark 目录。执行 tshark -D 命令,查看可用的接口。

D:\Program Files (x86)\Wireshark>tshark -D
1. \Device\NPF_{ACEA0E58-E009-48BF-A484-A1366798B51D} (鏈湴杩炴帴* 3)
2. \Device\NPF_{BACE2AAC-EC26-4FC4-B385-DDAFE347F309} (VMware Network Adapter VMnet8)
3. \Device\NPF_{B038E4F2-4F55-43AD-9583-3D227791EB37} (鏈湴杩炴帴* 2)
4. \Device\NPF_{3866F6C2-1EFA-4A37-A62B-AE28EF24ABBD} (WLAN)
5. \Device\NPF_{9738C864-0A1F-490E-98FC-49B52AB40490} (VMware Network Adapter VMnet1)
6. \Device\NPF_{E4469318-F5DA-467C-AC80-7B4B91264577} (鏈湴杩炴帴)


3、开始捕获数据。

D:\Program Files (x86)\Wireshark>tshark -i4 -a files:3 -b duration:10 -w e:\file\Wireshark\mytshark.pcapng
Capturing on 'WLAN'
1808


以上命令表示指定捕获4号接口,捕获3个文件后自动停止,10秒后捕获下一个文件。

4、查看生成的捕获文件。

D:\Program Files (x86)\Wireshark>dir e:\file\Wireshark\mytshark*
 驱动器 E 中的卷是 文档
 卷的序列号是 000F-D904

 e:\file\Wireshark 的目录

2016/03/01  19:17            22,396 mytshark_00001_20160301191653.pcapng
2016/03/01  19:17           753,168 mytshark_00002_20160301191703.pcapng
2016/03/01  19:17           282,500 mytshark_00003_20160301191713.pcapng
               3 个文件      1,058,064 字节
               0 个目录 13,511,270,400 可用字节




三、使用捕获过滤器

当用户在命令行捕获数据时,可能只想捕获特定的数据。

使用 Dumpcap 指定捕获过滤器进行数据捕获。

D:\Program Files (x86)\Wireshark>dumpcap -i4 -f "tcp port 80" -w e:\file\Wireshark\port80.pcapng
Capturing on 'WLAN'
File: e:\file\Wireshark\port80.pcapng
Packets captured: 287
Packets received/dropped on interface 'WLAN': 287/0 (pcap:0/dumpcap:0/flushed:0/ps_ifdrop:0) (100.0%)


输出的信息显示了捕获的包数和捕获文件名。执行以上命令后,该程序不会自动停止捕获,需要按下 Ctrl + C 组合键停止。使用 Tshark 工具指定捕获过滤器的参数和 Dumpcap 一样,这里不再赘述。


四、使用显示过滤器

在命令行中,使用的显示过滤器比捕获过滤器多。

1、使用捕获过滤器捕获所有 TCP 数据,并保存该捕获文件为 tcp.pcapng。

D:\Program Files (x86)\Wireshark>tshark -i4 -f"tcp" -w e:\file\Wireshark\tcp.pcapng
Capturing on 'WLAN'
529


2、使用-r参数读取捕获文件的ndash,使用-Y参数指定显示过滤器,并使用-w参数指定保存的新捕获文件。

D:\Program Files (x86)\Wireshark>tshark -r e:\file\Wireshark\tcp.pcapng -Y "tcp.analysis.flags" -w e:\file\Wireshark\analysisflags.pcapng


执行以上命令后没有任何输出信息。但是会生成一个新的捕获文件。

3、查看新捕获文件的基本信息。

D:\Program Files (x86)\Wireshark>dir e:\file\Wireshark\analysisflags.pcapng
 驱动器 E 中的卷是 文档
 卷的序列号是 000F-D904

 e:\file\Wireshark 的目录

2016/03/01  19:31               228 analysisflags.pcapng
               1 个文件            228 字节
               0 个目录 13,510,852,608 可用字节