在 Windows 上远程对 Linux 进行抓包

2023-11-09

笔者的运行环境:(成功)

  • 本地客户端:

    • Windows:

      • Windows 10 教育版(本文)
    • Wireshark:

      • Wireshark 4.0.6(本文)
  • 远程服务器:

    • Linux:

      • RedHat Enterprise Linux 9 x86_64(本文)
    • libpcap:

      • libpcap 1.10.4(本文)

名词解释

  什么是远程对 Linux 进行抓包?这指是在一台机器上查看另一个台远程 Linux 的网络的流量传输情况。为什么需要远程进行抓包呢?这是因为在远程的那台 Linux 可能不方便运行常规的抓包软件。比如,有可能是因为自己习惯在 Windows 下使用的那个 GUI 抓包软件不能在远程的那台 Linux 运行,或者远程的那台 Linux 没有电脑显示屏等等。这些原因都会导致需要远程对 Linux 进行抓包。

事先准备

  1. 为了方便远程输入命令、将文件加入到 Linux 操作系统中,最好还要在一台 Windows 操作系统上面使用一种终端控制软件,如 Xshell、Xftp 等。关于这方面的内容,可见笔者的另一篇如下博客。同时,该博客还给出了查看 Linux 中的 IP 的方法。

    如何在 Windows 主机上访问本地局域网中的 Linux 主机:
    https://blog.csdn.net/wangpaiblog/article/details/120052152

    现在,假设读者已经会了如何将文件从 Windows 中传入 Linux 中,以及查看 Linux 中的 IP。

  2. 由于 Linux 操作系统的种类繁多,因此首先要知道要安装 Linux 操作系统的处理器架构信息。以 RedHat Enterprise Linux 9 x86_64 为例,输入以下命令:

    cat /proc/version

    [root@192 ~]# cat /proc/version
    Linux version 5.14.0-284.11.1.el9_2.x86_64 (mockbuild@x86-vm-09.build.eng.bos.redhat.com) (gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), GNU ld version 2.35.2-37.el9) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 10:45:03 EDT 2023
    

    可以看出,上述的关键信息为 x86_64。记住这一点,下面将会用上。

  3. Linux 的 PMS 工具主流有两种。

    对于基于 Red Hat 的发行版,其 PMS 工具为 rpm,对应的安装命令为 yum。

    对于基于 Debian 的发行版,其 PMS 工具为 dpkg,对应的安装命令为 aptitude。

    笔者的操作系统 RedHat Enterprise Linux 9 x86_64 属于 Red Hat,将使用后缀为 rpm 的安装包。如果读者使用的操作系统为 Ubuntu,需要选择后缀为 deb 的安装包。如果读者不知道如何分辨,可以输入以下命令来验证:

    yum

    [root@XXX ~]# yum
    [...一长串说明文字...]
    

    如果输入 yum 之后,出现了一大串的说明文字,说明应该使用后缀为 rpm 的安装包。如果提示 yum 命令不存在,说明应该使用后缀为 deb 的安装包。当然,读者也可以通过输入命令 aptitude 来进行进一步的验证。

下载安装 Wireshark

  1. 抓包软件有很多,这里选择 Wireshark。Wireshark 官网:https://www.wireshark.org/

    Wireshark 下载完成之后就可以安装了。此软件的安装过程很傻瓜,这里从略。

下载运行 libpcap

  1. libpcap 是一种 Linux 下著名的抓包工具,而且 Wireshark 与它是兼容的。libpcap 官网:https://www.tcpdump.org/


    【踩坑提醒】

      有的读者可能会去下载安装 WinPcap,这是错误的。WinPcap 是一种 Windows 下的抓包工具,不适用 Linux,而且它已经停止更新了。


  2. 在 libpcap 官网下载 libpcap。

    在这里插入图片描述

  3. 先不要急着安装 libpcap。libpcap 是用 C 语言编写的,碰巧 Linux 也几乎如此。而 libpcap 的安装需要借助 GCC 进行编译,而 Linux 上可能已经安装了 GCC 了。因为有些 Linux 会内置 GCC,而有些软件在安装时会自动安装 GCC。

    输入如下命令查看 Linux 中 GCC 的版本:

    gcc --version

    [root@192 ~]# gcc --version
    gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)
    Copyright © 2021 Free Software Foundation, Inc.
    本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
    包括没有适销性和某一专用目的下的适用性担保。
    

    可以看出,笔者的 Linux 操作系统已经有 GCC 了。如果读者的 Linux 中没有 GCC,可以输入以下命令安装 GCC:

    yum -y install gcc


    【踩坑提醒】

      对于读者的某些 Linux 操作系统,此处安装 GCC 可能会报错,解决方案可参考笔者的另一篇博客:

      解决 CentOS 8 使用 yum 安装 rpm 报错 Cannot prepare internal mirrorlist No URLs in mirrorlist:
    https://blog.csdn.net/wangpaiblog/article/details/131118012


  4. libpcap 需要 Flex、Bison 这两个依赖,输入如下命令进行安装:

    cd libpcap 压缩包所在目录

    如果缺少这两个依赖,则 libpcap 在后续安装时会报如下错误。

    configure: error: Neither flex nor lex was found.
    
  5. 将下载完的 .tar.gz 包通过 Xftp 传入 Linux 中。

    使用如下命令进入目录 libpcap 压缩包所在目录:(下面的 libpcap 压缩包所在目录 要改成实际的目录)

    yum -y install flex bison

  6. 使用如下命令解压 gz 包:

    tar -xzvf libpcap-1.10.4.tar.gz

  7. 使用如下命令进入解压后的目录:

    cd libpcap-1.10.4/

  8. 输入如下命令生成 Makefile

    ./configure --enable-remote

  9. 输入如下命令对进行 libpcap 编译:

    make

  10. 输入如下命令运行 libpcap。

    cd rpcapd/

    ./rpcapd -n -d

    注意:libpcap 运行时如果不指定端口号,就相当于将端口号指定为 2002。

