linux 抓包命令tcpdump

linux 抓包命令tcpdump一、概述顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或者端口的过滤,并提供and\or\not等逻辑语句来帮助你去掉无用的信息。二、选项介绍-a 将网络地址和广播地址转变成名字; -b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。 -c 指定要监听的数据包数量,在收

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、概述

顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或者端口的过滤,并提供and\or\not等逻辑语句来帮助你去掉无用的信息。

二、选项介绍

-a 将网络地址和广播地址转变成名字; 

-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。 

-c 指定要监听的数据包数量,在收到指定的包的数目后,tcpdump就会停止. 

-d 将匹配信息包的代码以人们能够理解的汇编格式给出; 

-dd 将匹配信息包的代码以c语言程序段的格式给出; 

-ddd 将匹配信息包的代码以十进制的形式给出; 

-e 在输出行打印出数据链路层的头部信息; 

-F 从指定的文件中读取表达式,忽略其它的表达式; 

-f 将外部的Internet地址以数字的形式打印出来; 

-i 指定监听的网络接口,这在计算机具有多个网络接口时非常有用. 

-l 用于输出为行缓冲的形式,可以将数据重定向。 

-N 不打印出默认的域名。前面信息-N后就是:eth0 ntc9.1165 router.telnet。 

-n 不进行IP地址到主机名的转换。如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 192.168.0.9.1165 192.168.0.1.telnet。 

-nn 不进行端口名称的转换。前面那条信息使用-nn后就变成了:eth0 ntc9.1165 router.domain.net.23。 

-O 不进行匹配代码的优化。 

-r 从指定的文件中读取包(这些包一般通过-w选项产生); 

-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;) 

-t 在输出的每一行不打印时间戳; 

-tt 打印原始的、未格式化过的时间。 

-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息; 

-vv 输出详细的报文信息; 

-w 指定将监听到的数据包写入文件中保存而并不分析和打印出来.

三. 实例

1.监视第一个网络界面上所有流过的数据包:

tcpdump 

普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包,注意这里使用超级用户。当用户上网得时候,就会将监视得数据打印出来。

2.监视指定网络接口的数据包:

tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。

3.监视指定主机的数据包:

tcpdump host sundown

tcpdump host 210.27.48.1 

4.监视指定主机和端口的数据包:

tcpdump tcp port 23 host 210.27.48.1

5.重定向输出:

tcpdump -l >tcpcap.txt 

将得到的数据存入tcpcap.txt文件中。

6.匹配一次:

tcpdump -c 1

这样就只匹配一个包,然后tcpdump就退出。

7.监视指定主机和另外主机之间得通信: 

