← 文章 / 开源项目
kismetwireless 20小时前 · 2026-09-17 22:22:33 · 3 阅读

Kismet 发布 2025 年 9 月版本 202509R1

距离完整版本发布已经太久,积压了太多改进与修复,是时候宣布新发布了——先修复新引入的 bug,再继续推进新特性和改进工作。

主要变更 #

  • UI 引入新的表格渲染库,分页、尺寸调整和显示更可靠;主显示面板可直接添加、删除、调整及重排列。整体效率大幅提升,原先偶尔出现的异常尺寸行为也得到修复。
  • 所有数据源移除 Python 依赖。Python 不断调整 asyncio 语法并引入其他破坏性小改动,使得非 pip 环境下打包 Python 工具麻烦不少;RTLSDR 等类似数据源已用纯 C 重写。
  • 全新数据源/IPC 协议,取代原有的 protobufs 协议,去掉另一项复杂库依赖,同时提升速度。
  • 大量优化以降低 RAM 和 CPU 占用,尤其在最高频的报文处理路径上效果明显。

升级 #

升级方式与其他版本一致——记得安装数据源工具;make install、Kismet 官方站点安装包以及主流发行版打包通常都会自动处理。

新写的纯 C 数据源将替代旧版 Python 版本。若为手动安装,需移除旧数据源;若通过 Kismet 官方站点安装包部署,新版 _v2 包会自动标记原版本为不兼容并安排卸载,但若旧包仍在系统中,仍需手动移除。

远程数据源建议与 Kismet 同时升级,以获得最佳功能与兼容性。

只要 Kismet 编译时启用了 protobufs 支持,旧版远程采集源仍可正常工作。Kismet 官方站点发布的包默认链接 protobufs,但部分发行版可能直接弃用——为最大化兼容性,建议同步升级远程数据源;新协议在效率上的提升本身就值得。

新特性 #

  • 引入新的 UI 列表库 Tabulator,替代 jQuery Datatables,修复了大量在 Datatables 中无法解决的怪异显示问题,支持动态添加和定位列,显示更流畅且行高更可预测。
  • ADSB 解析移至 Kismet 服务器端,不再由数据源负责。
  • 新增基于 Wi-Fi 的无人机指纹识别。
  • 在 Kismet PEN 下添加 Pcap-NG UTF-8 JSON 属性。
  • 新增盖革计数器支持:通过 USB 支持 Radiacode,通过 Arduino 串口支持 Radview。
  • 新增 AntSDR DJI DroneID 数据源。
  • UI 中增加设备类型图标。
  • 用 C 语言重新实现 RTLADSB 和 RTL433 数据源,消除对 Python 的依赖,以应对 Python 3.x 系列中多次不兼容的版本变更。
  • 弃用 RTLAMR 数据源,现可通过将 RTL433 调至 915MHz 来处理。
  • 扩展 AP 名称解析,支持 HP/Aruba、Mist、Ruckus、Aerohive/Extreme、Fortinet 的 IE 标签。
  • 为数据源命令行添加 –version 参数,以识别已安装的辅助程序。
  • 在数据源探测报告中添加版本信息,以识别本地数据源二进制文件的版本。
  • 为远程数据源添加版本和远程连接类型,以辅助识别远程连接。
  • Google Protobufs 变为可选,仅用于现已成为遗留协议的 V2 数据源协议。Protobufs 在打包和链接方面问题日益增多,且与纯 C protobufs 库引入了不兼容性。
  • 开始弃用 V2 数据源/IPC 协议;保留兼容性以防止与旧版远程数据源不同步,但所有安装都应升级至当前的远程和本地数据源,其效率有显著提升。
  • 新的 V3 IPC 协议基于 msgpack,采用更智能的内联解码以减少内存拷贝开销。使用捆绑的 msgpack 库构建,消除对 protobufs 的依赖。
  • SSIDCANARY 警报,用于发现特定网络。

