CentOS中使用tcpdump抓包

本文主要介绍了Linux系统中tcpdump命令的使用。涵盖安装内容,详细说明了监听特定网卡、主机、端口等操作,还给出监听tcp协议并将数据包写入文件的示例,以及较为复杂的命令参数组合,用于过滤和抓取特定数据包,方便后续分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装:

yum install tcpdump

命令使用:

监听特定网卡

tcpdump

抓取第一块网卡所有数据包

[root@server110 tcpdump]# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:58:14.441562 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 2956277183:2956277391, ack 2178083060, win 336, length 208
15:58:14.442088 IP server110.34562 > ns-px.online.sh.cn.domain: 34223+ PTR? 169.202.16.18.in-addr.arpa. (44)
15:58:14.486822 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 208, win 16419, length 0
15:58:14.692932 IP ns-px.online.sh.cn.domain > server110.34562: 34223 NXDomain 0/1/0 (116)
15:58:14.693416 IP server110.57017 > ns-px.online.sh.cn.domain: 12369+ PTR? 5.209.96.202.in-addr.arpa. (43)
15:58:14.693577 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 208:400, ack 1, win 336, length 192
15:58:14.695254 IP ns-px.online.sh.cn.domain > server110.57017: 12369 1/0/0 PTR ns-px.online.sh.cn. (75)
15:58:14.695519 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 400:656, ack 1, win 336, length 256
15:58:14.696577 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 656:1232, ack 1, win 336, length 576
15:58:14.697564 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 1232:1392, ack 1, win 336, length 160
15:58:14.698563 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 1392:1552, ack 1, win 336, length 160

tcpdump -i 抓取某一块网卡数据包

