它是什么
Sherlock 是一个用 Python 编写的开源情报(OSINT)命令行工具。你只需给它一个用户名,它就会并发访问数百个社交平台、论坛、博客的公开查询接口,判断该用户名是否已在对应站点注册,最后把命中的结果整理成一份清单输出。整个过程不涉及密码、不登录他人账号,只对公开页面做「存在性」检查,因此常被用于个人隐私自查、品牌 ID 保护和安全研究中的前期信息收集。
项目在 GitHub 上已有超过 10 万颗星,社区维护的站点清单持续更新,是目前同类工具中覆盖面最广的一个。
核心功能
- 跨站批量检索:内置 400+ 站点清单,一条命令即可把主流社交网络、开发者社区、论坛、博客一次性扫完。
- 多目标同查:支持一次传入多个用户名,适合批量核对一组昵称或马甲。
- 多种导出格式:结果可输出为终端表格,也可导出 CSV、JSON、XLSX,方便写报告或做二次数据分析。
- 站点定向与过滤:通过
--site只查指定站点,--print-all显示未命中项,--nsfw决定是否包含成人站点。 - 代理与 Tor 支持:内置
--proxy、--tor、--unique-tor参数,可隐藏来源 IP、降低被目标站点限流的概率。 - 超时与并发调节:可自定义请求超时,在速度与准确率之间做取舍。
适用场景
- 个人隐私自查:检查自己常用的昵称在哪些平台留有账号痕迹,评估信息暴露面。
- 品牌与 ID 保护:确认品牌名、产品名是否已被他人在各平台抢注,提前布局。
- 安全研究与红队前期:在授权测试中快速建立目标的公开账号画像。
- 记者与调查核实:核对某个公开网名是否在多个平台同时活跃,辅助交叉验证。
上手建议
最省事的方式是 pip install sherlock-project,安装后直接执行 sherlock 目标用户名;想跟进最新站点清单则用 git clone 后 pip install -r requirements.txt 本地运行。
实际使用时有几点值得注意:一是把超时设为 5~10 秒,过短容易误判,过长则整体耗时明显增加;二是结果务必人工复核,部分站点对未注册用户也返回 200 页面,或对频繁请求做了限流,会产生误报和漏报;三是批量查询时建议配合代理,避免本机 IP 被目标站点临时封禁;四是请把工具用在合规范围内,只查询公开信息,不要用于骚扰或人肉搜索。作为一款免费开源工具,Sherlock 很适合作为账号排查的「第一道筛子」,但结论仍需你自己把关。