Shadowbroker
宝剑锋从磨砺出,梅花香自苦寒来。——佚名
https://github.com/BigBodyCobain/Shadowbroker
当地图开始低声汇报世界:ShadowBroker,把公开情报拧成一块正在发光的屏幕
如果你把今天互联网上散落的公开情报都想象成一群性格各异的信使,那它们平时的状态大概是这样的:
有的在天上飞,背着飞机应答机数据,一边穿云一边喊自己的位置;
有的在海上漂,拖着船舶 AIS 信号,像老水手一样时不时报平安;
有的绕着地球转,替卫星轨道和地面站低声传话;
有的躲在地底,借地震仪提醒人们“下面刚刚动了一下”;
有的藏在城市角落,通过 CCTV、无线电、网络遥测和各种基础设施监测,不断往外吐露这个世界的细枝末节。
问题从来不是这些信息不存在。
问题是,它们太分散、太吵、太碎,像一整屋子同时说话的人,谁都在提供线索,但很少有人能把它们叫到一张桌子前坐好。
而 ShadowBroker 做的事,恰恰像一个披着黑色风衣的总协调员。它站在地图中央,抬起手,让飞机、船只、卫星、冲突事件、CCTV 网络、GPS 干扰、网联设备、警用扫描、网状无线电节点和全球突发地缘政治信息,一起在同一块界面上开口说话。
它给自己的描述非常直接:Open-source intelligence for the global theater。换成更有画面感的话,就是:这不是单点观察工具,而是一块把全球公开情报拢到一起的作战剧场屏幕。它允许你追踪从富豪私人飞机、间谍卫星,到地震事件的一整套动态,还鼓励你把 AI agent 接上去,让它在这些密密麻麻的公开信号里发现过去没人注意到的关联。
这不是普通地图。
这是一张会自己讲故事的地图。
只不过,它讲的是现实世界正在发生的事。
它到底是什么
ShadowBroker 是一个去中心化的情报平台,用来聚合实时、多领域的 OSINT 遥测数据,把 60 多个实时情报源汇总到一个统一的深色地图界面中。它使用 Next.js、MapLibre GL、FastAPI 和 Python 构建,提供 35 个以上可切换的数据图层,还支持包括默认、卫星、热成像、夜视和 CRT 在内的多种视觉模式。你甚至可以在地球上的任意位置点右键,直接调出国家档案、国家元首信息以及最新的 Sentinel-2 卫星图像。更重要的是,它强调不收集也不传输用户数据,整个仪表盘都运行在你的浏览器里,并连接到你自托管的后端。(github.com)
这段描述读下来,会有一种很鲜明的感觉:ShadowBroker 不是想当一个“看起来很酷的地图网站”,它想成为一个情报聚合界面,一个把公开世界信号集中到你眼前的可视化节点。它是为分析师、研究者、无线电爱好者,以及任何想看看“当世界上所有公开信号都被放到同一张地图上时会发生什么”的人准备的。(github.com)
它为什么会让人忍不住多看两眼
因为它不是凭空制造神秘感,而是在用公开数据搭建一种近未来的观察方式。
README 里说得很清楚:世界上其实已经有大量全球遥测信息是公开的,比如飞机 ADS-B 广播、船舶 AIS 信号、卫星轨道数据、地震传感器、网状无线电网络、警用扫描源、环境监测站以及互联网基础设施遥测等。真正棘手的地方在于,这些数据散落在几十种工具和 API 里,而 ShadowBroker 做的,就是把它们组合成一个统一界面。它并没有引入新的监视能力,而是在聚合和可视化现有的公开数据集;项目本身也是完全开源的,因此任何人都可以审计它究竟访问了哪些数据,以及是如何使用这些数据的。README 还反复强调:没有遥测、没有分析埋点、没有账户系统,一切都在本地对接自托管后端完成。(github.com)
这个定位非常微妙,也非常重要。
它就像一个站在窗边的人,并没有偷偷凿开别人的墙,而是把原本就从各个窗口漏进来的光,一束束重新校准,最后照成一张清晰的地图。它不是为了制造神秘,而是为了对抗碎片化。不是为了渲染阴影,而是为了让原本四散的公开信号彼此看见对方。
如果把它拟人化,它像谁
我会说,ShadowBroker 像一个沉默寡言但眼神极亮的情报调度官。
它不喜欢大喊大叫,也不急着替你下结论。它只是把世界各处飘来的讯号接住,再一层层摊开给你看。天上的飞机刚刚转向,它会先抬头;海上的超级游艇换了航线,它会低头在海图上记一笔;某片区域的 GPS 干扰值开始异动,它会轻轻敲一下桌面;冲突、地震、野火、空气质量、数据中心、军用基地、断网区域、无线电节点、卫星任务类型,全都像它办公室里不同部门的值班员,不断往前送纸条。
而它自己,则像那个总能在一堆杂乱纸张中迅速铺出全貌的人。
你甚至会觉得它有点戏剧化。它穿着一种明显偏军事风格的 UI 外套,界面像一间赛博朋克味十足的态势室,视觉上故意保留“黑箱控制台”的锋利感。但 README 也坦率地说了,这种军事风格只是美学选择,工具本身完全基于公开、开源的 OSINT 数据,没有使用任何机密、受限或非公开数据,连航母位置也只是基于公开报道做出的估算。(github.com)
这点反而让我更喜欢它。
因为它不是靠“我知道你不知道的秘密”来制造魅力,而是靠“我把大家都能接触到的信息,整理成了一块真正有洞察力的屏幕”来建立价值。
它能看什么
ShadowBroker 的厉害,不在于某一个图层有多花哨,而在于它把许多原本彼此分居不同网站、不同协议、不同社区的数据,拉进了同一个空间里。
README 里列出的使用场景非常抓人:
它可以追踪 Air Force One、富豪和独裁者的私人飞机,以及正在广播 ADS-B 的军用加油机、ISR 平台和战斗机;美国总统和副总统相关机组起飞后会被高亮并持续监控。它还可以让 AI agent 通过一个 HMAC 签名的 agentic command channel 作为共同分析员接入,支持 OpenClaw 以及任何兼容协议的 agent,包括 Claude、GPT、LangChain 或自定义代理;这些 agent 能读写全部 35+ 数据图层、控制地图、下钉点、执行 SAR 地表变化分析、参与网状网络与告警投递,看到的内容与操作员完全一致。除此之外,它还内置 InfoNet 实验性测试网络,用于去中心化情报通信;支持带 gate persona 的混淆传输、Dead Drop 点对点交换,以及内建终端 CLI。你还可以在地球任一点右键调出国家 dossier、国家元首、人口、语言、Wikipedia 摘要和最新 Sentinel-2 图像;也可以点开 KiwiSDR 节点直接收听短波,点开警用扫描源直接监听;查看超过 11,000 路 CCTV 摄像头;观察 GPS 干扰区域;监控不同任务类型的卫星;追踪约 25,000 艘 AIS 船舶、渔业活动和超级游艇;跟踪地震、火山、野火、极端天气与空气质量;映射军用基地、3.5 万多个发电站、2000 多个数据中心以及互联网中断区域;连接 Meshtastic 和 APRS 无线电网络;甚至通过 SAR 数据穿透云层监测毫米级地表变化、洪水范围、植被扰动和灾害评估。(github.com)
这段内容读完,会产生一种很奇妙的感受:ShadowBroker 不是在给你一个单独的望远镜,它是在给你一整间可以切换观测模式的观察室。
而且这间观察室里的每个“观察员”都不太一样。
飞机图层像一个抬头看天、耳朵特别灵的飞行管制员。
船舶图层像个把全球海面当作自己账本的港口老船长。
卫星图层像夜里总不睡觉的轨道记录员。
地震和野火图层则像神经特别敏锐的地壳与大气监听者。
CCTV、网联设备、无线电和互联网中断图层,又像城市毛细血管里的低语。
它们单独看已经各有价值,放到一起以后,才真正开始显露出 ShadowBroker 的野心:不是让你看某个点,而是让你同时看见点和点之间可能正在形成的关系。
真正迷人的地方,是它鼓励你把 AI 接上来
这可能是 ShadowBroker 最像“现在进行时”的一部分。
项目描述里明确写着:你可以把 AI agent 挂接进来,让它在这些数据中挖出过去未被看见的相关性。README 进一步给出了更具体的轮廓:这个 agent 不是一个被动旁观的聊天机器人,而是一个共同分析员,可以通过 HMAC 签名命令通道,读写所有主要图层、控制地图、进行 SAR 地表变化分析、操作网状通信和告警流程。(github.com)
这个设定非常有意思。
因为传统意义上的“情报平台”往往止步于可视化,而 ShadowBroker 明显在往“分析协作平台”方向走。地图不只是展示,它开始变成工作台;AI 不只是旁边点评,它能真正下场,把那些原本需要人工在多个窗口里来回切换、比对和记忆的流程,往自动协同分析推进一步。
如果把整个系统想象成一间态势室,那 AI agent 就像 ShadowBroker 招来的新分析员。它不用喝咖啡,不会抱怨夜班,但能盯着那 35+ 个图层持续找规律。飞机异常、船舶变化、地表扰动、冲突事件和信号干扰,可能原本只是分散在不同面板上的几块拼图;一旦 agent 接入,它就有机会把这些碎片拼成更大的画面。
ShadowBroker 不是简单地说“我们兼容 AI”,而是像真的在给 AI 发工位。
InfoNet 这一笔,让它不只是看世界,还试图让情报节点彼此讲话
如果说前面的部分已经够像一块“全球态势地图”,那 InfoNet 的加入则让 ShadowBroker 味道变得更特别了。
README 里把它描述为一个实验性测试网,带有去中心化情报网格与 Sovereign Shell 治理经济结构,是内建在 OSINT 平台里的通信与治理层。早在 v0.9.6 时它就具备通信层能力,到 v0.9.7 时进一步扩展为更完整的治理经济框架,并且明确说明:这仍是实验性测试网,不保证隐私,不应被视为私密通信工具,也不是成熟的生产级治理系统。通信层包含全局的混淆消息中继、Wormhole relay、gate persona、Ed25519 规范签名、transport obfuscation,以及分为 INFONET、MESH、DEAD DROP 的三标签聊天面板;其中 DEAD DROP 被描述为当前最强的一条消息通路。(github.com)
这部分内容读起来,会让人觉得 ShadowBroker 不甘心只当一个“看板”。它像一位把地图摊开后还不满足的指挥官,开始搭建起地图背后的通信暗道、身份机制和节点间的消息流转方式。
当然,README 说得也很诚实:这是实验性的,没有隐私保证,协议还在持续加固。(github.com)
但恰恰是这种诚实,让它更有真实的生命感。它不是高喊“我们已经完美”,而是像一个还在扩建中的地下情报枢纽,一边运行,一边加固,一边把新的走廊和隔间继续往前挖。
它不只会炫技,也会把边界写清楚
ShadowBroker README 里有两种看起来彼此对冲、其实非常加分的气质。
一方面,它很张扬。名字、UI、地图风格、功能排列,都有一种带着夜色、金属感和赛博作战室味道的表达。它知道自己“看起来像什么”,也不介意把这种氛围做满。
但另一方面,它又相当清楚地给边界立了牌子。README 反复强调:项目完全基于公开可用、开源的 OSINT 数据;不使用机密、受限或非公开数据;军事风格 UI 只是审美;Shodan 连接器只是可选的、本地调查叠加层,需使用操作者自己的 SHODAN_API_KEY,且依然受 Shodan 服务条款约束。(github.com)
这种边界意识很重要。
它像一个穿着战术夹克的人,进门第一句先说清楚:“我这身打扮确实有点重口味,但我只是把公开信息做聚合,不碰你以为的那些禁区。”这不是降调,反而是一种成熟。因为真正靠谱的项目,不会拿模糊地带当卖点,而是会把自己踩在哪些地板砖上说清楚。
快速启动非常直接,几乎是在邀请你立刻把它点亮
如果你看到这里已经有点心动,那 ShadowBroker 在上手门槛上的表现会进一步增加好感。
README 给出的 Quick Start 很直接,默认推荐 Docker 方式部署,并且区分了从 GitHub 拉取 GHCR 镜像,以及从 GitLab 拉取对应镜像的两条路径。GitHub 默认路径如下:克隆仓库后进入目录,执行 docker compose pull 和 docker compose up -d,随后打开本地 3000 端口查看仪表盘。GitLab 路径则是使用附加 compose 文件拉取和启动对应容器。README 还特别说明,两条路径产出的容器完全一致,来源代码、CI 和镜像字节级一致,用户只需选择自己更习惯的生态即可。(github.com)
1 | git clone https://github.com/bigbodycobain/Shadowbroker.git |
启动后直接打开:
1 | http://localhost:3000 |
这类启动方式最讨喜的地方在于,它不像有些项目那样,介绍里写得像未来科技,真正上手时却让人陷入半天的环境搭建泥潭。ShadowBroker 给人的感觉更像是,它已经把大部分复杂度折进镜像里了,然后对你说:来,点火就行。
README 还顺手把一些常见问题提前写好了。比如如果后端端口 8000 已被占用,可以在 .env 中设置 BACKEND_PORT=8001;如果新闻、UAP、基地、污水等层长时间空白,可以检查是否因内存不足导致后端 OOM 重启;默认 compose 给后端分配 4GB 内存,如果宿主机内存更少,可以把限制改成 3GB,但某些较重图层会变慢;对于 Podman 用户,也给出了 compose provider 的安装和等效命令。(github.com)
这意味着 ShadowBroker 不只是告诉你“能启动”,它还像个经验丰富的值班工程师,提前在门口贴好了故障处理手册。
更新方式也很利落,不故作高深
ShadowBroker 使用预构建 Docker 镜像,所以更新本身也很干脆:直接拉取最新镜像,再重新启动容器即可。README 明确说,更新通常只要几秒钟。(github.com)
1 | docker compose pull |
如果你是从更老的版本过来,README 还特别提醒:由于 2026 年 3 月进行过一次仓库迁移并重写了提交历史,过旧的克隆仓库可能无法通过正常 git pull 修复;此时应该备份配置、删除旧目录并重新克隆,然后再重新拉镜像启动。如果你发现 docker compose up 居然开始执行 apt-get、npm ci 或 pip install 这类从源码构建步骤,那就说明你用的是旧仓库副本,需要 fresh clone。(github.com)
这类说明特别像一个老练的项目维护者在对你说:别和旧缓存硬扛,该重来就重来,省时间。
如果你喜欢折腾,它也给了开发者足够的入口
ShadowBroker 并没有只满足于“跑起来”。如果你想真正改代码、从源码跑,它也提供了相对完整的开发者路径。
README 里写明了开发环境前提:Node.js 18+ 与 npm,Python 3.10、3.11 或 3.12 搭配 pip,此外 aisstream.io 的 API key 是必需的,opensky-network.org 和 lta.gov.sg 则是可选。开发安装流程分成后端和前端两部分:先克隆仓库,进入 backend 创建虚拟环境并执行 pip install .;然后设置 .env 中的 API key;再切换到 frontend 执行 npm ci。运行阶段则在前端目录直接执行 npm run dev,同时启动 Next.js 前端与 FastAPI 后端。README 也补充了可选的 pre-commit hook 安装方式。(github.com)
1 | git clone https://github.com/bigbodycobain/Shadowbroker.git |
运行后会启动:
http://localhost:3000的 Next.js 前端http://localhost:8000的 FastAPI 后端 (github.com)
这种结构看下来,ShadowBroker 像一个外表冷峻、内里倒很愿意配合的项目。它可以让普通用户一键部署,也允许开发者走进后场,直接碰到它的骨架和线路。
它还有本地 AIS 接收玩法,带着一点无线电世界的浪漫
README 里我很喜欢的一段,是它对本地 AIS Receiver 的支持。
如果你有 RTL-SDR 加上 AIS-catcher,ShadowBroker 允许你把自己本地接收到的船舶 AIS 数据喂给平台。这样你能获得本地海域的实时船舶覆盖,而且不需要 API key。README 给出的做法包括使用 Docker 方式把解码数据 POST 到 ShadowBroker 接口,或者直接原生命令运行 AIS-catcher。它还说明了 AIS-catcher 会监听特定 VHF 频率,并按周期把解码后的船舶数据送入系统;最终这些船只会和全球 AIS 流一起显示在地图上。它甚至连典型天线覆盖距离都写出来了:基础配置大约 20 到 40 海里,使用架高的海事 VHF 天线则可超过 60 海里。(github.com)
1 | docker run -d --device /dev/bus/usb \ |
1 | AIS-catcher -H http://localhost:4000/api/ais/feed interval 10 |
这一段特别有“地面感”。
因为它让 ShadowBroker 不只是一个从远程 API 吸数据的大屏,而像一位愿意接住你自己天线和设备的现场协调员。它告诉你:如果你手里真的有接收器,来,把你耳朵听到的海上传闻也接进来,我们把它一起画到图上。
数据图层的广度,才是它真正的压迫感来源
光说“很多图层”还是太抽象。README 给出的 Data Layers 列表很长,而且几乎所有图层都可以独立切换。包括但不限于:商业航班、私人航班、私人飞机、公务与军用航班、重点追踪航空器、GPS 干扰、航母/军用/货船、民用船只、邮轮与客轮、重点游艇、渔业活动、列车、卫星、SatNOGS、TinyGS、近 24 小时地震、近 24 小时火点、火山、天气预警、空气质量、乌克兰前线、乌克兰空袭告警、全球冲突事件、CCTV Mesh、互联网中断、数据中心、军用基地等。(github.com)
这类图层结构之所以让人震撼,是因为 ShadowBroker 不是“把同类信息做很多”,而是“把不同维度的现实拼到一起”。
天上飞的、海上漂的、地上烧的、地下震的、城市里看的、网络上断的、轨道里转的、边境线上变的,都被塞进同一张地图里。它像一个特别擅长跨领域串线索的人,把交通、能源、冲突、基础设施、环境、通信和观测系统通通摆上了同一张桌子。
这会自然催生一种新的使用方式:你不只是看某一个图层,而是开始问,这几个图层之间有没有关系。
而这,也恰恰是它鼓励 AI agent 参与分析的理由。
ShadowBroker 的“气质”很罕见
很多开源项目的优点是功能扎实,但表达乏味;也有一些项目视觉很猛,但内容经不起细看。
ShadowBroker 的特别之处在于,它兼具一种戏剧化的外壳和相对扎实的现实主义骨架。
它的名字带着黑市情报贩子的气味。
它的界面像深夜里只开着冷色屏幕的地下控制室。
它的数据种类又极容易让人联想到电影里的“总控大屏”。
但你一层层往里看,会发现它其实很清楚自己在做什么:聚合公开数据、自托管运行、不给你做神秘夸张的超能力承诺、鼓励审计、不给账户、不给遥测、不给广告埋点,还非常认真地把安装、更新、调试和开发路径写得明明白白。(github.com)
这种项目会让人联想到一类很迷人的角色:看上去像反派,做起事来却比很多“正经人”还讲流程、讲边界、讲自知。
它适合什么样的人
如果你是传统意义上的 OSINT 爱好者,ShadowBroker 会像一块终于肯把不同信号都请上台的中央屏幕。
如果你是研究者,它会像一间把跨源数据摆平整的实验桌。
如果你是无线电爱好者,它会因为 KiwiSDR、Meshtastic、APRS 和 AIS 本地接入而多出很多可玩性。
如果你是基础设施观察者,你会盯着数据中心、互联网中断、发电站、天气、火点和地震图层看很久。
如果你是 AI 工具链和 agent 工作流的关注者,你会对它的 agentic command channel、地图控制能力和多图层可编程分析潜力格外感兴趣。(github.com)
它不一定适合所有人,但它很适合那些对“世界是如何通过公开信号持续泄露自己状态”这件事充满兴趣的人。
它最有分量的一点,是把“公开可得”这件事做得不再平庸
公开数据这四个字,很多时候很容易被低估。
因为大家总觉得,真正有价值的情报应该来自不公开的地方。可 ShadowBroker 的存在,恰恰像是在提醒我们:大量足够有意义的信号,其实一直都在公开世界里,只不过它们被分散、被稀释、被藏进了不同协议、不同平台、不同查询方式和不同圈层的工具链里。
ShadowBroker 做的,不是神化公开数据,而是为公开数据重建舞台。
它把这些平时显得零散的信号搬到同一个地理空间中,让它们开始彼此照见。飞机不再只是飞机,船不再只是船,地震不再只是地震,卫星不再只是轨道参数,数据中心不再只是静态点位,断网不再只是新闻标题。它们开始共享同一张地图、同一种时间感、同一种可观察性。
而当你把这些都放在一起的时候,世界会突然显得没那么“碎”了。
结尾
ShadowBroker 这个项目最迷人的地方,不只是它很酷,也不只是它图层很多,更不是它恰好踩中了 OSINT、地图、AI 和赛博朋克审美这些高热词汇。
真正让它站住脚的,是它把一个很容易流于猎奇的方向,做成了一个具有工程感、边界感和观察价值的系统。
它像一位夜班地图管理员,把世界各地的公开信号一一接进来,然后在黑色屏幕上铺成一张不眠的图。
飞机从云层掠过,它知道。
船舶穿越海面,它知道。
卫星掠顶而行,它知道。
某地震了一下、某地火起了、某地断网了、某地开始出现异常信号,它也知道。
它不替你判断一切,但它把原本彼此失联的信息重新拉到一个坐标系里。
它不制造秘密,但它让公开世界第一次显得如此密集而连贯。
它不只是一张地图,而像一个愿意把全球公开情报都接上总线的情报节点。
如果说很多软件是在帮你完成任务,那 ShadowBroker 更像是在帮你重新观看这个世界。
不是透过一扇窗。
而是透过一整面会发光、会更新、会低声汇报现实的墙。
