sherlock-project/sherlock
安全用 Python 命令在各社交网络按用户名批量查询账号是否存在的 OSINT 工具。
项目介绍
Sherlock 接收一个或多个用户名,在维护的 400 多个社交网络中逐一探测该用户名是否已被注册,常用于 OSINT、侦察和用户名占位调查。结果会写入以用户名命名的文本文件,也可以导出为 CSV、XLSX 或加载自定义 JSON 站点列表。它做的是“名字是否存在”的检查,不做照片、头像或个人简介的匹配分析,因此不能用来确认不同站点账号属于同一个人。
安装
官方推荐 pipx、pip 或 uv,也提供 Docker 和 dnf 方式。ParrotOS 和 Ubuntu 24.04 的第三方包被标记为损坏,这两个系统的用户应改用 uv/pipx/pip 或 Docker 安装说明。
pipx install sherlock-project
sherlock user123
也可以用容器运行:
docker run -it --rm sherlock/sherlock
Debian、Ubuntu、Homebrew、Kali 和 BlackArch 有社区维护的包,但项目不直接支持或维护这些包。完整安装方式见安装页面。
快速使用
单个或多个用户名都可以直接传入:
sherlock user1 user2 user3
只查一个用户时,结果会写入 user123.txt 这类以用户名命名的文件。多个用户名可用 --folderoutput 指定输出目录,单个用户可用 --output 指定文件名 用法说明。常用参数包括:--site 只检查指定站点、--proxy 通过代理请求(如 socks5://127.0.0.1:1080)、--csv、--xlsx、--json 加载自定义站点列表、--timeout 设置请求超时(默认 60 秒)、--print-all 或 --print-found 控制输出范围,以及 --nsfw 将 NSFW 站点纳入检查。完整参数见 CLI 帮助。
使用约束
- 结果取决于站点列表的准确性和各网站的实际响应;帮助信息提示
--ignore-exclusions可能带来更多误报。 - 默认请求超时为 60 秒,检查数百个站点需要时间,可用
--site缩小范围或调整--timeout。 - 不加
--nsfw时默认排除 NSFW 站点。 - 可以通过代理发送请求,但各站点是否可用或是否封禁由站点自身决定,不在项目控制范围内。
- 项目使用 MIT 许可证 许可证说明。
HotRepo 点评
2026-11-06,Sherlock 在 Python 日榜上排第 20,当期新增 1,696 Star,总 Star 约 9.75 万、Fork 约 1.16 万。这不是短时爆发,而是一个从 2018 年积累至今、仍能登上语言日榜的长期项目。2019 年 Hacker News 上的讨论获得 172 分、83 条评论,有人认为它适合检查用户名是否已被占用 评论,也有人质疑用户名枚举是否构成人肉搜索;一条评论指出结果只覆盖固定站点列表 评论。这些是讨论观点,不是产品能力结论。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。