设置 libpcap 环境变量

  1. 设置 libpcap 环境变量只是为了方便,这样下次运行 libpcap 时不必输入 libpcap 的全路径。

  2. 一个偷懒的方法是将环境变量添加在文件 /etc/profile 中。之所以说偷懒,是因为一旦升级或重装了 Linux 操作系统,这个文件就会被重置。

    最好的方法是将自设的环境变量放到 $HOME/ 下的缀为 .bash 的一系列文件中。不过笔者有时也偷懒。

  3. 在 Linux 中设置 libpcap 的环境变量偷懒方法:

    在文件 /etc/profile 尾追加以下内容:(注意:修改前最好先备份,以免发生误修改)

    (这里假设读者 libpcap 的安装路径为 /usr/local/libpcap

    export PATH=$PATH:/usr/local/libpcap/rpcapd
    

    在文件 /etc/profile 中追加路径正是上面生成的 libpcap 命令目录

  4. 现在需要验证一下环境变量有没有设置成功,但先不要着急验证,因为文件 /etc/profile 在 Linux 启动时才会被读取。可以使用以下方法来使环境变量生效。

    • 使用命令 source:

      source /etc/profile

    • 重启。重启的方法有很多,也可以使用命令 reboot

  5. 验证环境变量。这种方法有很多,只举几例。

    • 输入以下命令。如果输出了前面的设置,说明前面的环境变量设置成功。

      echo $PATH

    • 输入以下命令。如果输出了相应的路径(就是前面生成的 libpcap 命令目录/redis-cli),说明前面的环境变量设置成功。

      which rpcapd

      [root@localhost ~]# which rpcapd
      /usr/local/redis/bin/redis-cli
      
  6. 设置环境变量之后,以后在任何目录下只输入如下命令即可运行 libpcap。

    rpcapd -n -d

在 Wireshark 中远程连接 libpcap

  1. 打开 Wireshark,按如下操作即可。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 连接成功之后,Wireshark 就会显示出这些远程连接,然后就可以进行远程抓包了。

    在这里插入图片描述

    在这里插入图片描述

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

在 Windows 上远程对 Linux 进行抓包 的相关文章

  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • Windows7上python3.5无法安装BeautifulSoup4

    我已经从下载了 beautifulsoup4 4 5 3 tar gzhttps www crummy com software BeautifulSoup bs4 download 4 5 https www crummy com sof
  • 更改desktop.ini不会在Windows中自动更新文件夹图标

    我使用此批处理脚本将所有文件夹和子文件夹的图标更改为位于文件夹中的 ico 文件 但是 资源管理器中的文件夹图标不会改变除非我手动重命名desktop ini将资源管理器中的文件更改为其他内容 然后返回desktop ini或者例如将字母更
  • Windows 上的 Openssl 错误 0x02001005 和 0x2006D002?

    我正在尝试使用 openssl 将 cer 证书转换为 p12 证书 这是我正在使用的命令 C OpenSSL Win32 bin gt openssl x509 inform der in developer identity cer o
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 由于图形处理单元配置,不支持 Windows Phone 模拟器(Mac 上的 Windows 7)

    启动 Windows Phone 模拟器时出现错误 不支持 Windows Phone 模拟器 因为您的计算机没有所需的图形处理单元配置 如果没有图形处理单元 XNA 框架页面将无法运行 您想继续启动模拟器吗 当我尝试访问网页 任何网页 时
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win

随机推荐

  • 理解一个最简单的C语言代码,“hello world!“的真相

    怎么编写出一个最简单 能运行的程序 int main 使用你习惯的编辑器 创建test cpp 把这些代码敲进去 这就是一个程序了 他可以编译成一个test exe 是一个可以执行的程序 只不过这个程序什么事情都没做 可以暂时不用理解为什么
  • ue4 材质始终面向摄像机

    材质面向设想
  • flutter 基本类写法

    import package flutter cupertino dart class text extends StatefulWidget 有状态的 override State
  • ubuntu添加qmake 出现错误 qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or

    出错原因 没有安装qt4库 usr lib x86 64 linux gnu qt4 所以出现错误 可以安装手动安装qt库 sudo apt get install qt sdk 如果自己编译 库 那就需要手动修改路径 cd usr lib
  • VUE+Element-ui实战之el-calendar日历自定义显示内容

    目录 1 确保添加el calendar组件 2 遍历日期 确定显示内容 3 最终实现效果 4 完整代码 1 确保添加el calendar组件 确保你的element引入了el calendar组件 这里不再赘述 2 遍历日期 确定显示内
  • DLP和DMD的区别

    DLP是解决问题的方案 DMD是上述方案内采用的芯片 DMD只是DLP的一部分 DLP技术是TI的专利 全球只有TI提供 而采用DLP方案就必须用到DMD芯片 这也是TI垄断的
  • git如何撤销所有本地修改

    git checkout 本地所有修改的 没有的提交的 都返回到原来的状态 git stash 把所有没有提交的修改暂存到stash里面 可用git stash pop恢复 git reset hard HASH 返回到某个节点 不保留修改
  • 文本意图识别方案整理

    意图识别本质上是文本分类问题 从目前的对话数据来看 用户说的话一般是短文本 长度大多在几十个字内 其中关键词和短语对分类显著的作用 目前主流的本文分类模型可以分为CNN RNN和Bert self attention 三类 三者可以结合起来
  • Python二级考试常见题型及解析(附刷题软件)

    导语 Python二级考试是计算机等级考试中非常重要的一项考试 需要熟练掌握Python的基础知识和常见的编程技巧 本文将为大家介绍Python二级考试常见的题型及解析 并提供多个实例代码进行演示 帮助大家更好地理解和掌握考试内容 一 选择
  • 三因子两水平doe_DOE试验设计案例

    DOE试验设计 一种安排实验和分析实验数据的数理统计方法 试验设计主要对试验进行合理安排 以较小的试验规模 试验次数 较短的试验周期和较低的试验成本 获得理想的试验结果以及得出科学的结论 从本质上讲 DOE 是这样一门科学 研究如何以最有效
  • 软件工程-12章

    一 判断题 程序设计语言是值编程是表现出来的特点 习惯 逻辑思维等 F 进行程序设计语言的选择是 首先考虑的是应用领域 T 好程序的一个重要标准是源程序代码的逻辑简明清晰 易读易懂 T 软件测试的目的是尽可能多地发现软件中存在的错误 将它作
  • 关于辽大信息学院选导师的一点儿心得

    首先 看到这个博文的时候 你可能已经上岸了 欢迎进入一所211综合院校 信息学院成立源远流长 涉及科类比较多 从电工电子到软件 以及生物学 学院的哲理楼也是孕育了一大批辽大优秀的学子 其他的不扯了 谈选导师的事情 首先 学院任何一位老师都有
  • 解压报错 你需要从上一压缩卷启动解压命令以便解压 解决方案及WinRAR怎么分卷压缩详解

    一 解决方案 1 问题描述 解压的时候报错 提示 你需要从上一压缩卷启动解压命令以便解压 2 解决 会出现这个问题 是因为你正在解压的文件为分卷压缩生成的压缩包 首先你要确保自己有完整的压缩包 可能对方将压缩包分为5个 那么你就需要拿到5份
  • Tensorflow2.0训练损失值降低,但测试正确率基本不变的情况

    Tensorflow2 0训练损失值降低 但测试正确率基本不变的情况 问题描述 解决方法 修改参数 检查模型 loss计算方法 数据标签 权重初始值 问题描述 对于一个架构 在识别mnist手写数字集精度较高的情况下 更换其他数据集 却无法
  • 大数据集群可视化管理界面

    hadoop hadoop http master 50070 dfshealth html tab overview hdfs http master 50070 explorer html yarn http master 8088 c
  • a deep leaning

    1 设计了新的搜索空间 即NASNet search space 并在实验中搜索得到最优的网络结构NASNet 2 提出新的正则化技术 ScheduledDropPath 是DropPath方法的改进版 可以大大提高了模型的泛化能力 Dro
  • 大学计算机基础 - 第十一章习题

    1 选择题 1 多媒体计算机中的媒体信息是指 D 文字 音频 音频 图形 动画 视频 视频 音频 A B c D 全部 2 多媒体技术的主要特性有 C 多样性 集成性 交互性 实时性 A 仅 B c D 全部 多媒体技术具有以下基本特征 1
  • 【Linux】基础IO篇

    文章目录 C文件接口 系统调用文件接口 文件描述符 是什么 分配规则 内核角度理解 从task struct的角度理解文件描述符在内核当中是什么 理解文件描述符和文件流指针的区别 重定向 符号 接口 内核角度理解重定向 重定向的代码验证 动
  • Android获取IP地址

    主要获取IP地址代码 Get Ip address 自动获取IP地址 throws SocketException public static String getIpAddress String ipType String hostIp
  • 在 Windows 上远程对 Linux 进行抓包

    文章目录 名词解释 事先准备 下载安装 Wireshark 下载运行 libpcap 设置 libpcap 环境变量 在 Wireshark 中远程连接 libpcap 笔者的运行环境 成功 本地客户端 Windows Windows 10