文章目录
- 名词解释
- 事先准备
- 下载安装 Wireshark
- 下载运行 libpcap
- 设置 libpcap 环境变量
- 在 Wireshark 中远程连接 libpcap
笔者的运行环境:(成功)
本地客户端:
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 进行抓包。
事先准备
-
为了方便远程输入命令、将文件加入到 Linux 操作系统中,最好还要在一台 Windows 操作系统上面使用一种终端控制软件,如 Xshell、Xftp 等。关于这方面的内容,可见笔者的另一篇如下博客。同时,该博客还给出了查看 Linux 中的 IP 的方法。
如何在 Windows 主机上访问本地局域网中的 Linux 主机:
https://blog.csdn.net/wangpaiblog/article/details/120052152现在,假设读者已经会了如何将文件从 Windows 中传入 Linux 中,以及查看 Linux 中的 IP。
-
由于 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
。记住这一点,下面将会用上。 -
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
-
抓包软件有很多,这里选择 Wireshark。Wireshark 官网:https://www.wireshark.org/
Wireshark 下载完成之后就可以安装了。此软件的安装过程很傻瓜,这里从略。
下载运行 libpcap
-
libpcap 是一种 Linux 下著名的抓包工具,而且 Wireshark 与它是兼容的。libpcap 官网:https://www.tcpdump.org/
【踩坑提醒】
有的读者可能会去下载安装
WinPcap
,这是错误的。WinPcap 是一种 Windows 下的抓包工具,不适用 Linux,而且它已经停止更新了。
-
在 libpcap 官网下载 libpcap。
-
先不要急着安装 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
-
libpcap 需要 Flex、Bison 这两个依赖,输入如下命令进行安装:
cd libpcap 压缩包所在目录
如果缺少这两个依赖,则 libpcap 在后续安装时会报如下错误。
configure: error: Neither flex nor lex was found.
-
将下载完的
.tar.gz
包通过 Xftp 传入 Linux 中。使用如下命令进入目录
libpcap 压缩包所在目录
:(下面的libpcap 压缩包所在目录
要改成实际的目录)yum -y install flex bison
-
使用如下命令解压 gz 包:
tar -xzvf libpcap-1.10.4.tar.gz
-
使用如下命令进入解压后的目录:
cd libpcap-1.10.4/
-
输入如下命令生成
Makefile
。./configure --enable-remote
-
输入如下命令对进行 libpcap 编译:
make
-
输入如下命令运行 libpcap。
cd rpcapd/
./rpcapd -n -d
注意:libpcap 运行时如果不指定端口号,就相当于将端口号指定为 2002。
设置 libpcap 环境变量
-
设置 libpcap 环境变量只是为了方便,这样下次运行 libpcap 时不必输入 libpcap 的全路径。
-
一个偷懒的方法是将环境变量添加在文件
/etc/profile
中。之所以说偷懒,是因为一旦升级或重装了 Linux 操作系统,这个文件就会被重置。最好的方法是将自设的环境变量放到
$HOME/
下的前缀为.bash
的一系列文件中。不过笔者有时也偷懒。 -
在 Linux 中设置 libpcap 的环境变量偷懒方法:
在文件
/etc/profile
尾追加以下内容:(注意:修改前最好先备份,以免发生误修改)(这里假设读者 libpcap 的安装路径为
/usr/local/libpcap
)export PATH=$PATH:/usr/local/libpcap/rpcapd
在文件
/etc/profile
中追加路径正是上面生成的libpcap 命令目录
。 -
现在需要验证一下环境变量有没有设置成功,但先不要着急验证,因为文件
/etc/profile
在 Linux 启动时才会被读取。可以使用以下方法来使环境变量生效。-
使用命令 source:
source /etc/profile
-
重启。重启的方法有很多,也可以使用命令
reboot
。
-
-
验证环境变量。这种方法有很多,只举几例。
-
输入以下命令。如果输出了前面的设置,说明前面的环境变量设置成功。
echo $PATH
-
输入以下命令。如果输出了相应的路径(就是前面生成的
libpcap 命令目录/redis-cli
),说明前面的环境变量设置成功。which rpcapd
[root@localhost ~]# which rpcapd /usr/local/redis/bin/redis-cli
-
-
设置环境变量之后,以后在任何目录下只输入如下命令即可运行 libpcap。
rpcapd -n -d
在 Wireshark 中远程连接 libpcap
-
打开 Wireshark,按如下操作即可。
-
连接成功之后,Wireshark 就会显示出这些远程连接,然后就可以进行远程抓包了。