Flowsint 是一款面向道德调查、透明与核验工作的开源 OSINT(开源情报)图谱探索工具。
道德准则: 请阅读 ETHICS.md 以了解负责任使用的相关指引。
https://github.com/user-attachments/assets/eaabfa81-d7b3-414d-8cf7-f69b4e37bab6
https://github.com/user-attachments/assets/7457d94a-cf1d-4a97-949f-f9b1d8d92644
https://github.com/user-attachments/assets/65c3f26e-7132-4853-be45-21b8933688bd
贡献
Flowsint 仍处于早期开发阶段,迫切需要社区的帮助!欢迎随时提交 issue、提出新功能建议等。
快速上手
不想读长篇说明?好,这就给你安装指令:
Linux / macOS
1. 安装前置依赖
- Docker
- Make
2. 运行安装命令
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
Windows
无需 Make。同时兼容 命令提示符(cmd) 与 PowerShell。
1. 安装前置依赖
- Docker Desktop(执行下一步前请确保其已启动运行)
- Git
2. 克隆仓库并准备环境文件
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api\.env
copy .env.example flowsint-core\.env
copy .env.example flowsint-app\.env
3. 启动
docker compose -f docker-compose.prod.yml up -d
该命令会从 GitHub Container Registry 拉取预构建镜像——无需在本地重新构建。
首次登录
随后访问 http://localhost:5173/register 创建账号即可。系统默认没有任何预设凭据或账号。
✅ OSINT 调查对隐私有很高要求,所有数据都仅存储在你自己的机器上。
部署到网络(团队 / 服务器)
同一套开箱即用的方案在服务器上同样适用:前端既负责提供 UI,也在内部代理全部 API 请求,因此客户端无需任何额外配置。
git clone https://github.com/reconurge/flowsint.git
cd flowsint
cp .env.example .env
# 编辑 .env —— 参见下文 "对外暴露前的注意事项"
docker compose -f docker-compose.prod.yml up -d
之后,网络中的任何成员都可以通过 http://<服务器IP>:5173 访问 Flowsint。
在将服务对外暴露之前,请修改 .env 中的默认密钥:
AUTH_SECRET:用于签署认证令牌。生成方式:openssl rand -hex 32MASTER_VAULT_KEY_V1:用于加密存储的 API 密钥。生成方式:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD:Neo4j 数据库密码。
同时,请将你的服务器主机名 / IP 加入 flowsint-app/nginx.conf 中的 Host 请求头白名单(查找 map $http_host $is_flowsint_host 配置段)。默认白名单仅接受 localhost / 127.0.0.1 / [::1],这是为单机安装抵御 DNS rebinding 攻击而设;局域网或公网部署需要自行将对应主机名加入白名单。同一个 map 配置块中有两行以注释形式给出的模板,可直接参考其格式。
仅向网络暴露 5173 一个端口。PostgreSQL、Redis、Neo4j 以及 API 都绑定在服务器本地的 127.0.0.1 上,仅能通过前端代理访问。
如需固定特定版本而非 latest,可在 .env 中设置 FLOWSINT_VERSION(例如 FLOWSINT_VERSION=1.2.10)。
HTTPS(在受信 LAN 之外强烈推荐启用): 在 5173 端口前置任意反向代理即可。例如使用 Caddy 的配置示例:
flowsint.example.com {
reverse_proxy 127.0.0.1:5173
}
在使用反向代理时,请同时在 docker-compose.prod.yml 中将应用端口绑定到本地回环("127.0.0.1:5173:8080"),以确保客户端只能经由 HTTPS 访问。
它是什么?
Flowsint 是一款以图谱为基础、专注于侦察与 OSINT(开源情报)的调查工具。它可以通过可视化图谱界面和自动化的 enricher(数据增强器),帮助你梳理各实体之间的关系。
可用的 Enricher
域名类 Enricher
- 反向 DNS 解析 —— 查找指向某个 IP 的所有域名
- DNS 解析 —— 将域名解析为 IP 地址
- 子域发现 —— 枚举子域名
- WHOIS 查询 —— 获取域名注册信息
- 域名转网站 —— 将域名转换为网站实体
- 域名提取根域名 —— 从子域名中抽取根域名
- 域名转 ASN —— 查找域名关联的 ASN
- 域名历史 —— 检索域名的历史数据
IP 类 Enricher
- IP 信息 —— 获取地理与网络信息
- IP 转 ASN —— 查找 IP 对应的 ASN
ASN 类 Enricher
- ASN 转 CIDR —— 获取某 ASN 所拥有的 IP 段
CIDR 类 Enricher
- CIDR 转 IP —— 枚举某段 IP 范围内的所有 IP
社交媒体类 Enricher
- Maigret —— 在各大社交平台上搜索用户名
组织类 Enricher
加密货币类 Enricher
- 钱包转交易记录 —— 获取钱包的交易历史
- 钱包转 NFT —— 查找某钱包持有的 NFT
网站类 Enricher
- 网站爬虫 —— 抓取并描绘网站结构
- 网站转链接 —— 抽取页面中的全部链接
- 网站转域名 —— 从 URL 中提取域名
- 网站转 Webtracker —— 识别页面中的追踪脚本
- 网站转文本 —— 提取页面的文本内容
邮箱类 Enricher
- 邮箱转 Gravatar —— 查找对应的 Gravatar 资料
- 邮箱转泄露记录 —— 检查数据泄露数据库
- 邮箱转域名 —— 查找关联的域名
电话类 Enricher
- 电话转泄露记录 —— 检查电话号码是否出现在泄露数据中
个人类 Enricher
- 个人转组织 —— 查找其所属的组织
- 个人转域名 —— 查找与个人关联的域名
集成类 Enricher
- N8n 连接器 —— 接入 N8n 工作流
项目结构
项目按自治模块进行组织:
核心模块
- flowsint-core:核心工具、编排器、Vault、Celery 任务与基类
- flowsint-types:Pydantic 模型与类型定义
- flowsint-enrichers:Enricher 模块、扫描逻辑与工具
- flowsint-api:FastAPI 服务器、API 路由与 schema
- flowsint-app:前端应用
模块依赖关系
flowsint-app (前端)
↓
flowsint-api (API 服务器)
↓
flowsint-core (编排器、任务、Vault)
↓
flowsint-enrichers (Enricher 与工具)
↓
flowsint-types (类型)
开发环境搭建
前置依赖
- Docker
运行
Linux / macOS(需要 Make):
make dev
Windows(cmd 或 PowerShell,无需 Make —— 先创建 .env 文件,参见 快速上手):
docker compose -f docker-compose.dev.yml up -d --build
docker compose -f docker-compose.dev.yml logs -f
开发
应用可通过 http://localhost:5173 访问。
模块详情
flowsint-core
供其他所有模块使用的核心工具与基类:
flowsint-types
所有数据类型的 Pydantic 模型:
- Domain、IP、ASN、CIDR
- Individual、Organization、Email、Phone
- Website、社交媒体资料、Credentials
- 加密货币钱包、交易、NFT
- 以及更多……
flowsint-enrichers
处理数据的 Enricher 模块:
- 域名类 Enricher(子域名、WHOIS、解析)
- IP 类 Enricher(地理、ASN 查询)
- 社交媒体类 Enricher(Maigret、Sherlock)
- 邮箱类 Enricher(泄露数据、Gravatar)
- 加密货币类 Enricher(交易、NFT)
- 以及更多……
flowsint-api
基于 FastAPI 的服务器,提供:
flowsint-app
前端应用:
- 现代且友好的 UI
- 为性能而生(即使上千节点也保持流畅)
开发流程
- 新增类型:在
flowsint-types模块中添加 - 新增 Enricher:在
flowsint-enrichers模块中添加 - 新增 API 端点:在
flowsint-api模块中添加 - 新增工具函数:在
flowsint-core模块中添加
测试
每个模块都拥有独立(尚不完善)的测试套件:
# 测试 core 模块
cd flowsint-core
uv run pytest
# 测试 types 模块
cd ../flowsint-types
uv run pytest
# 测试 enrichers 模块
cd ../flowsint-enrichers
uv run pytest
# 测试 API 模块
cd ../flowsint-api
uv run pytest
贡献
- 遵循模块化结构
- 使用 uv 进行依赖管理
- 为新增功能编写测试
- 按需更新文档
- 提交前需要运行的检查项请参阅 CONTRIBUTING.md
⚖️ 法律与道德使用
道德准则: 请阅读 ETHICS.md 以了解负责任使用的相关指引。
Flowsint 仅可用于合法、合乎道德的调查与研究目的。
它的设计初衷是协助以下使用者:
Flowsint 严禁用于:
- 未授权的入侵、监视或数据采集
- 骚扰、人肉搜索或针对个人的定向行为
- 政治操纵、虚假信息传播,或违反隐私法律法规的活动
任何滥用本软件的行为均被严格禁止,并违背 ETHICS.md 中所定义的道德原则。