[root@server110 tcpdump]# ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:DE:05:94  
          inet addr:18.16.200.110  Bcast:18.16.200.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fede:594/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50017569 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27403502 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21017784488 (19.5 GiB)  TX bytes:3969196772 (3.6 GiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:191873 errors:0 dropped:0 overruns:0 frame:0
          TX packets:191873 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:31953071 (30.4 MiB)  TX bytes:31953071 (30.4 MiB)

[root@server110 tcpdump]# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:59:43.529881 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 2956715807:2956716015, ack 2178087524, win 336, length 208
15:59:43.530636 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 208, win 16422, length 0
15:59:43.530732 IP server110.50508 > ns-px.online.sh.cn.domain: 42810+ PTR? 169.202.16.18.in-addr.arpa. (44)
15:59:43.533748 IP ns-px.online.sh.cn.domain > server110.50508: 42810 NXDomain 0/1/0 (116)
15:59:43.534054 IP server110.37348 > ns-px.online.sh.cn.domain: 43151+ PTR? 5.209.96.202.in-addr.arpa. (43)
15:59:43.534537 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 208:496, ack 1, win 336, length 288
15:59:43.540551 IP ns-px.online.sh.cn.domain > server110.37348: 43151 1/0/0 PTR ns-px.online.sh.cn. (75)
15:59:43.541536 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 496:1072, ack 1, win 336, length 576
15:59:43.542319 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 1072, win 16425, length 0
15:59:43.542529 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 1072:1328, ack 1, win 336, length 256
15:59:43.543545 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 1328:1488, ack 1, win 336, length 160

监听特定主机

[root@server110 tcpdump]# tcpdump  host 18.16.202.169
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:07:16.334596 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 2957160543:2957160751, ack 2178097380, win 336, length 208
16:07:16.375768 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 208, win 16425, length 0
16:07:16.539595 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 208:496, ack 1, win 336, length 288
16:07:16.540553 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 496:656, ack 1, win 336, length 160
16:07:16.541564 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 656:816, ack 1, win 336, length 160
16:07:16.541731 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 656, win 16423, length 0
16:07:16.542572 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 816:1072, ack 1, win 336, length 256
16:07:16.543565 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 1072:1232, ack 1, win 336, length 160

特定来源

[root@server110 tcpdump]# tcpdump src host 18.16.202.169
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:08:30.681395 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 2957168815, win 16420, length 0
16:08:30.791328 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 161, win 16420, length 0
16:08:30.833394 IP 18.16.202.169.cvd > server110.ssh: Flags [.], ack 321, win 16419, length 0

特定目标地址

[root@server110 tcpdump]# tcpdump dst host 18.16.202.169
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:09:27.404603 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 2958878511:2958878719, ack 2178100804, win 336, length 208
16:09:27.408521 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 208:400, ack 1, win 336, length 192
16:09:27.409530 IP server110.ssh > 18.16.202.169.cvd: Flags [P.], seq 400:560, ack 1, win 336, length 160

监听特定端口

[root@server110 tcpdump]# tcpdump port 8083 -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:10:31.361199 IP (tos 0x0, ttl 127, id 19231, offset 0, flags [DF], proto TCP (6), length 52)
    18.16.202.169.14626 > server110.us-srv: Flags [S], cksum 0x3315 (correct), seq 2299766793, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
16:10:31.361264 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
    server110.us-srv > 18.16.202.169.14626: Flags [S.], cksum 0x4b86 (correct), seq 1167811532, ack 2299766794, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
16:10:31.361594 IP (tos 0x0, ttl 127, id 19232, offset 0, flags [DF], proto TCP (6), length 40)
    18.16.202.169.14626 > server110.us-srv: Flags [.], cksum 0xa54c (correct), seq 1, ack 1, win 8212, length 0

监听tcp协议,并加数据包写入abc.cap

[root@server110 tcpdump]# tcpdump tcp port 8083 -w  ./abc.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C15 packets captured
15 packets received by filter
0 packets dropped by kernel

总共15条数据,其中只包含tcp,http格式的数据

稍微复杂例子

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
  1. tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
  2. -i eth1 : 只抓经过接口eth1的包
  3. -t : 不显示时间戳
  4. -s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
  5. -c 100 : 只抓取100个数据包
  6. dst port ! 22 : 不抓取目标端口是22的数据包
  7. src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
  8. -w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

参考:

Linux基础:用tcpdump抓包

Linux tcpdump命令详解

转载于:https://www.cnblogs.com/hongdada/p/10565898.html

<think>好的,用户想了解在CentOS上如何使用tcpdump抓取ping包。首先,我需要确认用户对tcpdump和ping的基本理解。Ping使用的是ICMP协议,而tcpdump默认可能不会只显示ICMP包,所以需要指定过滤条件。 接下来,我需要回忆tcpdump的基本用法。常用的命令结构是tcpdump [选项] [过滤表达式]。用户可能需要知道如何安装tcpdump,如果系统没有预装的话,所以应该提到用yum安装的步骤。 然后,抓取ICMP包的命令应该是tcpdump -i 接口 icmp。这里的接口部分可能需要用户根据实际情况替换,比如eth0或者ens33。需要提醒用户使用ifconfig或者ip a命令查看可用接口。 用户可能希望看到具体的例子,比如指定网卡、保存到文件、限制抓包数量等。还需要解释常见参数,比如-n禁止域名解析,-v增加详细信息,-c指定抓包数量,-w保存文件,以及使用host过滤特定IP。 另外,用户可能对输出内容不太熟悉,所以需要解释tcpdump的输出格式,比如时间戳、源目的IP、ICMP类型等。可能还需要说明如何读取这些信息,比如echo request和reply的区别。 最后,要提醒权限问题,可能需要sudo或者root权限来运行tcpdump。另外,如果遇到问题,比如没有抓到包,可能的原因包括防火墙阻止ICMP,或者选择了错误的网络接口。 总结步骤应该是:安装tcpdump,确定网卡接口,运行抓包命令,分析输出结果。同时提供常用示例和参数解释,帮助用户灵活应用。</think>在CentOS系统中使用tcpdump抓取ping包的完整步骤如下: --- ### 一、安装tcpdump(如未安装) ```bash sudo yum install -y tcpdump ``` --- ### 二、确定网络接口名称 ```bash ip a | grep "state UP" # 查看活动的网络接口(如eth0/ens33) ``` --- ### 三、基础抓包命令 ```bash sudo tcpdump -i eth0 icmp # 替换eth0为实际接口名 ``` --- ### 四、典型使用场景 #### 1. 抓取特定主机的ICMP包 ```bash sudo tcpdump -i eth0 icmp and host 192.168.1.100 ``` #### 2. 保存抓包结果到文件 ```bash sudo tcpdump -i eth0 -w ping.pcap icmp # 生成可用Wireshark分析的文件 ``` #### 3. 限制抓包数量 ```bash sudo tcpdump -i eth0 -c 10 icmp # 抓10个包后自动停止 ``` #### 4. 显示详细输出 ```bash sudo tcpdump -i eth0 -v icmp # 显示TTL等详细信息 ``` --- ### 五、输出结果解析示例 ``` 16:20:34.123456 IP 192.168.1.10 > 192.168.1.1: ICMP echo request, id 1234, seq 1, length 64 16:20:34.123789 IP 192.168.1.1 > 192.168.1.10: ICMP echo reply, id 1234, seq 1, length 64 ``` - `echo request`:发出的ping请求 - `echo reply`:接收的ping响应 - id/seq:用于匹配请求和响应 --- ### 六、常用参数说明 | 参数 | 作用 | |------|------| | `-n` | 禁用DNS解析(显示IP而非域名) | | `-vv` | 显示更详细的数据包头信息 | | `-X` | 同时以HEX和ASCII显示包内容 | | `-s0` | 抓取完整数据包(默认只抓前96字节) | --- ### 七、注意事项 1. 如遇权限问题,请使用`sudo`或切换root用户 2. 若抓不到包,请检查: - 防火墙是否允许ICMP协议 - 网络接口选择是否正确 - 目标主机是否可达 3. 长时间抓包建议使用`-w`保存文件 通过上述方法可以精确捕获和分析ICMP协议的网络通信情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值