CentOS 7安装hyperscan

0x00 前言

HyperScan是一款由Intel开发的高性能正则表达式匹配库,专为需要快速处理大量数据流的应用场景而设计。它支持多平台运行,包括Linux、Windows和macOS等操作系统,并针对x86架构进行了优化,以提供卓越的性能表现。HyperScan的核心功能是能够高效地执行多正则表达式的编译与扫描操作,特别适用于网络安全、内容过滤、数据挖掘等领域。

HyperScan的主要特性之一是其独特的"块模式"(Block Mode)工作方式,允许用户在不破坏原有数据流的情况下对大数据集进行分割处理,从而实现并行化处理,极大提升了处理速度。此外,它还提供了"矢量化"支持,利用现代CPU的SIMD(Single Instruction Multiple Data)指令集来加速正则表达式的匹配过程,进一步增强了性能优势。

0x01 安装环境

版本
操作系统 CentOS 7 64 bit
gcc 4.8.5 20150623 (Red Hat 4.8.5-44)

0x02 依赖安装

软件 版本
Ragel 6.9
CMake >=2.8.11
Boost >=1.57

2.1 Ragel安装

bash 复制代码
yum install ragel

查看安装后版本

bash 复制代码
[user@localhost download]$ ragel -v
Ragel State Machine Compiler version 7.0.0.9 August 2016
Copyright (c) 2001-2015 by Adrian Thurston

2.2 CMake 安装

bash 复制代码
yum install cmake

查看安装后版本

bash 复制代码
[user@localhost download]$ cmake -version
cmake version 2.8.12.2

2.3 Boost 下载与安装

这里有个坑,就是boost安装路径,LZ是直接抄过来的。但是hs安装时死活找不到boost。原因是./bootstrap.sh --prefix=~/tmp/boost-1.66这个prefix路径需要写绝对路径,写是错误的。按照错误的路也能走下去,各位同学可以接着跟LZ走下去。

bash 复制代码
wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
tar xvzf boost_1_66_0.tar.gz
cd boost_1_66_0
./bootstrap.sh --prefix=~/tmp/boost-1.66
./b2 install

0x03 安装Hyperscan

下载就不多说了,到github仓库直接选择自己需要的版本下载即可。

bash 复制代码
https://github.com/intel/hyperscan/tags

安装步骤

bash 复制代码
cd hyperscan
mkdir build
cd build
cmake -DBUILD_STATIC_AND_SHARED=1 -DBOOST_ROOT=/home/user/download/boost_1_66_0/~/tmp/boost-1.66 ../
make -j2
make install

debug模式

bash 复制代码
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_STATIC_AND_SHARED=1 -DBOOST_ROOT=/home/user/download/boost_1_66_0/~/tmp/boost-1.66 ../

编译过程

0x04 单元测试

进入build目录可以运行测试单元,看hyperscan是否能正常工作

bash 复制代码
cd build/
bin/unit-hyperscan

0x05 参考文献

Hyperscan官网安装手册
Hyperscan 5.4.0 安装教程 (CentOS7环境)
Suricata5.0.1 Hyperscan 安装

相关推荐
叶之香20 分钟前
CentOS/RHEL 7、8安装exfat和ntfs文件系统
linux·运维·centos
一世琉璃白_Y26 分钟前
pg配置国内数据源安装
linux·python·postgresql·centos
不过普通话一乙不改名28 分钟前
Linux 内核开发入门:从环境配置到 Hello World 实战
linux·运维
乖乖是干饭王32 分钟前
Linux 内核 Kbuild 中的 ld 调用机制
linux·c·makefile
Trouvaille ~40 分钟前
【Linux】理解“一切皆文件“与缓冲区机制:Linux文件系统的设计哲学
linux·运维·服务器·操作系统·进程·文件·缓冲区
ITKEY_42 分钟前
archlinux 通过wpa_supplicant 连接wifi固定ip设置方法
linux·固定ip
幸存者letp2 小时前
Python 常用方法分类大全
linux·服务器·python
知识分享小能手2 小时前
Ubuntu入门学习教程,从入门到精通,Linux操作系统概述(1)
linux·学习·ubuntu
KnowFlow企业知识库3 小时前
KnowFlow v2.3.0 重磅发布:适配 RAGFlow v0.22.1 和 MinerU v2.6.5、新增支持多模态视频解析,让知识库"看见"更多
linux·github
悟空空心3 小时前
服务器长ping,traceroute
linux·服务器·网络·ssh·ip·ping++