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
这个指令会捕获一切经过默认网卡的流量,并将其打印到终端上。假如要将输出保存到文件中,请运用以下指令:
sudo tcpdump -w output.pcap
这个指令将流量保存到名为 output.pcap 的文件中。
假如要限制捕获的流量,请运用以下指令:
sudo tcpdump host 192.168.1.1
该指令只会捕获源地址或方针地址为 192.168.1.1 的流量。
三、TCPDump 的高档用法
TCPDump 还有许多高档用法,比如过滤特定的协议、端口、包类型等。
- 过滤特定协议
TCPDump 能够经过协议称号过滤要捕获的数据包。以下是一些常见的协议称号:
- tcp
- udp
- icmp
- arp
以下是一个只捕获 TCP 流量的例子:
sudo tcpdump tcp
- 过滤特定端口
TCPDump 还能够经过源端口或方针端口过滤要捕获的数据包。以下是一些示例:
sudo tcpdump port 80
该指令将仅捕获一切源或方针端口为 80 的流量。
sudo tcpdump src port 22
该指令将仅捕获一切源端口为 22 的流量。
- 过滤 ICMP 数据包
以下指令将仅捕获一切来自 192.168.1.1 的 ICMP 数据包:
sudo tcpdump -i eth0 icmp and src host 192.168.1.1
- 捕获 HTTP 流量
以下指令将捕获一切 HTTP 流量,并将其存储到名为 http.pcap 的文件中:
sudo tcpdump -i eth0 -w http.pcap port 80
- 抓取 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 来监督和剖析网络流量是一项要害的网络管理和安全任务,通晓该东西将协助您更好地了解网络流量,发现并解决网络问题。