打印
[其它应用]

Linux命令:tcpdump

[复制链接]
3746|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2024-4-24 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
tcpdump:tcpdump 是一个在 Unix/Linux 系统上常用的网络抓包工具,用于捕获网络数据包并将其显示或保存到文件中。(Wireshare也是一个抓包工具,但是是图形化工具,常用于Windows上)

数据包:数据包是在网络上传输的基本单位,包含了网络通信的信息,如源地址、目标地址、协议类型、数据内容等。

1

语法

tcpdump 命令的基本语法如下:

tcpdump [options] [expression]


- tcpdump:命令本身。

- [options]:用于指定 `tcpdump` 的选项和参数,如捕获控制参数、显示控制参数、过滤参数等。

- [expression]:可选参数,用于过滤要捕获的数据包。您可以根据需要指定特定的条件,如主机、端口、协议等,以过滤出感兴趣的数据包。



在使用 tcpdump 命令时,您可以根据具体的需求结合不同的选项和表达式来捕获、显示和过滤网络数据包。例如,您可以指定要监听的网络接口、捕获特定主机的数据包、显示数据包内容等。
以下是一个示例:
tcpdump -i eth0 host 192.168.1.100
在这个示例中,-i eth0 指定了要监听的网络接口为 eth0,host 192.168.1.100 指定了要捕获的数据包为源或目标地址为 192.168.1.100 的数据包。
通过灵活使用不同的选项和表达式,您可以根据具体的需求定制 tcpdump 命令,以实现网络监控、分析和故障排除等目的。
2

参数(按功能分)

1. 捕获控制参数:
    -i:指定要监听的网络接口。
    -c:指定要捕获的数据包数量。
    -s:指定要捕获的数据包的大小。
    -w:将捕获的数据包保存到文件中。
2. 显示控制参数:
    -n:以数字形式显示地址,而不是尝试解析为主机名。
    -A:以 ASCII 格式显示数据包内容。
    -v:显示更详细的数据包信息。
3. 过滤参数:
    host <host>:      捕获特定主机的数据包。
    net <network>:    捕获特定网络的数据包。
    port <port>:      捕获特定端口的数据包。
    src <source>:     捕获特定源地址的数据包。
    dst <destination>:捕获特定目标地址的数据包。
4. 其他参数:
    -r <file>:从文件中读取数据包进行分析。
    -X:       以十六进制和 ASCII 格式显示数据包内容。
    -tttt:    显示时间戳。
    -q:       以更安静的模式运行,减少输出信息。
3

举例

抓取特定协议的数据(以 UDP 为例)
$ tcpdump -i eth0 udp
$ tcpdump -i eth0 proto 17
抓取特定主机的数据
#使用过滤器 host 可以抓取特定目的地和源 IP 地址的流量。
$ tcpdump -i eth0 host 10.10.1.1
#也可以使用 src 或 dst 只抓取源或目的地:
$ tcpdump -i eth0 dst 10.10.1.20
将抓取的数据写入文件
$ tcpdump -i eth0 -s0 -w test.pcap
4

参考文章

https://blog.csdn.net/ljbcharles/article/details/122256796

https://zhuanlan.zhihu.com/p/74812069

https://www.runoob.com/linux/linux-comm-tcpdump.html

https://zhuanlan.zhihu.com/p/482617730

使用特权

评论回复
沙发
tpgf| | 2024-5-6 15:25 | 只看该作者
这个是一个工具还是一条指令呢

使用特权

评论回复
板凳
paotangsan| | 2024-5-6 16:05 | 只看该作者
普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

使用特权

评论回复
地板
paotangsan| | 2024-5-6 16:12 | 只看该作者
如果不指定网卡,默认tcpdump只会监视第一个网络接口

使用特权

评论回复
5
wakayi| | 2024-5-6 21:24 | 只看该作者
tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的

使用特权

评论回复
6
renzheshengui| | 2024-5-6 21:55 | 只看该作者
我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包

使用特权

评论回复
7
keaibukelian| | 2024-5-6 22:26 | 只看该作者
它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

使用特权

评论回复
8
heimaojingzhang| | 2024-5-6 22:57 | 只看该作者
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析

使用特权

评论回复
9
亚瑟| | 2024-5-24 22:30 | 只看该作者
这是不是个工具啊

使用特权

评论回复
10
yangjiaxu| | 2024-5-27 22:09 | 只看该作者
一般linux也可以用网路岗这种软件来抓包吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1191

主题

5214

帖子

12

粉丝