linux抓包教程_ubuntu抓包命令

linux抓包教程_ubuntu抓包命令linux抓捕网络包jacky.1650727278@@q.comtcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是centos7。tcpdump的命令格式tcpdump的参数众多,通过mantcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数:tcpdump[-i网卡]-nnAX‘表达式’各参数说明…

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

Jetbrains全系列IDE稳定放心使用

linux抓捕网络包

jacky. 1650727278@@q.com

tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是centos 7。

tcpdump的命令格式

tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数:

tcpdump [-i 网卡] -nnAX ‘表达式’
各参数说明如下:

-i:interface 监听的网卡。
-nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。
-A:以ascii的方式显示数据包,抓取web数据时很有用。
-X:数据包将会以16进制和ascii的方式显示。
表达式:表达式有很多种,常见的有:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用!,更多的使用可以查看man 7 pcap-filter。
下面进行一些命令测试,如果没有权限,可以先切换成root用户。

监听网卡eth0

$ tcpdump -i eth0
这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看。

监听指定协议的数据

$ tcpdump -i eth0 -nn 'icmp'

这个是用来监听icmp协议的数据,就是ping命令使用的协议。类似的,如果要监听tcp或者是udp协议,只需要修改上例的icmp就可以了。ping下监听的机器,输出如下:

[root@localhost ~]# tcpdump -i eth0-nn 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno16777736, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
[root@localhost ~]#

linux使用tcpdump抓包示例

每一行的各个数据表示的含义:

抓到包的时间 IP 发包的主机和端口 > 接收的主机和端口 数据包内容
监听指定的主机

$ tcpdump -i eth0 -nn 'host 192.168.1.231'

这样的话,192.168.1.231这台主机接收到的包和发送的包都会被抓取。

$ tcpdump -i eth0 -nn 'src host 192.168.1.231'

这样只有192.168.1.231这台主机发送的包才会被抓取。

$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'

这样只有192.168.1.231这台主机接收到的包才会被抓取。

监听udp 指定端口

[root@localhost ~]# tcpdump -i eth0 udp -nnA 'port 9899'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:18:09.444195 IP 192.168.1.46.35408 > 255.255.255.255.9797: UDP, length 16
E..,9.@.@.?I.........P&E....{ 
   "cmd":"peer"}
19:18:09.444988 IP 192.168.1.13.9797 > 192.168.1.46.35408: UDP, length 159
....&E.P...9{ 
   "cmd":"fnpeer", "ip":"192.168.1.13", "sn":"", "mcode":"", "api":"/ip4/127.0.0.1/tcp/5501", "peerid":"TmNKAc9eV912fxxK8Ge5ZXmB8VgxRREwh9c1swnwJaa6zB8", "err":0}
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
[root@localhost ~]#

上例是用来监听主机的9797端口收到和发送的所有数据包,结合-A参数,在web开发中,真是非常有用。

监听指定主机和端口

$ tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'

多个条件可以用and,or连接。上例表示监听192.168.1.231主机通过80端口发送的数据包。

监听除某个端口外的其它端口

$ tcpdump -i eth0 -nnA '!port 22'

如果需要排除某个端口或者主机,可以使用“!”符号,上例表示监听非22端口的数据包。

email:1650727278@qq.com 画笔

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

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

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


相关推荐

  • md5 java 工具类_javamd5工具类

    md5 java 工具类_javamd5工具类importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.locks.ReentrantLock;importorg.apache.commons.l…

    2022年7月14日
    18
  • MySQL insert or update sql

    MySQL insert or update sqlMySQL一条sql实现数据保存变更  insertorupdate  ,如果没有执行insert,有就update需要有主键 PRIMARY或唯一索引UNIQUEMySQL中的INSERT…ONDUPLICATEKEYUPDATE语句,该语句是基于唯一索引或主键使用ONDUPLICATEKEYUPDATE后面可以放多个字段,用英文逗号分割。使用…

    2025年6月12日
    2
  • Java并发篇:volatile关键字吐血整理「建议收藏」

    Java并发篇:volatile关键字吐血整理「建议收藏」1.1主内存与工作内存在上一篇文章中我们已经知道线程是通过主内存去进行线程间的隐式通信的,而线程对共享变量的写操作在工作内存中完成,由JMM控制共享变量由工作内存写回到主内存的时机。JMM提供了一个保证内存可见性的原则:happens-before原则。这个原则可以保证线程对共享变量的写操作对其它线程可见。如果在多线程环境下需要满足happens-before原则,就…

    2022年7月7日
    31
  • 香农编码c++实现_香农费诺编码例子

    香农编码c++实现_香农费诺编码例子实验三香农编码信息论与编码实验报告院系:哈尔滨理工大学荣成校区专业:电子信息工程学号:姓名:日期:2015年6月16日香农编码信息论与编码第三次实验报告一、实验目的和任务?1、?理解信源编码的意义;?2、?熟悉?MATLAB程序设计;??3、?掌握香农编码的方法及计算机实现;??4、?对给定信源进行香农编码,并计算编码效率;?二、实验原理介绍?给定某个信源符号的概率分布,通过以下的步骤进行香…

    2025年10月20日
    5
  • 第一个模板类(templet<class elemType> class xxxxx)

    第一个模板类(templet<class elemType> class xxxxx)小弟是刚刚加入c++大队的,对c++中的基本知识只是稍微懂一点。今天在看《c++primer》中的模板类时,就将其中的程序在vs2008中写下,新建了Array.h和Array.cpp两个文件。主函数:Main.cpp1#include”stdafx.h”2#include<iostream>3#include”Array.h”45u…

    2022年5月19日
    51
  • 堆和栈的差别(转过无数次的文章)

    堆和栈的差别(转过无数次的文章)

    2021年12月9日
    49

发表回复

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

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