tcpdump host 10.126.1.222 and (10.126.1.1 or 10.126.1.13 

将监视主机10.126.1.222和10.126.1.1或者10.126.1.13之间的通信,注意这里得括号。

8.监视时排除某一主机:

tcpdump ip host 10.126.1.1 and 10.126.1.13 

这里监视10.1.6.1.1除了和10.126.1.13之外所有主机的通信。 

9.指定源主机和目的网络的过滤: 

tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24 

过滤的是源主机为10.126.1.222与目的网络为10.126.1.0/24的报头。 

10.匹配指定网络:

tcpdump -i eth1 net 10.1.10.0 mask 255.255.255.0

这里有掩码只支持IPV4,或者使用”tcpdump 10.1.10.0/24″,同样这个格式只对IPV4有用。 

11.监视指定主机指定协议的包: 

tcpdump ip host 10.126.1.13 

这里监视主机10.126.1.13收发的所有ip包。

12.监视指定主机和端口的数据包:

tcpdump -i eth0 host 10.126.1.1 and port 80 

监视10.126.1.1端口80的TCP或UDP数据包

13.监视指定方向和接口的包1: 

tcpdump -i eth0 src host 10.126.1.222 

监视10.126.1.222发送的,eth0上面的包。

14.监视指定方向和接口的包2:

tcpdump -i eth0 dst host 10.126.1.222 

监视10.126.1.222接收的,eth0上面的包。

15.监视指定链路层信息: 

tcpdump -b arp 

只显示网络中的arp即地址转换协议信息。 

16.过滤源主机mac为00:50:04:BA:9B的报头: 

tcpdump ether src 00:24:7e:03:62:14 

可以使用ifconfig查看本地主机的mac,使用arp -n来查看本地已知其他主机的mac。 

17.过滤源主机为10.126.1.222目的主机端口不是telnet的报文:

tcpdump src host 10.126.1.222 and dst port not telnet 

18.匹配ether包: 

tcpdump -i eth1 ‘ether src 00:24:7e:03:62:14′ 

将会在eth1上面监听来自mac为”00:24:7e:03:62:14″的数据包。 

19.监听ip广播组播数据包 

tcpdump ‘ip dst 192.168.240.255′ 

只需指明广播或组播地址即可。在同一个局域网的另一台主机运行”ping -b 192.168.240.255″即可发送ICMP的广播包。 

20.监听80端口的tcp数据包: 

tcpdump ‘tcp dst port 80′ 

一般HTTP的通信数据,只需指定匹配端口为80的条件即可。 

21.匹配arp包:

tcpdump arp 

可以使用”arping “产生arp请求和接收答应报文,使用”tcpdump -p ‘arp'”来监视,此处-p选项是使网络工作于正常模式(非混杂模式),这样是方便查看匹配结果,我们可以使用”ssh -p 80 “或者”wget <下载地址>”来产生http包。 

22.监视通过指定网关的数据包:

tcpdump gateway hostname 

23.匹配端口53上的udp数据包: 

tcpdump ‘upd port 53′ 

实际53号端口是DNS协议所用的端口,可以用’ping -c www.baidu.com’来产生DNS请求和答应。

24.抓取wireshark工具能够分析的包:

tcpdump -w dumpfile.pcap

这样抓取内容存放在dumpfile.pcap中,可以用wireshark图形工具进行分析。有的说需要加-s参数,例如”tcpdump -s -w dumpfile.pcap”。

三. tcpdump 与wireshark:

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用Tcpdump Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

tcpdump tcp -i eth1 -t -s -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 抓取数据包时默认抓取长度为68字节。加上-S 后可以抓到完整的数据包
(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)分析

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab中axis square和axis equal的区别

    matlab中axis square和axis equal的区别原文axissquare/将当前坐标系图形设置为方形。横轴及纵轴比例是1:1axisequal/将横轴纵轴的定标系数设成相同值也就是说axissquare刻度范围不一定一样,但是一定是方形的。axisequal刻度是等长的,但也不一定是方形的。如下程序其他相关:…

    2022年5月2日
    96
  • 1277. 统计全为 1 的正方形子矩阵(动态规划)

    1277. 统计全为 1 的正方形子矩阵(动态规划)给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例 1:输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = 10 + 4 + 1 = 15.示例 2:输入:matrix = [ [1,0,1], [1,1,0],

    2022年8月9日
    1
  • java集合超详解

    java集合超详解一、集合大纲1.集合和数组的区别:2.Collection集合的方法:3.常用集合的分类:Collection接口的接口对象的集合(单列集合)├——-List接口:元素按进入先后有序保存,可重复│—————-├LinkedList接口实现类,链表,插入删除,没有同步,线程不安全│—————-├ArrayList接口…

    2022年6月7日
    26
  • CPU内核态和用户态的区别[通俗易懂]

    CPU内核态和用户态的区别[通俗易懂]内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。指令划分特权指令:只能由操作系统使用、用户程序不能使用的指令。举例:启动I/O内存清零修改程序状态字设置时钟允许/禁止终端停机非特权指令:用户程序可以使用的指令。举例:控制转移算数运算取数指令访管指令(使用户程序从用户态陷入内核态)特权级别R0相当于.

    2022年9月17日
    0
  • TDA2030的功率放大电路详细教程「建议收藏」

    TDA2030的功率放大电路详细教程「建议收藏」本电路可以将是利用运放TDA2030A制作的功率放大器。电源电压为±12V至±22V。输出的最大功率为18W。该电路为深度负反馈电路,输出电压的放大倍数约为Av=R1/R2=32.3(具体放大倍数请参考模电书籍负反馈部分)。其中R4选用大功率水泥电阻,因为空载时流过R4的电流会过大。D1与D2为二极管,有黑线或者银色线的一端为负极。没有标有正负号的电容为无极电容,不需要区别正负极。标有正负…

    2022年5月30日
    49
  • div 环形排列_三个div如何并排

    div 环形排列_三个div如何并排javascript-按圆形排列DIV元素(一)分析效果图:一、分析图:绿色边框内:外层的DIV元素,相对定位;白色圆形框:辅助分析的想象形状;白点:为白色圆形的圆心点,中心点,点o;圆

    2022年8月1日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号