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命令可以看,如下:

如果找不到哪個庫文件,上面的=>後面爲空,比如libpcap.so找不到,上面就會顯示libpcap.so =>

總之,看見哪個沒有,想辦法補上來就行,重新安裝,改名字,創建軟鏈接呀什麼的,只要能提供依賴的動態鏈接庫就行。

最後,是在 java使用jNetPcap嗅探網絡包之windows下配置使用裏寫的代碼裏,這個位置

 這個64是捕獲報文的長度,不設置過濾器,在某些條件或操作系統上非0也會被忽略,比如之前在windows上是被忽略了,64也無所謂,在centos上測試的時候,生效了,所以有需要把這個參數的值調大,官方註釋來看,65535理論應該是可以的。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章