速度与 RAM 改进 #

  • 更快的内部 map 用于存储数据(ankerl::unordered_dense)。
  • 字符串缓存以减少 RAM 使用。
  • 重写数据包时间比较逻辑,移除每个数据包的一次函数调用。
  • 重写 pcap-ng 内部过滤器和组件选择器,改为编译期 functor,消除每个数据包的一次函数间接调用。
  • 重写 JSON 名称转换,改为编译期 functor 以提升速度。
  • 重写数据包链各阶段,消除 std::function 的间接调用,改用编译期函数
  • 优化 tracked 元素内部的所有元素克隆函数
  • 重构智能指针的使用,减少快速代码路径中不必要的指针共享和原子递增/递减操作
  • 重写 dot11 IE 标签解析,大幅减少堆分配和无谓的内存抖动
  • 避免在常用的可打印格式化函数中构造临时字符串
  • 优化 datasource 和 entrytracker 在快速路径代码中的访问
  • 彻底改造 IPC 处理,基于新的 msgpack v3 协议减少甚至完全消除接收 IPC 数据时的内存拷贝
  • 将所有 IO 重写为使用全局缓冲池,减少内存分配和拷贝
  • 移除 IPC 接收过程中对数据包数据的拷贝,改为使用缓冲池并直接从 IPC 帧中读取传入的数据包
  • 重写并优化用于 Wi-Fi 抓包的 BPF 过滤器
  • 重写定时器计算,使事件按可预测的间隔触发:由原来的"上次事件后十分之一秒触发"改为固定每十分之一秒准时触发
  • 将 tracked 字段 ID 改为 uint16 以节省内存——两字节看似不多,但大型会话中可能存在数百万个 tracked 字段
  • 大批 bug 修复 #

    本次的 bug 修复和小改进包括(但不限于):

    • C++20 编译修复
    • WiFi Coconut 编译修复
    • 信道更新与显示的改进
    • 支持更多新版 WPA3 模式,并缓存加密字符串
    • 新增 IE 35 advertised power 标签处理
    • 为 NRF 嗅探器添加 udev 规则
    • 支持在 Linux 上不依赖 wext(仅用 mac80211)构建
    • 修复 OpenBSD 上的构建问题
    • 修复部分字符串字段中的字符串搜索
    • 修复 TPMS 胎压显示
    • 重写 ADSB 显示插件,改为动态加载并减少各种奇怪的怪癖
    • 更新 font-awesome
    • 为 IPC 环形缓冲区添加字节搜索功能
    • 重写 datasource 抓包框架的信号屏蔽与处理
    • 重写 datasource 抓包框架对子进程的监控与终止逻辑
    • 新增在 UI 中隐藏 phy 处理器的功能,避免没有用户界面组件的类 phy 处理器把界面弄得杂乱
    • 优化 Wi-Fi 源设备的信道分配,以兼容非无线设备
    • 更新 JQuery
    • 更新内置 Boost 库
    • 更新内置 libfmt 库
    • 扩展时序 RRD 数据的功能
    • 修复 Zigbee 802.15.4tap 头部生成问题
    • 由于 protobuf-c 与最新 Google Protobufs 版本不兼容,现在针对旧版 protobuf 代码包含预编译的 protobuf-c
    • 修复未使用 entrytracker 生成函数的子跟踪组件创建问题
    • 修复 UAV 位置处理程序清除全局最后已知位置记录的问题
    • 升级 Kaitai 运行时
    • 重构 UI 中坐标的显示方式
    • 在偏好设置中新增阶梯图显示选项
    • 修复时序 RRD 中缺失的数据填充函数
    • 清理 GPSd 在特定异常情况下数据解析的问题
    • 在数据源采集框架中正确关闭套接字
    • 修复数据源采集框架中 FD_CLOEXEC 和 FD_SET 的问题
    • 重构数据源采集框架中 exec 后的 IPC 描述符及 stderr/out 映射
    • 修复数据源采集框架中 IPC 处理已关闭的 exec 管道的问题
    • 新增 –enable-homebrew 标志,简化 macOS 上的构建过程
    • 扩展 rtlsdr C 集成,允许使用 bias-t API
    • 修复 LinuxHCI 蓝牙数据源中的 GPS 注入问题
    • 重构可打印字符处理和内存缓冲区以支持 const 内存
    • 修复 PCRE2 匹配结果处理不当的问题,该问题影响了正则端点、警报及其他功能
    • 更优雅地处理 gcc13/14 的警告
    • 在 C++20 编译器下处理 libfmt 的异常及其他属性
    • 修复信号监视窗口中的名称屏蔽问题
    • 替换不可靠的 rtlsdr 按序列号查找功能
    • 从 autoconf 中移除某些 bash 专属语法
    • 修复过滤器合并逻辑
    • 在 /devices/last-time 端点中添加缺失的正则表达式
    • 为 websocket 订阅添加 JSON 格式选项
    • 清理 linuxwifi 中的信道列表处理
    • 在 linuxwifi 探测过程中更早失败
    • 改进 GPSd 处理程序
    • 移除信道子面板扩展器,因其行为异常且导致故障
    • 修复 UI 关闭面板窗口时的竞态条件
    • 修复 Web UI 中某些标签闭合问题,这些问题会导致部分浏览器报错
    • 默认禁用断开连接/去认证代码警报,因为更多 AP 会以不相关方式使用任意错误代码
    • 修复 802.15.4 解码中因空指针引发的崩溃问题
    • 修正 wiglecsv 工具中关于错误的描述措辞
    • 重写 OUI 和 ICAO 生成脚本
    • 修复配置为极端测量的时间序列 RRD,确保在所有情况下使用极值而非平均值
    • 保护 entrytracker 的创建过程,防止在部分创建模式中出现线程间的死锁或数据损坏
    • 修复时间序列 RRD 问题,解决内存面板中设备数量波动(wobble)的现象
    • 消除部分日志路径中不必要的线程创建
    • 修复多个 JavaScript 错误
    • 修复 databaselog 未正确遵循 kis_log_data_packets 配置的问题
    • 清理代码中的尾部空白字符(仅外观调整,无功能差异)
    • 将 UI 中的数据源列表按字母顺序排列

    下载 #

    您可以从 Kismet 下载页面获取 2025-09-R1 版本,该页面提供源代码及多个发行版的软件包。

    打包 #

    如果您希望打包 Kismet,请参阅 打包指南。对于本版本,建议维护者继续打包 protobufs 和 v2 协议,以简化升级过程,并计划在下一个版本中完全弃用它们。

    致谢 #

    一如既往地,向所有 Github Sponsors 支持者致以衷心的感谢!

    原始来源: kismetwireless

    评论 (0)