Snitch:开源实时网络流量可视化工具,看清电脑全部隐藏网络连接

Snitch 是一款免费开源的实时网络流量可视化工具,可以直观查看本机所有网络连接:识别通信目标、IP地理位置、发起连接的应用程序。界面支持英语/法语一键切换,macOS提供现成安装包,Windows版本需要自行编译,Linux支持Docker部署。

Snitch:开源实时网络流量可视化工具,看清电脑全部隐藏网络连接插图

和同类工具对比

  • 对比 Little Snitch / Lulu:后者是macOS防火墙,侧重拦截连接;Snitch主打流量可视化解释、跨平台、开源免费,不做防火墙阻断
  • 对比 GlassWire:开源AGPL协议,无需注册账号,没有后台遥测,IP地理位置查询完全离线
  • 对比 Wireshark:不需要分析原始数据包,提供高层、易读的可视化总览,上手门槛更低
  • 对比云监控工具:全部运算在本机回环地址运行,流量数据不会上传到外部服务器

核心功能

  • Force Graph力导向节点图:本机放在中心,所有网络连接以节点形式实时展示
  • World Map全球地图:IP地理信息在交互式地球页面绘制动画连线
  • 时间线记录:15/30/60分钟流量视图,SQLite本地存储,默认保留24小时历史
  • 异常检测:自动标记端口扫描、心跳 beacon、潜在数据外泄行为
  • 进程归因:识别每个连接对应的应用进程,展示每个连接前5个相关进程
  • LAN被动局域网扫描:读取系统ARP表,不发送广播数据包,被动发现内网设备
  • 隐私评分:实时评估出站流量带来的隐私暴露风险
  • 单应用流量视图:按进程分组,展示目标地址、带宽、60分钟流量历史
  • 警报抑制规则:可永久忽略指定主机或警报类型,配置持久保存
  • 追踪域名识别:内置可编辑追踪域名列表,识别广告/采集类域名
  • 带宽监控:实时带宽迷你趋势图
  • 双语UI,一键切换英文、法语

隐私与安全设计

  1. 接口鉴权:REST接口与WebSocket访问都需要独立Token;Electron每次启动自动生成Token,Docker部署会打印并保存到本地文件
  2. 默认仅本地访问:后端默认绑定127.0.0.1;如果需要局域网访问,手动设置环境变量SNITCH_BIND=0.0.0.0,访问依旧需要Token校验
  3. 跨域白名单:仅允许localhost、Electron本地页面访问后端接口
  4. 离线地理库:内置DB-IP Lite离线IP库,开箱即用,默认不会联网查询IP归属地。仅在用户手动同意后,才可以下载更新地理数据库,这是软件唯一可能的外部网络请求
  5. 数据全部本地存储:流量历史保存在本地SQLite数据库snitch.db,仅保留24小时滑动窗口,可自定义留存时长;无任何遥测、不会上传流量日志
  6. 持久化配置:端口过滤、进程排除、IP白名单等设置保存在本地,重启不丢失
  7. 诊断导出:支持导出运行诊断快照,不含任何敏感密钥,方便排查问题

Linux Docker部署说明

使用network_mode: host,容器能够捕获宿主机真实网络流量,需要root权限。

注意:Mac/Windows上的Docker Desktop运行在虚拟机内部,无法捕获宿主机本机流量,这类平台直接使用Electron客户端。

git clone <仓库地址> snitch
cd snitch
mkdir -p data
# 可选:放入MaxMind离线IP库文件
sudo docker compose up --build

获取token后访问 [http://localhost:8000/?token=TOKEN](http://localhost:8000/?token=TOKEN);后台守护运行加 -d 参数。

Docker版局限:进程识别只能看到容器内部进程,默认无法识别宿主机进程,部分网络环境下内网扫描功能不可用。

下载地址
夸克
密码:pJrz