使用tcpdump查看原始数据包

0.查看是否安装

which tcpdump

1.基本使用

tcpdump  #您可以使用-v选项获得更多详细信息,而-vv可以获取更多信息
tcpdump -D #检查哪些网络接口可用于捕获,tcpdump --list-interfaces
tcpdump --interface any #使用任何活动接口捕获网络数据包,tcpdump -i interface_id,tcpdump --interface interface_id
tcpdump -c 5 #抓取5次
tcpdump -c 3  udp #抓取3次,协议类型为udp
#ctrl+z可以中断命令
tcpdump -w linuxmi.pcap#tcpdump 命令的输出存储到文件
 tcpdump -r linuxmi.pcap #读文件

2.有用的选项
假设您已登录到要管理的远程计算机。如果您不带任何选项运行“ tcpdump”,则输出将被来自您的SSH连接的数据包淹没。为避免这种情况,只需从输出中消除端口22

tcpdump not port 22 #消除22端口
tcpdump not port 143 and not port 25 and not port 22 #消除多个端口
tcpdump port 143 #仅监视143端口
tcpdump host hal9000 #从网络上的特定主机获取数据
tcpdump -i eth1 #指定要收听的网络接口
tcpdump udp -c 3 #指定协议,可以在/etc/ protocols中找到协议列表
tcpdump -c 3 host 192.168.174.135
tcpdump -c 3 host 192.168.174.135 and port 443 #指定主机和端口
tcpdump -c 3 -x #-x 16进制显示,-A ascii显示

3.保存输出以备后用

tcpdump -l | tee tcpdump_`date +%Y%m%e-%k.%M`
tcpdump -w tcpdump_raw_`date +%Y%m%e-%k.%M` #转换为二进制格式
tcpdump -r tcpdump_raw_YYYMMDD-H.M #读取上面二进制文件,或者wireshark看

tcpdump port 32772 -w dump_32772 #为端口32772运行了一个特定的转储

读取原始输出,举例1个包
17:26:22.924493 IP www.linux.org.www > test.linux.org.34365: P 2845:3739(894) ack 1624 win 9648 <nop,nop,timestamp 326501459 24374272>

我们所拥有的是对https://www.linux.org/的Web服务器请求。时间戳记过后,您会在主机名(即端口80)的末尾注意到.www。这将被发送到发出请求的主机test.linux.org的端口34365。“ P”代表TCP“ oush”功能。这意味着应该立即发送数据。在2845:3739(894)之后的数字中,2845标记第一个数据包的八位位组的编号。数字3739是数据包发送的最后一个字节的数字加1。数字894是发送的数据包的长度。表示“ ack 1624”的部分是“ acknowledge”的TCP术语-表示该数据包已被接受,下一个预期的数据包编号为1624。之后,我们看到“ win 9648”发送主机正在等待窗口大小为9648个八位位组的数据包。这之后是时间戳

如果您认为难以解释,则使用-x选项,它将在十六进制输出中包含数据包内容

18:12:45.149977 IP www.linux.org.www > test.linux.org.34536: . 1:1449(1448) 
ack 487 win 6432 <nop,nop,timestamp 329284215 27156244>
        0x0000:  4500 05dc 6a81 4000 4006 493b c0a8 0006  E...j.@.@.I;....
        0x0010:  c0a8 0009 0050 86e8 8fa4 1d47 1c33 e3af  .....P.....G.3..
        0x0020:  8010 1920 b4d9 0000 0101 080a 13a0 7a77  ..............zw
        0x0030:  019e 5f14 4854 5450 2f31 2e31 2032 3030  .._.HTTP/1.1.200
        0x0040:  204f 4b0d 0a44 6174 653a 2054 6875 2c20  .OK..Date:.Thu,.
        0x0050:  3135

我们可以从输出中得知这是一个HTTP请求。至于其余的,它不是人类可读的,但是我们很容易知道这是一个合法的数据包。使用这种格式的另一个好处是,即使我们无法完全解释此数据包的状况,也可以将其发送给可能的人。最终,这是未经任何过滤通过网络传输的原始数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCPdump是一种用于网络数据包的抓工具,可以在Linux和UNIX系统上使用。通过捕获网络传输中的数据包并分析它们的内容,我们可以获得有关网络流量、协议和网络问题的有用信息。 使用TCPdump分析数据包可以帮助我们进行多种操作。首先,我们可以使用过滤器来选择感兴趣的数据包,例如指定源或目的IP地址、端口号、协议等条件。这样可以减少捕获的数据包量,提高分析效率。 其次,我们可以通过查看分析结果来了解网络流量的特征。TCPdump可以显示数据包的源IP地址、目的IP地址、协议类型、源端口号、目的端口号、时间戳等信息。我们可以根据这些信息来分析网络行为,比如判断是否有异常的通信活动、是否有异常的数据流量等。 此外,通过查看数据包内容,我们还可以进行更详细的分析。TCPdump可以捕获到传输的原始数据,我们可以使用其他工具来解析和分析这些数据。例如,我们可以使用Wireshark来查看数据包的各层协议、负载内容、响应时间、错误码等信息,从而诊断和排查网络问题。 综上所述,TCPdump是一个强大的网络数据包分析工具,可以帮助我们监控和分析网络流量、诊断网络问题以及进行安全审计等任务。通过对数据包的捕获和分析,我们可以获取有关网络流量和通信行为的宝贵信息,进而提高网络性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值