Project Icon

heplify

轻量级网络流量捕获与HEP分析工具

heplify是一款轻量级网络流量捕获工具,专注于高效性和易用性。作为单一二进制文件,它可在多种操作系统上运行,支持IPv4和IPv6数据包捕获并与Homer集成。heplify可处理SIP、RTCP、RTCPXR、DNS和日志,同时具备分片和重复数据包处理能力。该工具提供多种捕获模式和配置选项,适合网络监控和分析应用。

heplify 是 captagent 的小兄弟,专为速度和简洁性而优化。它是一个单一的二进制文件,可以在 Linux、ARM、MIPS、Windows 上运行,用于捕获 IPv4 或 IPv6 数据包并将它们发送到 Homer。Heplify 能够将 SIP、相关的 RTCP、RTCPXR、DNS、日志发送到 Homer。 它能够直接处理分片和重复的数据包。

要求

Linux

如果使用发布版本的二进制文件,则不需要任何要求

Windows

WinPcap

安装

Linux

下载 heplify 并执行 'chmod +x heplify'

Windows

下载 heplify.exe

开发构建

如果您安装了 Go 1.18+,可以通过运行 make 来构建最新的 heplify 二进制文件。

现在您应该安装 LUA Jit:

  • 从源代码编译:

    安装 luajit 开发库

    apt-get install libluajit-5.1-dev

    yum install luajit-devel

    或对于 macOS

    # 假设 brew 安装到 /usr/local/
    brew install lua@5.1 luajit
    ln -s /usr/local/lib/pkgconfig/luajit.pc /usr/local/lib/pkgconfig/luajit-5.1.pc
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
    

    安装 Go 1.11+

    go build cmd/heplify/heplify.go

Docker

您也可以构建 Docker 镜像:

docker build --no-cache -t sipcapture/heplify:latest -f docker/heplify/Dockerfile .

您可以使用 docker compose 使用该镜像:

  heplify:
    image: sipcapture/heplify:latest
    user: 1000:1000
    cap_add:
      - CAP_NET_ADMIN
      - CAP_NET_RAW
    command:
      ./heplify -e -hs ${HOMER_DST}:9060 -m SIP -dd -zf -l info
    network_mode: host
    restart: unless-stopped

用法

 -assembly_debug_log
	如果为 true,github.com/google/gopacket/tcpassembly 库将记录详细的调试信息(至少每个数据包一行)
  -assembly_memuse_log
	如果为 true,github.com/google/gopacket/tcpassembly 库将不时记录有关其内存使用的信息。
  -b int
	接口缓冲区大小(MB)(默认 32)
  -bpf string
        用于捕获数据包的自定义 BPF
  -collectonlysip
        仅收集 SIP
  -d string
	启用特定的调试选择器 [defrag,layer,payload,rtp,rtcp,sdp]
  -dd
	去重数据包
  -di string
	通过任何字符串丢弃不感兴趣的数据包
  -didip string
	通过目标 IP 丢弃不感兴趣的 SIP 数据包
  -diip string
	通过源或目标 IP 丢弃不感兴趣的 SIP 数据包
  -dim string
	通过方法丢弃不感兴趣的 SIP 数据包 [OPTIONS,NOTIFY]
  -disip string
	通过源 IP 丢弃不感兴趣的 SIP 数据包
  -e	
	记录到 stderr 并禁用 syslog/文件输出
  -eof-exit
        读取完 pcap 文件后退出
  -erspan
	erspan
  -fg uint
	af_packet 的扇出组 ID
  -fi string
	通过任何字符串过滤感兴趣的数据包
  -fnum int
        要保留的日志文件总数(默认 7)
  -fsize uint
        每个日志文件的轮换大小(基于字节)(默认 10485760)
  -fw int
	af_packet 的扇出工作者数量(默认 4)
  -hep-buffer-activate
        如果与 HEP 服务器的连接断开,启用缓冲消息
  -hep-buffer-debug
        启用调试缓冲消息
  -hep-buffer-file string
        hep-buffer 文件的文件名和位置(默认 "HEP-Buffer.dump")
  -hep-buffer-max-size string
        最大缓冲区大小,可以是 B、KB、MB、GB、TB。默认为无限制(默认 "0")
  -hi uint
	HEP 节点 ID(默认 2002)
  -hin
	HEP 收集器监听协议、地址和端口(示例:"tcp:10.10.99.10:9060")
  -hn string
	HEP 节点名称
  -hp string
	HEP 节点密码
  -hs string
	HEP 服务器目标地址和端口(默认 "127.0.0.1:9060")
  -i string
	监听接口(默认 "any")
  -keepalive uint
        保持活动内部 - 默认为 5 秒。0 - 禁用(默认 5)
  -l string
	日志级别 [debug, info, warning, error](默认 "info")
  -lp int
	ReadFile 的循环计数。使用 0 无限循环(默认 1)
  -m string
	捕获模式 [SIP, SIPDNS, SIPLOG, SIPRTCP](默认 "SIPRTCP")
  -n string
	日志文件名(默认 "heplify.log")
  -nt string
	网络类型 [udp, tcp, tls](默认 "udp")
  -bpf string
	自定义 bpf 过滤器(默认 "")
  -o	
	逐个读取数据包
  -p string
	日志文件路径(默认 "./")
  -pr string
	用于捕获 SIP 的端口范围(默认 "5060-5090")
  -prometheus string
        prometheus 指标 - ip:端口。默认为所有 IP(默认 ":8090")
  -protobuf
	在线使用 Protobuf
  -rf string
	读取 pcap 文件
  -rs
	使用数据包时间戳以最大 pcap 读取速度
  -rt int
	Pcap 轮换时间(分钟)(默认 60)
  -s int
	抓取长度(默认 8192)
  -script-file string
        在每个数据包上执行的脚本文件
  -script-hep-filter string
        脚本的 HEP 过滤器,HEP 类型的逗号分隔列表(默认 "1")
  -sipassembly
        如果为 true,将启用 sipassembly
  -skipverify
        跳过证书验证
  -sl
	记录到 syslog
  -t string
	捕获类型 [pcap, af_packet](默认 "pcap")
  -tcpassembly
	如果为 true,将启用 tcpassembly
  -tcpsendretries uint
	发送失败前重试的次数,之后重新连接(默认 64)
  -version
	显示 heplify 版本
  -vlan
	vlan
  -wf string
	写入 pcap 文件的路径
  -zf
	启用 pcap 压缩
  -script-file string
    	在每个数据包上执行的 LUA 脚本文件路径
  -script-hep-filter string
    	LUA 脚本的 HEP 类型过滤器,逗号分隔列表(默认 "1")

