在 Windows 上远程对 Linux 进行抓包

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

  • 本地客户端:

    • 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 ([email protected]) (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 就会显示出这些远程连接,然后就可以进行远程抓包了。

    在这里插入图片描述

    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wangpaiblog/article/details/132729142