返回首页

Little Snitch Linux:eBPF 流量监控

Linux 版 Little Snitch 使用 eBPF 进行监控和阻塞带有进程绑定的出站连接。Web 界面提供便捷控制,支持黑名单和自定义规则。该工具注重隐私,开源 eBPF 模块和免费守护进程。

Linux 上的 Little Snitch:完全控制出站流量
Advertisement 728x90

Little Snitch Linux版:基于eBPF的进程监控防火墙

Little Snitch现已登陆Linux平台,利用eBPF技术拦截所有出站网络连接。守护进程可直接关联特定进程收集流量数据,无需修改内核。通过本地地址localhost:3031访问网页界面,实时查看活动连接、历史日志和流量统计。支持按进程名、活跃度或带宽筛选,快速识别可疑行为。单击即可阻断流量,规则将自动保存以供后续使用。

流量图表可直观展示负载峰值,并支持按时间段隔离分析。这对中高级开发者尤其重要——无论是管理服务器还是桌面环境,都能有效监控应用遥测数据的外泄情况。

自定义规则与黑名单配置

自定义规则

规则通过位于 /var/lib/littlesnitch/config/ 的TOML配置文件定义。若在 /var/lib/littlesnitch/overrides/ 中放置覆盖文件,其优先级更高,确保测试安全且不影响基础配置。示例:允许所有Firefox流量,但阻止特定命令行工具的出站连接。

Google AdInline article slot

黑名单列表

内置预设黑名单:Hagezi、Peter Lowe、Steven Black、oisd.nl。支持域名每行一个、/etc/hosts格式及CIDR格式。注意:macOS专用的.lsrules文件不兼容,迁移前需转换格式。

  • 基于进程的拦截:绑定到PID或可执行文件,而非IP地址。
  • 端口/协议控制:支持细粒度的TCP/UDP过滤。
  • 历史记录与统计:追踪每个域名的传输字节数和请求频率。
  • PWA支持:可在Chromium或Firefox中将界面安装为独立应用。

权衡点:在高负载下eBPF限制缓存大小,可能降低数据包归属精度——但隐私防护覆盖率仍接近100%。

架构设计与权衡取舍

内核中的eBPF程序将元数据发送至守护进程,后者聚合统计并应用过滤规则。与macOS版本不同,本版不进行深度包检测,而是聚焦于连接元数据(如进程ID、目标端口/域名)。当连接数高达数千每秒时,eBPF映射可能填满,导致部分数据包失去归属信息。

Google AdInline article slot

eBPF优势:零拷贝数据传输,开销极低,多核系统扩展性良好。

局限性:程序大小受限(JIT编译后最大1MB),无法检查数据载荷。开发团队强调:此工具定位为隐私保护工具,非针对定向攻击的纵深防御方案。生产环境中建议搭配nftables使用。

无头服务器部署:可通过SSH隧道(ssh -L 3031:localhost:3031)或nginx反向代理访问。无GUI依赖,守护进程后台静默运行。

Google AdInline article slot

许可证与定制能力

  • eBPF模块:GPLv2,源码托管于GitHub。
  • 网页界面:GPLv2,开源免费。
  • 守护进程:专有软件,个人及商业用途均免费。

TOML配置支持脚本化操作,可借助Ansible或Chef实现规则自动化管理。对需要在CI/CD流水线或Kubernetes容器中控制遥测数据的资深开发者而言极具价值。

核心亮点总结

  • eBPF实现进程感知监控,无需内核模块,性能开销极小。
  • 提供网页UI与PWA应用,兼顾便捷性;支持无头模式,适用于服务器场景。
  • 黑名单与自定义规则覆盖90%以上隐私保护需求——但不能替代深度包检测(DPI)。
  • 完全免费,远低于macOS版的59欧元售价。
  • 权衡点:极端负载下因eBPF限制导致归属精度下降。

— Editorial Team

Advertisement 728x90

继续阅读