示例

# 在任何接口上捕获 SIP 和 RTCP 数据包并将它们发送到 127.0.0.1:9060
./heplify

# 在任何接口上捕获 SIP 和 RTCP 数据包并通过 TLS 将它们发送到 192.168.1.1:9060
./heplify -hs 192.168.1.1:9060 -nt tls

# 在任何接口上捕获 SIP 和 RTCP 数据包并将它们发送到 192.168.1.1:9060。使用 someNodeName
./heplify -hs 192.168.1.1:9060 -hn someNodeName

# 在任何接口上捕获 SIP 和 RTCP 数据包并将它们发送到 192.168.1.1:9060。将信息打印到 stdout
./heplify -hs 192.168.1.1:9060 -e

在任意接口上捕获SIP和RTCP数据包,并将它们发送到192.168.1.1:9060和192.168.2.2:9060

./heplify -hs "192.168.1.1:9060,192.168.2.2:9060"

在任意接口上捕获SIP和RTCP数据包,并将它们发送到192.168.1.1:9060。打印调试选择器

./heplify -hs 192.168.1.1:9060 -e -d fragment,payload,rtcp

在eth2上捕获自定义SIP端口范围的SIP和RTCP数据包,并将它们发送到192.168.1.1:9060

./heplify -i eth2 -pr 6000-6010 -hs 192.168.1.1:9060

在eth2上捕获SIP和RTCP数据包,将它们发送到homer并压缩到/srv/pcapdumps/

./heplify -i eth2 -hs 192.168.1.1:9060 -wf /srv/pcapdumps/ -zf

读取example/rtp_rtcp_sip.pcap并将SIP和相关的RTCP数据包发送到192.168.1.1:9060

./heplify -rf example/rtp_rtcp_sip.pcap -hs 192.168.1.1:9060

捕获并发送除SIP OPTIONS和NOTIFY之外的数据包到192.168.1.1:9060

./heplify -hs 192.168.1.1:9060 -dim OPTIONS,NOTIFY

在端口7932和接口eth2上捕获带HPERM封装的SIP数据包,发送到192.168.1.1:9060并在stdout上打印调试信息

./heplify -i eth2 -bpf "port 7932" -hs 192.168.1.1:9060 -l debug -e

在端口4789和接口eth0上捕获带VXLAN封装的SIP数据包,发送到192.168.1.1:9060并在stdout上打印调试信息

./heplify -i eth0 -bpf "port 4789" -hs 192.168.1.1:9060 -l debug -e

在"HEP收集器"模式下运行heplify,以通过TCP在端口9060上接收HEP输入,并分叉(输出)到两个在端口9063上监听的HEP服务器

./heplify -e -hs HEPServer1:9063,HEPserver2:9063 -hin tcp:1.2.3.4:9060

### 由人类制作

这个开源项目是由真实的人类完成的,没有企业赞助商、天使投资人或赞助人。

如果您在生产环境中使用这个软件,请考虑通过贡献或[捐赠](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donation%40sipcapture%2eorg&lc=US&item_name=SIPCAPTURE&no_note=0&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest)来支持它的开发。

[![捐赠](https://yellow-cdn.veclightyear.com/0a4dffa0/f595a50c-7a6b-4918-8a2d-088b3ba0c3e9.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donation%40sipcapture%2eorg&lc=US&item_name=SIPCAPTURE&no_note=0&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest)
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号