Linux抓包(wireshark+tcpdump)

2023-11-12


一、Wireshark

Wireshark是一款图形化的抓包软件,在LInux和Windows下都可以下载。

1. 安装wireshark工具

用命令安装 wireshark相关软件包
命令:yum -y install wireshark* -y

在这里插入图片描述
rpm -ql wireshark查看安装wireshark产生了哪些文件

在这里插入图片描述

2.打开Wireshark

直接通过命令打开
wireshark

在这里插入图片描述
或者是图形化页面点开就好

在这里插入图片描述
在这里插入图片描述

3. Wireshark基本使用

点击Interface List,就可以看到接口列表,选择需要抓哪个网卡的包

在这里插入图片描述

这里我选择ens33网卡,点击start开始抓包

在这里插入图片描述

在这里插入图片描述

我们ping我们的主机地址,看看抓包情况

在这里插入图片描述

ping 工具使用的就是 ICMP协议,ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。它主要是用来提供有关通向目的地址的路径信息。

在这里插入图片描述

4. 抓包信息

通过 ip.addr == [端口号]可以过滤掉无关ip

在这里插入图片描述

1. 抓ping程序包

请求信息

在这里插入图片描述

数据帧
在这里插入图片描述
链路层

在这里插入图片描述
网络层

在这里插入图片描述
应用层

在这里插入图片描述

响应信息

因为是ping的响应,要响应给windows,所以源变成了LInux本机,目的变成了windows。
接着是协议类型,ping的请求是8,响应变成了0

在这里插入图片描述

ARP协议

在这里插入图片描述

2. 抓TCP三次握手、四次挥手

三次握手

通过 Xshell连接Linux虚拟机

在这里插入图片描述

在这里插入图片描述

四次挥手

在这里插入图片描述
在这里插入图片描述

3.抓telnet包

安装 telnet

telnet是和ssh类似的,都是用来远程登录Linux服务器,ssh的端口号是22,telnet的端口号是23

安装命令:yum -y install telnet-server

安装完后要启动服务

命令:systemctl start telnet.socket

在这里插入图片描述
查看是否有telnet服务的端口号
命令:netstat -nltp | grep :23

在这里插入图片描述
查看该应用产生哪些文件

在这里插入图片描述
测试telnet
测试时记得开发23端口或者关闭防火墙
关闭防火墙命令:systemctl stop firewalld
添加端口号:firewall-cmd --zone=public --add-port=[端口号]
注意:telnet 默认是不允许root用户登录的,只能登录普通用户

在这里插入图片描述

用 Woreshark抓包

抓包后发现,telnet传输的是明文数据。仔细找还能看到密码,所以这个命令基本是被淘汰了
在这里插入图片描述

二、tcpdump工具

tcpdump是 Linux下的抓包工具,但它是命令行的操作。用起来没有Wireshark方便

在这里插入图片描述

ARP:(地址解析协议IP-MAC)和RARP(逆地址解析协议MAC-IP)是某些网络接口(如以太网)使用的特殊协议,用来转换IP层和网络接口层使用的地址下层协议给上层协议提供了一些功能支撑,上层协议要依赖下层协议

1. 查看arp缓存

命令:arp -n
作用:查看arp缓存

arp缓存里记录了,我的主机曾经向拿台主机要过MAC地址

在这里插入图片描述

删除arp缓存
命令:arp -d [ip]

在这里插入图片描述

2. tcpdump基本使用

常用语法:tcpdump -i [网卡名] -nn host [主机ip]

  • -i :指定网络接口,对于多个网络接口有用
  • -n :显示IP地址,不查主机名。当DNS不起作用时常用到这个参数
  • -nn :不显示协议和端口名。即显示IP地址和端口

抓 ping包

在这里插入图片描述
在这里插入图片描述
每次询问的MAC地址都会保存到,arp缓存里

在这里插入图片描述

保存抓包数据到指定文件

通过 -w 选项可以将抓包数据保存到指定文件里,再通过Woreshark打开

命令:tcpdump -i [网卡名] -nn host [主机ip] -w [文件名]

在这里插入图片描述

在这里插入图片描述
找到保存抓包信息的文件,打开

在这里插入图片描述

在这里插入图片描述

其它用法

下面的命令可以查看所有送到主机hostname的数据包
tcpdump -i eth0 dst host [主机ip]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux抓包(wireshark+tcpdump) 的相关文章

  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何使用wireshark清晰捕获mysql查询sql

    因为我们使用远程开发Mysql服务器 所以不能轻易检查查询sql 如果使用本地服务器可以tail f general log file查看调用某个http接口时执行了哪些sql 所以我安装了一个wireshark捕获这些从本地发送的查询sq
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe

