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

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










