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 安装

相关推荐
安顾里27 分钟前
Linux命令-iostat
linux·运维·服务器
100编程朱老师1 小时前
面试:什么叫Linux多路复用 ?
linux·运维·服务器
miracletiger1 小时前
uv 新的包管理工具总结
linux·人工智能·python
enyp801 小时前
麒麟系统(基于Ubuntu)上使用Qt编译时遇到“type_traits文件未找到”的错误
linux·qt·ubuntu
struggle20252 小时前
LinuxAgent开源程序是一款智能运维助手,通过接入 DeepSeek API 实现对 Linux 终端的自然语言控制,帮助用户更高效地进行系统运维工作
linux·运维·服务器·人工智能·自动化·deepseek
无敌小茶3 小时前
Linux学习笔记之动静态库
linux·笔记
程序员JerrySUN4 小时前
驱动开发硬核特训 · Day 21(上篇) 抽象理解 Linux 子系统:内核工程师的视角
java·linux·驱动开发
雨声不在4 小时前
debian切换用户
linux·服务器·debian
不知名。。。。。。。。4 小时前
Linux—— 版本控制器Git
linux·运维·git
内网渗透5 小时前
OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享
linux·docker·容器·openwrt·软路由