随机推荐

  • GDI 绘图

    目录 GDI 绘图 画点 画线 画封闭图形 画笔 画刷 其他 DC Device Context 绘图设备 HDC 绘图设备句柄 GDI Microsoft Graphics Device Interface Win32提供的绘图API G
  • python变量与作用域

    变量从作用域分类 作用范围从小到大为 小作用域的可以调用大作用域的内容 局部 Local 闭包 Enclosing 全局 Global 内建 Build in 局部变量 局部变量是定义在函数中的 因此其作用域是在函数内部 def examp
  • Opencv2.4.2+vs2008+windowsXP(32位)安装过程

    Opencv2 4 2 vs2008 windowsXP 32位 安装过程 准备软件 opencv2 4 2 VS2008软件 1 解压opencv2 4 2到指定路径 例如 D Program Files OpenCV2 4 2 2 打开
  • Https + OPENSSL

    二 HTTPS 2 1 HTTPS介绍 先来看HTTPS的概念 我们一般的http走的是80端口 而https走的是443端口 有什么不一样的地方吗 很简单 我们拿个telnet命令来作个实验 telnet127 0 0 1 80 直接就登
  • Vue.js(四)

    Vue js 模板语法 Vue js 使用了基于 HTML 的模版语法 允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据 Vue js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统 结合响应系统 在
  • two.js插件的简单用法

    div div
  • linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)

    PATH和LD LIBRARY PATH本质都是变量 所谓变量的意思就是由别人赋值产生的 直觉往往会让我们添加和减少这个变量本身的某些路径 实际上这是不正确的 正确的做法是我们要去修改赋予这个变量数值的那些配置文件 加一条路径或者减一条 说
  • pageoffice 骑缝章_PageOffice 页面中打开office编辑文档

    pom xml com zhuozhengsoft pageoffice 4 5 0 6 web xml poserver com zhuozhengsoft pageoffice poserver Server poserver pose
  • FDFS_Ubuntu部署fdfs测试上传文件不成功

    开启服务 sudo service fdfs trackerd start sudo service fdfs storaged start 查看服务是否开启 ps aux grep fdfs 执行完上述的操作之后 在ps 命令中完美显示开
  • 字符串相关,可变长字符串,异常

    字符串相关 String 字符串常量 本质char String str1 abc String str2 abc System out prrintln str1 str2 同时也会带来这样的问题 String a a a a b ab
  • Vue axios的使用

  • cmake知识点总结

    CMake的所有的语句都写在一个叫 CMakeLists txt 的文件中 当 CMakeLists txt 文件确定后 可以用 ccmake 命令对相关的变量值进行配置 这个命令必须指向 CMakeLists txt 所在的目录 配置完成
  • 操作系统_第四章_存储管理之 页式存储管理

    思考一个问题 是否有可能把相对地址连续的作业信息分散存放到几个不连续的主存区域中 且仍然能保证作业正确执行 若可行的话 既可充分利用主存空间又可减少移动所花费的开销 页式存储管理就是这样的管理方式 一 页式存储管理的基本原理 定义 页式存储
  • Vue3打包后无法运行

    描述 使用Vue3打包项目后 使用Live Server打开无法运行 放到服务器上也是一样 如图所示错误 分析 错误提示为js文件未找到 所以可能是路径的问题 关于Vue公共基础路径问题 https cn vitejs dev guide
  • android开发笔记(1-5)(易错点以及技术难点攻克)

    1 scrollview中嵌套有listview或者gridview 从其他页面返回到这个页面 焦点总是跑到listview或者gridview上 解决办法 重写scrollview的下边方法 Override protected int
  • 使用cloudflare搭建个人博客网站实践

    使用cloudflare搭建个人博客网站 首先配置好基本的环境 建议使用LNMP工具建立基本的环境 按照上面的教程可以基本完成采用http网站的初步建立 但是对于https的支持上面说的并不好 因此需要进一步的改进 要自己配置https其实
  • MySQL进阶 -- 视图

    MySQL进阶 视图 一 介绍 二 语法 三 检查选项 CASCADED 级联 LOCAL 本地 四 视图更新 五 视图作用 六 案例 一 介绍 视图 view 是一个虚拟表 非真实存在 其本质是根据SQL语句获取动态的数据集 并为其命名
  • 快速设计元器件原理图库和PCB封装库

    目录 1 立创商城EDA免费库 2 Altium Library Loader 3 贸泽电子ECAD模型 在设计电路的过程中经常会遇到这样的问题 无法快速找到合适的元器件原理图封装和PCB封装 Footprint 通常最基本的做法是百度找找
  • 爬虫学习笔记(十九)—— 滑动验证码

    文章目录 一 概念 二 实现步骤 2 1 获取验证码图片 2 1 1 获取缺口图 2 1 2 获取滑块图 2 1 3 获取完整图 2 1 4 完整代码 2 2 计算缺口位置 2 3 模拟人工移动 2 3 1 直接根据距离移动 2 3 2 牛
  • Linux抓包(wireshark+tcpdump)

    文章目录 一 Wireshark 1 安装wireshark工具 2 打开Wireshark 3 Wireshark基本使用 4 抓包信息 1 抓ping程序包 请求信息 响应信息 ARP协议 2 抓TCP三次握手 四次挥手 三次握手 四次