Linux网络抓包

跟派大星学编程 2020-11-13 01:01:15
linux 网络 CSDN 操作系统


1. tshark

1.1 安装

Centos

yum install -y wireshark

Ubuntu

apt-get install -y tshark

1.2 使用

1.2.1 抓包参数说明

常用 -i-f参数

  • -i设置抓包的网络接口,不设置则默认为第一个非自环接口。
  • -f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump man page的有关部分。
  • -D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。
  • -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
  • -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
  • -B 设置内核缓冲区大小,仅对windows有效。
  • -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
  • -L 列出本机支持的数据链路层协议,供-y参数使用。

-f参数详解

  • 设置监听的协议类型: -f udp/tcp/http 必须为小写
  • 设置源ip:-f "src host x.x.x.x"
  • 设置源端口:-f "src port 80"
  • 设置源ip和源端口: -f "src host x.x.x.x and src port xx"
  • 设置目的ip: -f "dst host x.x.x.x"
  • 设置目的端口: -f "dst port xx"
  • 设置目的ip和端口: -f "dsthost x.x.x.x and port xx"

1.2.2 输出参数说明

常用 -T-l 参数

  • -w 设置raw数据的输出文件
  • -F 设置输出raw数据的格式,默认为libpcap。
  • -V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
  • -x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
  • -T 设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text。
  • -t设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间
  • -S 在向raw文件输出的同时,将解码结果打印到控制台。
  • -l 在处理每个包时即时刷新输出。
  • -X 扩展项。
  • -q 设置安静的stdout输出(例如做统计时)
  • -z 设置统计参数。

1.3 示例

  1. 实时打印当前http请求的url
tshark -i eth0 -n -f "tcp dst port 80" -T fields -e http.host -e http.request.uri -l
  1. 实时打印当前mysql查询语句
 tshark -i eth0 -n -f "tcp dst port 3306" -T fields -e mysql.query

2. tcpdump

这也是一个抓包工具,不过没tshark好用,简单介绍一下吧。。

2.1 安装

Centos

yum install -y tcpdump

Ubuntu

apt-get install -y tcpdump

2.2 使用

  1. 截获从网口eth0出去或接收到的包
tcpdum -i eth0
  1. 截获所有与主机 xx.xx.xx.xx 相关的包
tcpdump host xx.xx.xx.xx
  1. 截获tpc协议的80端口的包
tcpdump tcp port 80
版权声明
本文为[跟派大星学编程]所创,转载请带上原文链接,感谢
https://pibigstar.blog.csdn.net/article/details/105343221

  1. (Spring boot 2.x 版本)Spring Cloud Eureka 注册中心开启用户权限验证
  2. Spring Boot 异步任务 @EnableAsync 和 @Async
  3. JAVA 中创建线程的三种方式,如果在面试的时候被问到记住一点要回答是三种,面试官也希望你回答的是三种
  4. JAVA 虚拟机,你需要了解这些(内存模型,垃圾收集机制,垃圾收集算法)
  5. Redis 中可能导致性能问题以及原因
  6. JAVA 高级面试题及答案
  7. Redis 实现的可用于生产环境的分布式锁(带超时时间)
  8. spring boot 下载文件出错 org.apache.http.ConnectionClosedException: Premature end of Content-Length delimi
  9. spring boot maven 报错 sconnected from the target VM, address: '127.0.0.1:57472', transport: 'socket'
  10. java 60 行代码写一个简单可用的并且带过期时间的内存缓存
  11. spring cloud config server 配置中心
  12. spring boot 报错 Error creating bean with name 'indexController': Injection of autowired dependencies
  13. java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)
  14. redis 中 set 和 hset 有什么不同,什么时候使用 hset 什么时候使用set?
  15. spring-cloud 微服务框架集合 Eureke 服务注册于发现
  16. 趣用 linux select 函数:有感而发,用代码记录生活
  17. x86 细探:为什么要把迁移到 64 位 linux 称之为 x86 迁移
  18. Oracle 实践:如何编写一条 sql 语句获取数据表的全部索引信息(兼容 Oracle 19c、Oracle 11g)
  19. 无意中发现的方法:一招让你的 IntelliJ Idea 飞起来
  20. 初识 libcurl multi:实现一个 http 请求处理客户端,一个线程玩命发一个线程吐血收
  21. 算法4 随书 IDE:DrJava 在 Win10 下高分屏字体太小问题解决
  22. linux 中的 usr 是什么含义
  23. 《Spring Cloud Alibaba基础教程》连载目录
  24. Spring Data 发布更改版本管理方案之后的第一个版本:2020.0.0
  25. Spring 5的最后一个特性版本5.3发布,4.3将于12月终止维护
  26. 2020 Java开发者数据分析:中国已成为 Java 第一大国
  27. 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
  28. Serverless 初体验:快速开发与部署一个Hello World(Java版)
  29. Spring Boot 2.x基础教程:使用集中式缓存Redis
  30. 说说Spring中的 @RestController 和 @Controller
  31. 一个Java方法能使用多少个参数?
  32. 你要知道的21道软件设计 + 面向对象的面试题
  33. 尝鲜刚发布的 SpringFox 3.0.0,以前造的轮子可以不用了...
  34. Spring Boot 2.x基础教程:使用EhCache缓存集群
  35. Spring Boot 2.x基础教程:EhCache缓存的使用
  36. Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解
  37. Spring Boot 2.x基础教程:事务管理入门
  38. Redis 创始人宣布退居二线:我写代码只是为了表达自己!
  39. Spring Boot 2.x基础教程:MyBatis的多数据源配置
  40. Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置
  41. Spring Boot 2.x基础教程:JdbcTemplate的多数据源配置
  42. Spring Cloud 和 Dubbo 哪个会被淘汰?
  43. 国内 Java 开发者必备的两个装备,你配置上了么?
  44. JetBrains 第二轮:再为免费全家桶续命三个月
  45. Spring Boot 2.x基础教程:使用MyBatis的XML配置方式
  46. Spring Boot 2.x基础教程:使用MyBatis访问MySQL
  47. Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表
  48. Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面
  49. Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL
  50. Spring Boot 2.x基础教程:找回启动日志中的请求路径列表
  51. 七天用Go写个docker(完结篇)
  52. 七天用Go写个docker(第六天)
  53. springboot2.1与单节点redis的集成实战
  54. Tomcat console garbled information
  55. Download address of Tomcat historical version
  56. JavaScript string regexp regular expression related methods
  57. The precision problem of dividing two integers in Java int / int
  58. ./mongod: /usr/lib/x86_ 64-linux-gnu/ libcurl.so .4: version `CURL_ OPENSSL_ 3‘ not found (required by ./
  59. The relationship between mongodb read and write commands and JavaScript
  60. Browser console JavaScript saves data to hard disk file