java使用jNetPcap嗅探网络包在linux下配置的一些问题

前言

关于java使用jNetPcap嗅探网络包在windows下配置使用,和一些介绍,看前面的这篇文章: java使用jNetPcap嗅探网络包之windows下配置使用。

另外在linux下我用的也是1.4版本,如果还担心1.4不知道问题出在哪里的,可以往下看。

配置步骤

1. 添加jnetpcap.jar到工程依赖库。不清楚依赖库在哪看 java使用jNetPcap嗅探网络包之windows下配置使用。

2. 把libjnetpcap.so 添加到java.library.path下,具体需要根据系统环境实际情况(建议直接放到/usr/lib下)。

3. 安装libpcap库

libpcap离线安装比较麻烦,需要依次安装:m4、bison、flex、libpca 。

关于libpcap的安装网上已经有不少教程资料,我找了一个,有需要可以参考一下:Linux下libpcap的安装,说的很清楚了

如果觉得下载麻烦的话,我已经下载了最新版本的这几个包,放到百度网盘上,这是地址:

链接:https://pan.baidu.com/s/1SETEnzsh9W2XICEqaNOiOg 
提取码:b1xo

安装完之后,就可以测试了。

 在java使用jNetPcap嗅探网络包之windows下配置使用,这里我写的有测试代码,可以直接打开vim编辑之后 ,使用javac -classpath等命令编译,java -cp 等命令执行,但是这样的话,需要指定好依赖的jnetpcap的jar包位置。或者使用spring boot直接打个可执行jar包,把依赖打进来也可以,方法不重要。

关键说下配置libpcap的一些问题。

可能遇到的问题

下面是本文的重点。

动态链接库找不到。一般也就是这个问题了。

好多时候让人没头没脑。

首先确定libjnetpcap.so的位置没问题,你可以打印java.library.path变量值,看java使用jNetPcap嗅探网络包之windows下配置使用说明。确定在这几个目录下。

如果libjnetpcap.so没问题,那很有可能是libjnetpcap.so依赖的库有问题,就是安装的libpcap有问题了,但是这个错误提示信息根本看不出来哪里有问题,首先检查下安装libpcap的目录有问题没,我用的是centos做的测试,一般安装后,库文件在这个目录下: /usr/local/lib,可以检查下或者配置下动态链接库的目录:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

但是这个只是临时的,可以修改配置文件/etc/ld.so.conf,设置为永久的:

sudo vim /etc/ld.so.conf

如下:

加入这个目录,然后,执行命令:

sudo ldconfig

如果还存在依赖库的问题,那多半是libjnetpcap.so找不到哪个库,查下是缺失哪个库文件,有个ldd命令可以看,如下:

java使用jNetPcap嗅探网络包在linux下配置的一些问题_第1张图片

如果找不到哪个库文件,上面的=>后面为空,比如libpcap.so找不到,上面就会显示libpcap.so =>

总之,看见哪个没有,想办法补上来就行,重新安装,改名字,创建软链接呀什么的,只要能提供依赖的动态链接库就行。

最后,是在 java使用jNetPcap嗅探网络包之windows下配置使用里写的代码里,这个位置

java使用jNetPcap嗅探网络包在linux下配置的一些问题_第2张图片

 这个64是捕获报文的长度,不设置过滤器,在某些条件或操作系统上非0也会被忽略,比如之前在windows上是被忽略了,64也无所谓,在centos上测试的时候,生效了,所以有需要把这个参数的值调大,官方注释来看,65535理论应该是可以的。

 

 

 

 

 

你可能感兴趣的:(linux平台,------》linux,------》tcp/ip)