Linux下tcpdump用法

简介:   根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供了and、 or、not等逻 辑语句来帮助过滤不必要的信息;     默认情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

  根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供了and、 or、not等逻

辑语句来帮助过滤不必要的信息;  

  默认情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
 1 root@ubuntu:~# tcpdump
 2 tcpdump: WARNING: eth0: no IPv4 address assigned
 3 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 4 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 5 15:49:27.651478 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 521262791:521262891, ack 1468597115, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 100
 6 15:49:27.652686 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 100:296, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 196
 7 15:49:27.654052 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 296:684, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 388
 8 15:49:27.654312 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 684:896, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 212
 9 15:49:27.654514 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 896:1108, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 212
10 15:49:27.654722 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 1108:1320, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 212
11 15:49:27.654886 IP 222.132.16.50.ssh > 101.80.4.77.39226: Flags [P.], seq 1320:1532, ack 1, win 261, options [nop,nop,TS val 626565253 ecr 2398027], length 212

  指定网卡:tcpdump -i   eth1  #-i (interface)

  指定抓取源主机:tcpdump  host  node2  #hostname node2,  该主机名必须在本地硬解析即在/etc/hosts文件存在解析

  指定抓取源ip   :tcpdump   host  10.0.0.1   // tcpdump  -i eth1  host 10.0.0.1

          tcpdump    -i eth1  host  \(10.0.0.53  or 222.16.232.50\)

  抓取回发给某ip的包:tcpdump -i eth1  dst host 10.0.0.53  //dst 即destination,目的地

  抓取来源于某ip的包:tcpdump -i eth1  src host 10.0.0.53  //src 即source,  源头

  指定端口: tcpdump  -i  eth1  port 23 host 10.0.0.53  

  参数说明:

      -n : 不要使用通讯协定或主机名称,直接使用IP 或 port number

      -ee:使用更详细的资讯来显示

     增加(add)与删除(del)路由的相关参数:

      -net :表示后面接的路由为一个网域;

      -host:表示后面接的为连接到单步主机的路由;

      netmask:与网域有关,netmask决定网域的大小;

      gw:  gateway的简写,后续接的是ip值;

      dev  :如果只是要指定那块网卡连接出去,则使用这个设定; 后面接eth0、eth1等;

 

下面的例子全是以抓取eth0接口为例,如果不加”-i eth0”是表示抓取所有的接口包括lo。
 
1、抓取包含10.10.10.122的数据包 
# tcpdump -i eth0 -vnn host 10.10.10.122
 
2、抓取包含10.10.10.0/24网段的数据包
# tcpdump -i eth0 -vnn net 10.10.10.0/24
 
3、抓取包含端口22的数据包
# tcpdump -i eth0 -vnn port 22 
 
4、抓取udp协议的数据包
# tcpdump -i eth0 -vnn  udp
 
5、抓取icmp协议的数据包
# tcpdump -i eth0 -vnn icmp
6、抓取arp协议的数据包
# tcpdump -i eth0 -vnn arp
 
7、抓取ip协议的数据包
# tcpdump -i eth0 -vnn ip
 
8、抓取源ip是10.10.10.122数据包。
# tcpdump -i eth0 -vnn src host 10.10.10.122
 
9、抓取目的ip是10.10.10.122数据包
# tcpdump -i eth0 -vnn dst host 10.10.10.122
 
10、抓取源端口是22的数据包
# tcpdump -i eth0 -vnn src port 22
 
11、抓取源ip是10.10.10.253且目的ip是22的数据包
# tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 22
                 
12、抓取源ip是10.10.10.122或者包含端口是22的数据包
# tcpdump -i eth0 -vnn src host 10.10.10.122 or port 22
 
13、抓取源ip是10.10.10.122且端口不是22的数据包
[root@ ftp]# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22

14、抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。
# tcpdump -i eth0 -vnn \( src host 10.10.10.2 and dst port 22 \) or   \( src host 10.10.10.65 and dst port 80 \)
 
15、抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包。
[root@localhost ~]# tcpdump -i  eth0 -vnn 'src host 10.10.10.59 and dst port 22' or  ' src host 10.10.10.68 and dst port 80 '
 
16、把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序。
# tcpdump –i eth0 -vnn -w  /tmp/fil1 -c 100
 
17、从/tmp/fill记录中读取tcp协议的数据包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 tcp
 
18、从/tmp/fill记录中读取包含10.10.10.58的数据包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 host  10.10.10.58
 
相关文章
|
5月前
|
网络协议 Linux
linux tcpdump 使用小结(二)
linux tcpdump 使用小结(二)
42 1
|
1月前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
100 3
|
2月前
|
Ubuntu Linux
Linux的基础用法
Linux的基础用法
24 6
|
3月前
|
监控 Linux
Linux系统中du命令与df命令的区别与用法
总的来说,`du` 和 `df` 在磁盘管理中互补使用,能够提供全面的磁盘空间使用信息,帮助用户和管理员有效地监控和管理系统资源。
104 3
|
3月前
|
存储 Ubuntu Linux
linux中的find 命令详细用法
本文介绍了如何将 `find` 命令与 `exec` 结合使用,通过具体示例展示了多种应用场景,如显示文件属性、重命名文件、收集文件大小、删除特定文件、执行工具、更改文件所有权和权限、收集 MD5 值等。文章还探讨了 `{} \;` 和 `{} +` 的区别,并演示了如何结合 `grep` 命令进行内容搜索。最后,介绍了如何在一个 `find` 命令中使用多个 `exec` 命令。这为 Linux 用户提供了强大的文件管理和自动化工具。
|
4月前
|
存储 监控 网络协议
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
|
4月前
|
存储 运维 安全
在Linux中,如何使用tcpdump和tshark进行实时数据包捕获?
在Linux中,如何使用tcpdump和tshark进行实时数据包捕获?
|
5月前
|
运维 监控 网络协议
Linux抓包命令tcpdump使用技巧大全
【7月更文挑战第10天】
225 5
Linux抓包命令tcpdump使用技巧大全
|
5月前
|
Linux
linux tcpdump 使用小结(一)
linux tcpdump 使用小结(一)
59 10
|
4月前
|
监控 网络协议 Linux
在Linux中,如何使用 tcpdump 嗅探 80 端口的访问看看谁最⾼?
在Linux中,如何使用 tcpdump 嗅探 80 端口的访问看看谁最⾼?