tcpdump 是一个网络数据包嗅探和剖析东西,用于Linux体系管理员排除衔接问题。它能够用于捕获、过滤和剖析经过体系的网络流量,如 TCP/IP 数据包。它经常被用作安全东西,并将捕获的信息保存在 pcap 文件中,这些 pcap 文件能够经过 Wireshark 或指令东西本身翻开。

TCPDump 是一款强壮的网络抓包东西,它能够协助网络管理员或安全专家监督和剖析网络数据包。本文将具体介绍 TCPDump 的运用方法,以及怎么解读 TCPDump 抓包结果。

一、TCPDump 简介

TCPDump 是一个常用于 Unix 和 Linux 操作体系的指令行东西,它能够捕获网络数据包并将其存储为文件或在屏幕上打印出来。它是一个十分灵活的东西,能够满足各种不同的网络剖析需求。

在调试网络通信程序时tcpdump是必备东西。tcpdump很强壮,能够看到网络通信的每个细节。如TCP,能够看到3次握手,PUSH/ACK数据推送,close4次挥手,全部细节。包含每一次网络收包的字节数,时刻等。

二、TCPDump 的根本用法

tcpdump指令的运用格局如下:

tcpdump [option]... [filter]...
1.  -a:测验将网络和广播地址转换成称号;
2.  -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作;
3.  -d:把编译过的数据包编码转换成可阅读的格局,并倾倒到规范输出;
4.  -dd:把编译过的数据包编码转换成C言语的格局,并倾倒到规范输出;
5.  -ddd:把编译过的数据包编码转换成十进制数字的格局,并倾倒到规范输出;
6.  -e:在每列倾倒材料上显现衔接层级的文件头;
7.  -f:用数字显现网际网络地址;
8.  -F<表达文件>:指定内含表达方式的文件;
9.  -i<网络界面>:运用指定的网络截面送出数据包;
10. -n:不把主机的网络地址转换成姓名;
11. -N:不列出域名;
12. -O 不启用进行包匹配时所用的优化代码. 当置疑某些bug是由优化代码引起的, 此选项将很有用.
13. -p:不让网络界面进入混杂形式;
14. -q :快速输出,仅列出少量的传输协议信息;
15. -r<数据包文件>:从指定的文件读取数据包数据;
16. -s<数据包巨细>:设置每个数据包的巨细;
17. -S:用肯定而非相对数值列出TCP关联数;
18. -t:在每列倾倒材料上不显现时刻戳记;
19. -tt: 在每列倾倒材料上显现未经格局化的时刻戳记;
20. -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;
21. -v:具体显现指令履行进程;
22. -vv:更具体显现指令履行进程;
23. -w<数据包文件>:把数据包数据写入指定的文件。

要运用 TCPDump,您需求以超级用户权限运转它。以下是最根本的 TCPDump 指令:

sudo tcpdump

TCPDump抓包工具的使用

这个指令会捕获一切经过默认网卡的流量,并将其打印到终端上。假如要将输出保存到文件中,请运用以下指令:

sudo tcpdump -w output.pcap

这个指令将流量保存到名为 output.pcap 的文件中。

假如要限制捕获的流量,请运用以下指令:

sudo tcpdump host 192.168.1.1

该指令只会捕获源地址或方针地址为 192.168.1.1 的流量。

三、TCPDump 的高档用法

TCPDump 还有许多高档用法,比如过滤特定的协议、端口、包类型等。

  1. 过滤特定协议

TCPDump 能够经过协议称号过滤要捕获的数据包。以下是一些常见的协议称号:

  • tcp
  • udp
  • icmp
  • arp

以下是一个只捕获 TCP 流量的例子:

sudo tcpdump tcp
  1. 过滤特定端口

TCPDump 还能够经过源端口或方针端口过滤要捕获的数据包。以下是一些示例:

sudo tcpdump port 80

该指令将仅捕获一切源或方针端口为 80 的流量。

sudo tcpdump src port 22

该指令将仅捕获一切源端口为 22 的流量。

  1. 过滤 ICMP 数据包

以下指令将仅捕获一切来自 192.168.1.1 的 ICMP 数据包:

sudo tcpdump -i eth0 icmp and src host 192.168.1.1
  1. 捕获 HTTP 流量

以下指令将捕获一切 HTTP 流量,并将其存储到名为 http.pcap 的文件中:

sudo tcpdump -i eth0 -w http.pcap port 80
  1. 抓取 FTP 流量

以下指令将捕获一切 FTP 流量,并将其存储到名为 ftp.pcap 的文件中:

sudo tcpdump -i eth0 -w ftp.pcap port ftp or ftp-data

四、解读 TCPDump 抓包结果

在运转 TCPDump 后,您将看到一个输出,其中包含有关每个捕获的数据包的具体信息。以下是一些示例输出:

21:29:11.670067 IP 192.168.1.10.34768 > 8.8.8.8.53: UDP, length 35
21:29:11.699883 IP 8.8.8.8.53 > 192.168.1.10.34768: UDP, length 72
21:29:11.730617 IP 192.168.1.10.53362 > 151.101.65.69.443: Flags [S], seq 1171221815, win 29200, options [mss 1460,sackOK,TS val 616034415 ecr 0,nop,wscale 7], length 0

每行输出都包含以下信息:

  • 时刻戳:以小时、分钟、秒为单位显现。
  • 源地址和方针地址:数据包的源地址和方针地址。
  • 协议:传输协议(TCP、UDP 等)。
  • 标志:有关数据包的具体信息,例如 SYN、ACK 等。
  • 长度:数据包的长度。

能够经过阅读 TCPDump 输出并借助网络常识进行剖析,了解数据包传输的进程和网络瓶颈等问题。

五、总结

本文介绍了 TCPDump 的根本用法和高档用法,以及怎么解读 TCPDump 抓包结果。假如您需求更具体的内容,能够检查 TCPDump 的官方文档。运用 TCPDump 来监督和剖析网络流量是一项要害的网络管理和安全任务,通晓该东西将协助您更好地了解网络流量,发现并解决网络问题。