一
2019 年 7 月的一个星期,伊朗德黑兰的一个开发者打开 GitHub,发现自己几年来积累的私有 repo 全部不可访问。他在 Medium 上发了一篇愤怒的帖子,详细描述这种感受——“没有任何预警,没有数据导出选项,多年的工作变成不可读的乱码”1。
这篇帖子在几小时内被传遍英文 Hacker News、Reddit、Twitter。GitHub 的 CEO Nat Friedman 当天回应:是的,GitHub 必须遵守美国出口管制法律。位于伊朗、叙利亚、克里米亚的用户的私有 repo 已被锁定2。
那个星期是开源运动一个微妙的分水岭。
在那之前,“开源是全球公地”这种话术虽然有点理想化,但还能维持。GitHub 是个全球平台——任何人都能注册、贡献、协作。整个开源生态默认这种全球性。
那个星期之后,开源生态第一次直接面对一个事实:它最大的协作基础设施是一家美国公司。美国公司必须遵守美国法律。美国法律里有制裁条款。制裁条款会被执行。开源生态的“全球性”是有边界的——边界由美国财政部的 OFAC SDN list 决定。
这件事不是 2019 年突然出现的。它的法律基础在 2014 年克里米亚事件之后就建立了。GitHub 在 2014-2018 年期间对这种法律义务执行得比较松散——基本是“假装看不见”。但 2018 年 6 月 Microsoft 用 $75 亿美元买下了 GitHub,作为一家大型上市公司,Microsoft 的合规要求严格得多3。
2018 到 2019 年那段时间,Microsoft 应该是做了内部合规审查,决定 GitHub 必须开始执行 OFAC。具体哪个律师做的决定,公开材料里没有。但效果在 2019 年 7 月显化:伊朗、叙利亚、克里米亚账号被批量锁定。
二
具体被锁定的内容是这些:
- 私有 repo:完全不可访问。用户不能查看、不能 clone、不能 push。
- 付费账号:所有 GitHub Pro、Team、Enterprise 订阅被取消。
- Marketplace:用户不能购买或安装任何 Marketplace 应用。
- 某些 collaboration 功能:私有 repo 的 issue tracker、Pull Request、wiki 全部不可访问。
没有被锁定的:
- 公共 repo 仍可读
- 公共 issue tracker 仍可读
- 但不能 push 到公共 repo(贡献被阻止)
这种“读得了但贡献不了”的状态本身是个怪异的设计选择。它表面上保留了“信息可访问”,实际上让伊朗、叙利亚、克里米亚的开发者无法参与全球开源协作——他们能看代码,但不能修改、不能发 PR、不能 fork4。
执行方式不是按国籍——按 IP 地址 + 支付历史。这造成了大量误伤:
- 一个住在柏林但访问伊朗探亲的德国人,会被 IP 检测出来锁账号
- 几个住在拉脱维亚里加的开发者被锁——拉脱维亚北部某些地区的 IP 被错误识别为“俄罗斯地区”5
- 一个住在克里米亚的乌克兰开发者——他因克里米亚 2014 被吞并而“自动变成”被制裁地区——给项目维护者写公开信,说他可能无法继续维护 GameHub 项目6
- 部分美国伊朗裔在到伊朗探亲期间被临时锁定
GitHub 后续获得了 OFAC 的一项 license,允许向伊朗个人开发者提供云服务(仍排除政府和被制裁实体)。这缓解了部分误伤,但没有改变结构事实7。
三
为什么 GitHub 在 2019 年开始这么做?为什么不是 2014 年或 2017 年?
答案有几层。
第一层是法律。OFAC SDN list 的执行理论上一直是强制性的。一家美国注册公司向 SDN list 上的实体提供服务在法律上违反 IEEPA(International Emergency Economic Powers Act)。但执行这个法律的强度取决于:(a)公司的合规态度;(b)OFAC 的监督资源;(c)政治环境。
2014-2018 年间,OFAC 主要执行金融制裁——禁止美国银行处理 SDN 账户。它对“软件服务”层面的执行较松散。但 2018-2019 年情况变了。Trump 政府对伊朗加码制裁(退出伊核协议、加强制裁体系),OFAC 资源向“科技服务”层面延伸。同时几个其他案例发生:
- 2017 年 Apple App Store 因 OFAC 撤销了某些伊朗开发者的应用
- 2018 年 Slack 删除了某些伊朗用户账号
- 2018 年 Adobe 撤销了伊朗用户的 Creative Cloud 服务
GitHub 在 2019 年才执行类似政策,已经是相对晚的——它当时仍然是 Microsoft 收购完成不到一年时的状态。Microsoft 内部合规团队应该是在 2018-2019 年期间完成审查,决定 GitHub 必须跟上其他 Microsoft 业务的 OFAC 标准8。
第二层是商业。Microsoft 在 2018 年 6 月以 $75 亿美元买 GitHub。这笔买入的核心价值是 GitHub 在企业市场的地位——它是全球最大的代码托管平台,财富 500 强公司多数都在用。任何 OFAC 违规事件如果发生,会被监管者用来挑战 Microsoft 的整体合规——这种风险对一家年营收 $1100 亿美元的公司来说不可接受。
第三层是政治。2018-2019 年正是美国政府对中国、伊朗、俄罗斯加码科技封锁的时期。OFAC 对软件服务的执行被纳入这个更大的政治议程。如果 GitHub 不主动合规,可能面临监管部门施压。
把这三层放在一起,2019 年 7 月的封锁就不是 GitHub 单独决定——是美国合规生态的整体演化结果。
四
让我们停下来看一个具体的人物——那位克里米亚的 GameHub 维护者。
GameHub 是一个 Linux 游戏管理器——给 Linux 用户提供一个统一界面管理 Steam、GOG、Epic Games 等不同游戏平台的库。它有几十万用户,主要是 Linux 桌面 enthusiasts。维护者一个人——一位住在克里米亚的乌克兰开发者。他在 GitHub 上维护项目,靠社区贡献 + 一点 Patreon 收入9。
2014 年俄罗斯吞并克里米亚之前,他是普通的乌克兰开发者。2014 年之后他“自动变成”克里米亚地区开发者——克里米亚被美国制裁体系视为俄罗斯吞并的领土,落入制裁范围。
5 年后,2019 年 7 月,他突然失去了 GitHub 私有 repo 访问。他可以读公共 repo,但无法 push、无法处理 PR、无法管理 issue。他在 GameHub 的 README 里发布了一份公开声明:他可能无法继续维护这个项目,因为他不能再用 GitHub 协作。
这件事没引起主流媒体多少关注。它是一个小项目,一个小开发者,一个不为人知的边缘地理。但它精确呈现了“制裁穿透代码”的一种典型方式:
- 这位开发者没有犯任何错——他没有为俄罗斯政府工作,没有为军方写代码,他在做一个 Linux 游戏管理器
- 制裁的目标不是他——是俄罗斯吞并的克里米亚地区
- 但他生活在那个地区——这就足够触发 GitHub 的合规算法
- 他的项目(GameHub)跟政治完全无关——但项目能不能继续维护,取决于一项他个人无法影响的国际法律变化
这是开源运动在 2014 年之前没有正面回答过的一种状况:代码可以被任何人写,但平台不一定接受任何人贡献。GameHub 维护者仍然能在本地写代码——但他失去了把代码连接到全球协作流程的能力。
他后来怎么办?公开材料显示他尝试用 VPN(违反 GitHub TOS)、尝试自托管 Gitea(迁移工作量太大)、尝试请其他维护者代为发布(找不到稳定接手者)。GameHub 项目的活跃度从 2019 年起逐步下降。到 2026 年这个项目基本停滞——没有正式宣布“放弃”,但已经几个月没有 commit。这是制裁的具体代价:一个有用的开源项目缓慢死亡,因为它的唯一维护者失去了协作平台10。
五
GitHub 2019 之后五年,2022 年 2 月,俄罗斯入侵乌克兰。
这一次 GitHub 的反应比 2019 年精细。它没有像 2019 年那样按地理位置对俄罗斯境内所有用户广撒网。相反,它针对具体被制裁的俄罗斯实体:Sberbank(俄罗斯储蓄银行)、Gazprom(俄气)、被列入 SDN list 的国防工业实体、Yandex 的部分子公司等11。
这种精确化反映了几件事:
- GitHub 学到了 2019 年广撒网造成的合规风险(误伤会引起诉讼、PR 危机)
- OFAC 的 SDN list 在俄罗斯领域有更清晰的实体级清单,便于精确执行
- 俄罗斯本身是个跨国科技市场——粗暴封锁会影响 GitHub 的商业利益(俄罗斯有大量个人开发者)
所以 GitHub 在 2022 之后采用了双轨:俄罗斯个人开发者基本不受影响;俄罗斯被制裁实体及其员工被精确封锁。这种精确化让“误伤减少”,但本质没变——美国法律决定了一家美国公司能服务哪些客户。
对俄罗斯生态的实际影响:
- 大型俄罗斯科技企业开始大规模迁移到自托管 GitLab 或本土 forge 平台
- GitFlic(俄罗斯本土 forge)用户在 2022-2024 年增长几倍
- 俄罗斯政府发布 Decree 166 要求关键信息基础设施必须使用本土软件12
- 一些俄罗斯开源项目(如 ClickHouse 的前身、Postgres Pro 等)开始更明确地“主权化”——明确自己的法律实体在哪里,明确自己接受哪国资助
俄罗斯不是 2014 年的 GameHub 维护者那种小尺度——它是一个大国,有自己的科技生态。它对 GitHub 制裁的响应不是“个人放弃”,是“国家级迁移”。这种迁移本身证明了 GitHub 制裁的双向效应:当一个全球平台被国家化执行时,另一些国家会建立自己的备援。
六
把 GitHub 2019 和 GitHub 2022 看完之后,我们到 2024 年 10 月。
那个月最让开源社区震惊的不是 GitHub 的事——是 Linux 内核的事。
2024 年 10 月 18 日,Linux 内核 stable 分支负责人 Greg Kroah-Hartman 发送了一个 patch 到 LKML(Linux Kernel Mailing List)。这个 patch 修改 MAINTAINERS 文件——从中删除了 11 个名字。Greg KH 的 commit message 只有两句话:
“Remove some entries due to various compliance requirements. They can come back in the future if sufficient documentation is provided.”13
被删除的 11 个名字几乎全部是俄籍 maintainer。具体名字在不同来源报道里有差异(11、12、“more than a dozen”),但几乎所有使用 .ru 邮箱地址——多数关联到俄罗斯科技公司:Baikal Electronics(俄罗斯本土 CPU 厂商)、Yandex(部分子公司)、Open Mobile Platform、Linaro Russia 等14。
Baikal Electronics 在 2022 年被美国加入 OFAC SDN list。其他几家公司也在 list 上或被 list 上的母公司控制。
LKML 上立即有人质疑这个删除。Geert Uytterhoeven 是一位长期 Linux 开发者(受雇于 Sony),他在邮件中问:
- 什么是 “compliance requirements”?
- 什么是 “sufficient documentation”?
- 谁定义的标准?
Greg KH 没有详细回复。但后续邮件中,James Bottomley(受雇于 IBM 的 Linux maintainer,长期参与法律合规讨论)给出了精确回答:
“如果你的公司在 U.S. OFAC SDN list 上,受 OFAC 制裁项目约束,或被 list 上的公司拥有/控制,我们与你的协作能力将受限,你不能出现在 MAINTAINERS 文件中。”15
10 月 23 日,Linus Torvalds 出面表态。这是 Linus 第一次在这件事上公开说话:
“The change was done clearly, it’s not getting reverted, and multiple random anonymous accounts trying to reverse it wouldn’t change anything.”16
Linus 同时表达了个人立场——他明确反对俄罗斯入侵乌克兰,所以他个人也支持这个合规决定。但他强调核心不是个人立场,是法律合规:Linux Foundation 是美国注册的非营利组织,必须遵守 OFAC。
七
要看清楚 2024 年 10 月这件事,需要看 Linux Foundation 的法律身份。
Linux Foundation 是个 501(c)(6) 贸易协会,注册在加州(后来迁到 San Francisco / Delaware)。它的会员是公司(Google、IBM、Microsoft、Huawei 等),不是个人 maintainer。它的角色是:
- 持有 Linux 商标
- 雇佣几名核心 maintainer(Linus 自己就受雇于 Linux Foundation Fellows 项目)
- 管理 CI、build 系统、git 基础设施
- 提供法律保护(如果有人起诉 Linux 项目,LF 应诉)
- 处理合规事务(包括出口管制、税务、商标)17
注意这个角色清单的最后一项。Linux Foundation 是法律实体,它必须遵守注册地法律——美国法律。这就给了 OFAC 一个直接的杠杆点:如果 LF 不遵守 SDN list 约束,OFAC 可以起诉 LF;如果 LF 被起诉,整个 Linux 项目的法律基础设施会被冻结。
Greg KH 作为 LF Fellows,他的工资从 LF 来。他执行 OFAC 合规不是因为他个人有政治立场——是因为他作为 LF 员工有合同义务遵守 LF 的合规决定。LF 的合规决定必然是“我们不能让 SDN list 上的实体的员工保持 maintainer 状态”。
这就是 2024 年 10 月那个决定的真正逻辑。它不是某个人的选择——它是法律实体身份的必然结果。
读懂这一点,几个 derivative 结论变得明显:
- OpenStreetMap Foundation 没做类似的事——因为 OSMF 注册在英国,不在美国 OFAC 管辖
- PostgreSQL 全球开发组没做——因为 PostgreSQL 没有强主导的美国法律实体(治理由分散的 Core Team 控制)
- Apache Software Foundation 至 2026 年 5 月没做——因为 Apache 项目的中国/俄罗斯主导项目较少有与 SDN list 实体的强关联
- Mozilla Foundation 没做——因为 Mozilla 的项目(Firefox、Thunderbird)的 maintainer 多数不与被制裁实体强关联
每个项目的“对 OFAC 暴露程度”取决于:(a)注册地是不是在美国;(b)有没有 maintainer 在被制裁实体工作;(c)项目治理结构是否允许中央化合规决定。Linux 在三个维度上都“高暴露”。所以 2024 年 10 月发生在 Linux 上,不是偶然。
八
被删除的 11 名俄籍 maintainer 是谁?
公开材料中,一些名字被报道过(LWN.net 的文章包含部分名单),但本书不重复点名——保护他们的隐私是基本伦理。可以说的是这些人的共同特征:
- 几乎全部使用 .ru 邮箱
- 多数为 Linux 内核某个具体子系统的活跃 maintainer——他们的贡献长期存在于 Linux git history 里,往往十年以上
- 多数与俄罗斯科技公司有正式雇佣关系
- 多数个人在公开邮件列表中没有表现过亲战立场(多数维持中立专业的工作态度)
Bruce Momjian——PostgreSQL Core Team 创始成员之一——在 2022 年俄乌战争后接受 Percona Community 播客采访时谈过类似情况(PostgreSQL 中的俄籍贡献者)。他的核心观察:
“We have a lot of contributors from Russia. Many of them have been with us for many, many years. Most of them, when this war started, were privately devastated. Some of them, we even know personally that they oppose the war. But they can’t say it publicly because they live in Russia.”18
把这段话放到 Linux 11 人事件上读:被删除的 maintainer 中,有相当一部分人个人是反战的——但他们在俄罗斯生活和工作,公开表达反战立场会让他们失去工作甚至个人安全。结果是他们处在一个不可解的困境:他们没法证明自己个人立场,但他们的雇主关联让他们被列为合规风险。
LF 处理这件事时的“留口子”机制——“They can come back in the future if sufficient documentation is provided”——理论上让被删除的人可以通过证明“我的雇主不在 SDN list 上”来回归。但实际上:
- 多数被删除的 maintainer 的雇主确实在 SDN list 上或被 list 实体控制
- 即使个人辞职跳槽,新雇主仍然必须不在 SDN list 上——这在俄罗斯科技行业越来越难
- 而且很多被删除的人长期是 Linux 内核某个子系统的核心——他们的工作生活已经深度嵌入这个角色
到 2026 年 5 月(事件 19 个月后),没有任何公开记录显示有任何一名被删除的 maintainer 已经回归19。“门是开着的”在实操中是“门关上了”。
九
把 GitHub 2019 + Linux 2024 放在一起看,会发现一个清晰的轨迹。
国家级(2019):广撒网。所有伊朗、叙利亚、克里米亚 IP 都被锁。误伤率很高。 实体级(2022 俄罗斯):精确化。只针对 SDN list 上的具体公司及其员工。误伤减少。 Maintainer 级(2024 Linux):高度精确。具体到 MAINTAINERS 文件里的 11 个名字。完全没有误伤——但也没有任何缓冲。
每一步都让制裁的执行更精确、更深入。从“基础设施访问”到“协作能力”到“贡献者身份”。
这种深入有政治含义。早期“国家级”封锁可以被解读为“美国针对几个特定国家”——这种叙事虽然让被影响的人不开心,但至少能被理解为“标准的国际政治”。
到“maintainer 级”封锁,叙事变了。它不再是“美国 vs 几个国家”——是“美国法律穿透了开源协作的具体结构”。一个 Linux 内核某子系统的 maintainer,因为他/她个人雇主关联,被从 MAINTAINERS 文件删除。这件事在 Stallman 1985 年写 GNU Manifesto 时是完全不可想象的——它把“代码协作”和“国家合规”之间的距离压到了零。
十
这种“距离压到零”的状态有一个不容忽视的反向效果:它在加速反向主权化。
中国 2020 年成立 OpenAtom Foundation,明确目标是建立“不依赖美国法律实体”的开源基础设施。openEuler、OpenHarmony 等项目都迁到这个基金会。这个决定在 2020 年看起来是“中国主权战略”——但从 2024 年 Linux 11 人事件的角度看,它是预见性的。OpenAtom 让中国开源项目不再暴露在 OFAC 风险下——至少不直接暴露20。
俄罗斯 2022 年 Decree 166 强制国企迁移本土软件——同样的逻辑。它不是“反美主义”——是承认“如果继续依赖美国法律实体的开源平台,会被穿透”。
欧盟 2022 年成立 Sovereign Tech Fund——同样的逻辑的温和版本。德国政府意识到“开源关键基础设施”需要“主权资助”——不能完全依赖美国公司的善意。
每一个反向主权化措施都被 2019 → 2022 → 2024 的精确化轨迹加速。当美国制裁穿透开源协作越深,其他国家越有动力建立平行生态。
到 2026 年初,这种“reactive sovereignty”已经是开源世界的实际地图。Linux 仍然是全球项目——任何人都可以贡献——但 Linux Foundation 在美国,OFAC 风险是底层事实。OpenEuler 是中国项目——它在中国合规框架下运作,避开 OFAC,但也避不开中国的网信办备案。Astra Linux 是俄罗斯军用项目——它处理俄罗斯国防部 + 国资委的需求,在西方制裁环境下完全自给。
每一个生态都不“全球”——每一个都被某个国家主权框架定义。但它们之间仍然存在协作——比如 Linux kernel 仍然 accept 来自世界各地的贡献(只是不能让 SDN list 上的人当 maintainer)。这是一种新的、复杂的、不舒服的状态:开源仍然是开源,但它运行在分裂的主权地图上21。
十一
最后回到那个 2024 年 10 月 18 日的 Greg KH 邮件。
那两句话——“Remove some entries due to various compliance requirements. They can come back in the future if sufficient documentation is provided.”——表面上是无情的官僚语言。但读懂它的具体含义,会理解 Greg KH 在那个时刻的真实处境。
Greg KH 不是政治推动者。他是 Linux stable 分支的技术 maintainer,从 2000 年代就开始做这件事。他个人对俄罗斯入侵乌克兰的态度跟很多西方工程师一样——反对,但不是 activist。他做这个删除不是因为他想做——是因为他作为 LF Fellows 有合规义务22。
那两句话的官僚语调,其实是一个长期 maintainer 在做一件他知道会引起争议的事时的自我保护。他没有为决定辩护——因为没法辩护成“合理的”。他也没有谴责俄罗斯——因为这不是他的角色。他只是冷静地宣布:合规要求让这 11 个名字必须移除;如果有人能证明自己不在合规风险里,可以回来。
这种语调有一种荒诞感。它把一个深刻的事件——开源运动结束“代码不分国界”姿态的官方时刻——降到了行政语言层面。它不为大事件做大宣言;它只为合规决定做合规说明。
但这种降级本身就是 2024 年的现实。开源运动没有一个集中的领导能给出“我们要怎么应对这种穿透”的回答。Linus Torvalds 也好,Greg KH 也好,Stallman 也好,Bruce Behlendorf 也好——没有一个人有权威给一个统一答案。每个项目、每个基金会、每个 maintainer 自己处理自己的合规问题。
整个开源生态因此正在分散响应——而分散响应的总和,就是我们在 2024 年 10 月看到的:Linux Foundation 执行 OFAC,OpenAtom 建立中国基础设施,俄罗斯迁移本土,Sovereign Tech Fund 资助欧洲项目,每个区域生态有自己的规则。没有一个统一的“开源运动”立场——只有几个并行的应对策略。
下一章我们要看的是这些应对策略的具体形态——各国的 OSS 国家战略。中国信创、俄罗斯 Astra、欧洲 STF、印度 India Stack——这些不是“反对开源”,是开源在主权穿透下的具体化。
References
-
TechCrunch 2019-07-29: “GitHub confirms it has blocked developers in Iran, Syria and Crimea”. 引述伊朗开发者 Medium 帖。Link →
-
GitHub Docs: GitHub and Trade Controls. 详细描述 sanctioned regions 的具体限制。Link →
-
Tom’s Hardware: “GitHub Blocks Iran, Syria and Crimea-Based Users”. 包括拉脱维亚误伤的描述。Link →
-
GameHub 项目 README 中 2019 年的公开声明,由维护者发布。Tom’s Hardware 等媒体引述。
-
GitHub Trade Controls page 包括 OFAC license 描述。2021 年 GitHub 获得 license 向伊朗个人开发者提供服务。
-
DevPro Journal: “GitHub Restricts Accounts Based on U.S. Export Control and Sanctions Laws”. Link →
-
关于 GitHub 2022 俄罗斯精确化制裁的报道。多家媒体(TechCrunch、Bloomberg、Wired)报道相关具体案例。
-
Wikipedia: Astra Linux. 包括俄罗斯 Decree 166(2022-03-30)的描述。Link →
-
Greg KH 2024-10-18 LKML patch 原文。LWN.net 完整引述。Link →
-
The Record from Recorded Future: “Linux creator approves de-listing of several kernel maintainers associated with Russia”. Link →
-
The Register 2024-10-23: “Linus Torvalds affirms expulsion of Russian maintainers”. 包括 Linus 表态原文。Link →
-
Linux Foundation Annual Report 2023. 描述 LF 的法律角色和会员结构。Link →
-
Percona Community Podcast 68: Bruce Momjian “Impact of the War in Ukraine on the PostgreSQL Community”. Link →
-
LWN.net 与其他 Linux 跟踪报道。截至 2026-05 没有公开记录显示被删除 maintainer 已回归。
-
Wikipedia: OpenAtom Foundation. 2020-06 成立,中国第一个开源软件基金会。Link →
-
Jamestown Foundation: “Open-Source Technology and PRC National Strategy: Part I”. 包括 OpenAtom 战略意义分析。Link →
-
Digital Watch Observatory: “Linux creator supports removing Russian kernel maintainers”. 综合性报道。Link →
-
FreeBSD Forums: “Linus Torvalds affirms expulsion of Russian maintainers”. 开源社区不同立场的讨论。Link →
-
OSTechNix: “Several Russian Maintainers Removed From Linux Kernel”. Link →
-
Linuxharbour: “Linux Creator Supports Removing Russian Kernel Maintainers”. 中立性梳理。Link →
-
U.S. Department of the Treasury OFAC: Specially Designated Nationals And Blocked Persons List. SDN list 是核心法律工具。