前两天看到一条新闻:英国国民健康服务体系(NHS)下令关闭数百个 GitHub 仓库,全部设为私有,原因是安全担忧。
不是某个军用级的加密库,不是核设施控制系统的代码——只是一些普通的医疗数据处理工具。但因为底层依赖了一个被标记为「受管制」的开源组件,整个仓库链都被波及。
这不是孤例。
美国2026财年国防授权法案签署后,从AI到生物技术全面收紧了对华科技投资。与此同时,开源代码的出口管制也在悄然加码。英伟达的H20芯片经历了「批准销售 → 暂停出口 → 访华前暂缓执行」的过山车,但比芯片更隐蔽、影响面更广的,是那行你随手npm install或git clone下来的代码——它可能已经成了某种意义上的「敏感物项」。
一个普通开发者的视角
想象一个场景:
你在做一个小项目,一个 pet project,就是那种大学时期因为「觉得好玩」而写的玩意。它不大,不赚钱,单纯是一个编译器玩具,或者一个机器学习小工具。你把它挂在 GitHub 上,MIT 协议,谁都能用。
突然有一天,有人告诉你:你这个项目里用的一段算法,被列入了出口管制清单。不是因为你在代码里写了什么恶意逻辑,仅仅是因为这个算法所属的领域——比如某种特定的加密方式,或者某种中间表示的编译优化技术——被判定为「可能用于军事目的」。
你怎么办?
你不知道。大多数开发者都不知道。因为我们习惯性地认为开源代码是自由的、开放的、不受国界限制的。但现实是,开源的「开放」正在被地缘政治重新定义。
从「全球公共品」到「受管控技术」
开源软件曾经是人类科技史上最成功的协作范式:一个芬兰大学生写了 Linux 内核,全世界的开发者一起改进它,最终支撑起了整个互联网基础设施。这种模式的前提是——代码没有国籍。
但这个前提正在瓦解。
2024年开始,美国工业与安全局(BIS)陆续将某些AI模型权重、特定类型的编译器优化技术、以及部分加密算法纳入出口管制。这意味着:如果你的项目包含这些技术,你不能简单地把它放在 GitHub 上让所有人下载,尤其是不能让它流向被制裁的国家和实体。
问题的复杂性在于:很少有开源项目的维护者清楚自己的代码里有没有「受管制成分」。你不是在写国防白皮书,你只是写了一行if (condition) { optimize() },而这行代码恰好匹配了某个管制清单里的技术描述。
更隐蔽的连锁反应
NHS 关闭 GitHub 仓库只是冰山一角。
大型企业在采购开源组件时,开始加入「出口合规审查」环节。这听起来很合理——企业要守法嘛。但实际执行中,合规部门为了降低风险,常常采取「一刀切」策略:只要某个组件的上游依赖中有任何来自受管制地区的贡献者,整个组件就被标记为高风险。
结果是什么?
结果是越来越多的开源项目开始自我审查。维护者会问自己:如果我的项目被某个国家的开发者使用,我会不会惹上麻烦?如果我不确定,我是不是干脆把项目设为私有,或者限制某些地区的访问权限?
这是开源社区从未面对过的困境。过去,开源的分裂来自于技术理念(GPL vs MIT,集中式 vs 分布式)。现在,分裂来自于你的代码能卖给谁。
真正受伤的是谁?
大公司有法务部门,有出口合规专家,有专门的工具链来扫描和管理代码中的许可证风险。他们能承受这种复杂性。
真正受伤的是那些小团队和个人开发者。
是那个想在国产芯片上搭一套 AI 推理框架的学生,发现参考代码库里一半的组件都带着「不得出口」的声明。
是那个在技术论坛上问「为什么这个开源项目不让我下载」的嵌入式工程师。
是像林默一样,写了一堆 pet project、把青春熬成 commit 记录、然后在某个深夜发现自己的代码和这个时代的大气候撞了个满怀的程序员。
代码从来没有政治立场。但写代码的人有国籍,托管代码的平台有属地,运行代码的芯片有出口许可证。
结语
我不认为开源会死。Linux 还活着,GitHub 上每分钟还有成千上万的 commit。但开源正在进入一个新的阶段——一个代码需要「签证」的阶段。
对普通开发者来说,这可能意味着:在选择下一个 pet project 的技术栈时,多想一想它的许可证里有没有奇怪的附加条款;在往 GitHub 上传代码之前,多看一眼贡献者指南里的合规提醒。
不是因为胆小,是因为你永远不知道哪行你随手写的代码,将来会出现在哪个国家的审查清单上。
毕竟,在这个时代,一行代码和一颗芯片之间的距离,可能比你想象的更短。
(本文讨论的是结构性问题,不涉及具体政治立场。技术应该有国界吗?欢迎评论区讨论。)