人过留名
老话说,雁过留声,人过留名。
上网这些年,名儿是真留下了。好些人一个用户名用到底:论坛是它,游戏是它,代码仓库是它,视频网站还是它。省事是省事,可也等于在每家门口都贴了张条:此处有我。
有个开源工具,专门挨家挨户去看这些条。
先说是个啥
Sherlock,名字取自福尔摩斯。2018 年底开源,到现在 9.7 万颗星(我看的时候是 96,964),1.1 万多个 fork,贡献者 100 多人。代码是 MIT 协议,用 Python 写的,最新版是 9 月发的 v0.16.2。官网上说能查 400 多个社交网站,我数了数它的站点名单,眼下是 481 个。
它就干一件事:你给它一个用户名,它去这几百个网站上挨个问一声“有叫这个名儿的吗”,最后把有的那些列成一串链接。
它怎么查
说穿了不神秘。每个网站的个人主页地址都有规律,比如“网站地址/用户名”。Sherlock 把名字填进去,一次二十个同时去敲门,然后看人家怎么回:
- 看状态码:页面不存在,网站一般回个 404,这就是查无此人。名单里 327 个网站这么判断。
- 看页面上的字:有的网站找不着人也不报 404,只在页面上写一句“用户不存在”,那就找这句话。这样的有 127 个。
- 看跳转:还有 27 个网站,找不着人就把你跳回首页,看最后落在哪个地址就明白了。
查到的链接,存进一个以用户名命名的 txt 文件。
就这么个查户口的路数,跟片儿警挨家敲门差不多,不同的是一秒钟能敲好几十家。
它不干什么
网上有的介绍把它说得挺玄,说能把昵称、简介、注册时间、所在地一页汇总,还能顺着主页里的链接一路往下挖。我翻了它的说明和代码,没这些功能。
它只告诉你,哪几个网站上有人注册了这个名字。门开了,里头住的是谁,它不管,也不知道。
几句实在话:
- 同名不等于同人:查到了,只说明这个用户名在那儿被人注册过,不一定是你要找的那位。
- 会有错:网站一改版、一拦机器人,就会误报漏报。项目里专门有份名单,记着 131 个因为判断不准被拿掉的网站。
- 国内网站基本不在里头:微博、B 站、抖音、小红书都不在名单上,国内的我只找着一个 Gitee。

怎么用
装:
pipx install sherlock-project
用 pip 或 uv 也行;不想装 Python,还有 Docker 版:docker run -it --rm sherlock/sherlock。Homebrew、Kali 这些也有社区维护的包。
查一个名字:
sherlock user123
几个常用的参数:
- 一次查好几个:
sherlock user1 user2 user3。 - 名字里写上
{?},它会换成下划线、短横线、点,各查一遍。 --site只查指定的网站;--csv、--xlsx导出成表格;--browse把查到的页面全在浏览器里打开;--proxy走代理。- 默认不查成人网站,要加
--nsfw才查。
最该查的是你自己
这东西最正经的用法,是拿自己的用户名查一遍:
- 看看自己当年在哪儿开过户。忘了的旧账号,该注销的注销。
- 工作用的和私下用的名字分开,别一个名儿走天下。
- 起新号之前先查查,看这个名字在别处是不是早让人占了。
丑话说在前头
- 查别人要有分寸:它读的都是公开页面,可把一个人散在各处的账号凑到一块儿,本身就是在拼别人的底细。拿它去盯梢、骚扰,伤人,也可能犯法。能查,不等于该查。
- 结果要自己核:误报、漏报都有,同名的人也多,别拿一串链接就下结论。
- 得会用命令行:没有图形界面,得在终端里敲命令。
- 名单会变:网站一改版,判断规则就得跟着改,名单时不时就有增删。
最后说两句
福尔摩斯破案靠观察,这位靠敲门。门上贴着谁的名儿,它一眼就看见了;门里头住的是不是那个人,还得你自己判断。
老话说人过留名,那留的是名声。网上留的这个名儿,留得越整齐,越好找。
