官方wiki: http://www.ntop.org/guides/pf_ring/index.html
其他:
高速的網絡抓包庫PF_ring介紹及編譯安裝
Ubuntu 16.04 LTS 安裝pfring
PF_RING 總結
https://blog.csdn.net/ygm_linux/article/category/6802624
下載pfring源碼包
下載地址:https://github.com/ntop/PF_RING
版本選擇:7.4.0
編譯7.0.0版本時ubuntu會報錯,我沒有花時間解決,7.4.0都不會報錯
源碼目錄結構
主要的目錄結構如下:
PF_RING-7.4.0/
drivers/
kernel/
userland/
Makefile
...
編譯
在主目錄下直接make
,缺什麼安裝什麼。
中間會有一些警告,可以忽略。
安裝
make完成後,分別進入kernel
、userland/lib
、userland/libpcap1.7.4
、drivers/intel/e1000e/e1000e-3.2.7.1-zc/src
中分別執行sudo make install
激活PF_RING使其加載到內核工作
cd /lib/modules/`uname -r`/kernel/net/pf_ring
# sudo insmod ./pf_ring.ko [min_num_slots = N] [enable_tx_capture = 1 | 0] [enable_ip_defrag = 1 | 0]
# min_num_slots: ring slots最小值;默認4096
# enable_tx_capture: 爲1抓取從網口出去的包,否則不抓;默認tx,rx都抓取
# enable_ip_defrag: 是否對rx ip分片進行重組
# quick_mode: 爲1時工作在全速模式,但是每個接口只能有一個socket
sudo insmod pf_ring.ko min_num_slots=8192 quick_mode=1
# sudo insmod pf_ring.ko transparent_mode=1 (若已經激活,可以使用sudo rmmod prf_ring卸載)
激活驅動
完成上一步PF_RING已經在原有網絡驅動上工作了,抓包效率已經有了很大的提升,但是PF_RING也可以工作在專有驅動上,抓包性能更強,但是這和硬件有關,並不是所有的硬件都支持,詳情參考官方wiki。
ethtool -i ethx #以e1000e網卡爲例
sudo rmmod e1000e -----先卸載
cd /lib/modules/`uname -r`/kernel/drivers/net/ethernet/intel/e1000e
sudo insmod e1000e.ko -----再安裝
8、至此PF_RING安裝完畢 當PF_RING激活,會創建一個新的入口/proc/net/pf_ring。
cat /proc/net/pf_ring/info