最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

GitHub 有国界:全面封禁美国制裁地区开发者账户

  • 2019-07-29
  • 本文字数:2832 字

    阅读完需:约 9 分钟

GitHub有国界:全面封禁美国制裁地区开发者账户


当 GitHub 被微软收购时,新任 CEO Nat Friedman 曾表示:GitHub 将始终坚持开发者优先并独立运营。但到了今天,这句话也许应该改成:GitHub 将坚持(不受美国制裁地区的)开发者优先。

私人仓库免费了,却不让用了

2019 年 1 月初,GitHub 发布了重磅更新:无限私有仓库免费使用。此良心之举让开发者们一片叫好,许多人表示将从 GitLab 或 BitBuckets 回到 GitHub 的怀抱。可是半年后的今天,许多国家和地区的开发者们却笑不出来了。


事情是这样的:上周,一位伊朗开发者的 GitHub 账号被禁,他在社交媒体上分享了自己的经历,并向 GitHub 官方发起质询。最后得知,因为自己的所在地伊朗受到美国制裁,目前整个伊朗地区的 GitHub 账号均无法使用。更让人愤怒的是,GitHub 在没有任何事先通知的情况下屏蔽了所有伊朗账户,连让该地区开发者下载备份数据的机会都没有。


无独有偶,起初他以为这只是个别事件,可随后在社交媒体上却了解到更多相似遭遇:在他之前,一位克里米亚地区的俄罗斯籍开发者的账号同样遭到封禁。更有甚者,一位居住在芬兰的伊朗籍开发者账户同样遭到了封禁,显然 GitHub 不是单纯地凭借 IP 地址封禁账户,账户的国籍同样是其封禁的考量标准之一。


这时人们才想起,被微软收购后的 GitHub,毕竟本质仍是一家美国企业。开源虽然无国界,但 GitHub 却是有国界的。

开源与封禁,竟是命运的双生子

当开发者们因为“Open Source”的开源概念聚合在一起时,他们脑中想的、口中喊的,都是纯洁、高尚的口号:


  • “开源是没有国界的!”

  • “开源是自由的!”

  • “开源将促进世界的发展!”

  • “开源将帮助落后地区的 IT 建设!”

  • ……


彼时,从没有人怀疑过,崇尚自由的开源,竟然能与封禁联系在一起。更可怕的是,这个封禁的衡量标准,仅以一国之政策为指导方针:任何被美国制裁的国家和地区,其开发者账户都有可能遭到封禁,不管你是真的在利用 GitHub 造核弹,还是托管几个小游戏的代码,你都是被 ban 的对象。


事件起始于一位居住在克里米亚地区的俄罗斯开发者的遭遇:



GameHub 项目的维护者 Anatoliy Kashkin 发出警告,因美国对克里米亚的制裁,GitHub 限制了他这位生活在克里米亚的居民的账号,他可能无法继续维护 GameHub。在俄罗斯与乌克兰交战以及克里米亚脱离乌克兰之后,国际社会对克里米亚进行了制裁。

Kashkin 称他收到通知,“由于美国贸易管制法律,你的 GitHub 账号已被限制。对于个人账号,你被限制只能访问免费的公开库用于个人通过。”Kashkin 解释说,GitHub 限制他创建私有库,关闭了现有的私有库,可以创建公开的库但不能删除。他表示自行托管单一的 git 库的意义不大,毕竟很多人是在 GitHub 上发现 GameHub 的,GameHub 提供了很多有用的社交功能。


事件发酵于一位伊朗地区开发者的遭遇:


伊朗开发者 Hamed Saeedi 发表博文声称,GitHub 屏蔽了他的账号,认为他在利用免费的私有库开发核武器。他称自己从 2012 年开始使用 GitHub,最近收到了与贸易制裁相关的邮件通知。他称 GitHub 屏蔽了所有伊朗账号。


Hamed Saeedi 在 GitHub 上发起了一个项目:github-do-not-ban-us,截止目前已经收获了 6000+ 个 Star,但如果不能得到解封,这些 Star 将毫无用处。


https://github.com/1995parham/github-do-not-ban-us


随后的消息表明:被美国贸易制裁的国家和地区的开发者账号,包括克里米亚、古巴、朝鲜、伊朗和叙利亚。GitHub 封禁的“指导方针”:


  • 根据 GitHub 的服务条款,用户只能按照适用法律访问和使用 GitHub.com,包括美国出口管制和制裁法律。根据美国和其他适用法律,特别指定国民名单和其它被拒绝、被封锁的人士禁止访问、使用 GitHub.com,用户不得代表此类各方使用 GitHub.com,包括受制裁国家 / 地区的政府。

  • 根据美国财政部海外资产控制办公室(OFAC)发布的授权,Github 可允许受美国制裁的管辖区内或通常居住在管辖区内的用户访问某些 Github.com 服务。在访问 GitHub 服务时,这些管辖区内的人员和居民不得使用 IP 代理、VPN 或其他方法来伪装其位置,并且只能使用 GitHub 进行非商业的个人通信。

  • GitHub Enterprise Server 不得出售、出口或再出口到清单中的国家,目前清单中已经包含古巴、伊朗、朝鲜、苏丹与叙利亚。


事件发展至今,包括美国开发者在内的众多群体为以上事件的主人公们表示了同情,并给出了各种各样的建议:


  • 试着导出一下?

  • 要不转去 GitLab?

  • 试试不在美国的代码托管平台?

  • ……


然而,GitHub 仍是这世界上最流行的代码托管平台,对这些开发者来说,沉没成本太大了。


事件发酵至今,GitHub 迫于舆论压力偷偷地针对被 ban 账户进行了一些“定制化”的变更:


  • “删除这个存储库”按钮不再禁用;

  • 可以选择将“私有 repos”公开,以便克隆它们;

  • 只需在 options 中更改源代码,就会看到自定义域文本框。

  • 在顶部警告上添加了一个“关闭按钮”。被封禁用户可以关闭该消息。


但仍旧,没有什么实质性的解决方案。

老调重弹,开源的自由与国界

一个多月以前,笔者采访了 OpenStack 基金会创始人 Jonathan Bryce,我向他提问,怎么看待近期有关华为问题引发的开源危机相关讨论。当时与会公关叫停了我的这次提问,但 Jonathan 侧面给了我回答:


开源真正给我们带来的是开源社区可以把不同公司、不同行业的技术专家组合在一起,做成一个非常棒的的团队来解决技术问题。整个开源过程是无边界、无国界的,换句话说不会因为你在哪个公司而改变这个态度,也不会因为你在哪个国家而改变对开源的态度,我们真正要做的是把最好的专家聚集在一起,不应该涉及其他方面的问题。

OpenStack 基金会为了更多关心和开拓中国的社区,今年特意在上海成立了一个办事处,有一位专职的社区经理去解决中国的问题。整个开源基金会的目的是能把最好的专家聚集在一起解决一些问题,而不应该涉及国际的问题,OpenStack 也希望帮到整个中国开源社区和开发技术人员。最后重申一点是 OpenStack 这个开源项目是属于全世界的,并不属于一个公司,也不会属于一个国家。


这是我们曾深信不疑的开源理念与精神,也是我们愿意为开源奉献的力量源泉。可现在,事情似乎远不一样了。


中国现在是世界第二大经济体,也是包括 GitHub、OpenStack 等多个开源基金会在内的世界第二大市场与贡献者,但中国仍旧面临过美国政策法案限制的影响,包括华为等多个国家在开源、IT 技术、投资等多方面遭到了种种掣肘。世界第二,终究是不如世界第一。


中国尚且如此,远不如中国强大的伊朗、叙利亚、古巴、朝鲜就更是如此了。开发者们信奉的 OpenSource 理念,终究是抵不过拳头加大棒的强权国家。因为这些组织总部设在美国、上市在美国、选用了美国的云服务等等,它就必须遵守美国的政策法案。


当时笔者曾对一位提出“我们是否该建立自己的 GitHub”了的读者说,“个人觉得不需要,否则又成闭关锁国了”。但现在,也许我们是应该未雨绸缪一下了。


唯一需要我们考虑的是,中国开发者,真正理解开源,愿意奉献开源了吗?中国科技企业,真的愿意投入开源,回报社区了吗?我们的开源能形成一个真正完整的闭环,而不是简单的“拿来主义”吗?


值得深思。


2019-07-29 12:2614175
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 377.4 次阅读, 收获喜欢 1972 次。

关注

评论 6 条评论

发布
用户头像
美国世界的开源,是建立在他心情好的时候,如果被惹怒了,什么开源,什么人权,统统灰飞烟灭。国人应该警醒,尤其是有能力的公司,希望做好备胎工作!!!
2020-04-25 11:05
回复
用户头像
我觉得一分为二看问题,开源和技术应该是无国界的(类似科学家精神),但是同时也要求里面的参与者也是抱着这样的态度和精神。如果一方面有很多怀着这样精神的人主张开放,而却又另一拨人不怀好意、与政治和国界、民族捆绑,抄袭、掠夺、攻击,那这个不平衡势必会导致最终无法完全开放。
2019-08-03 21:51
回复
用户头像
我感觉蹊跷。自己国内不上访问非要说是美国限制
2019-07-29 19:35
回复
GitHub给的回应就是封禁啊
2019-07-30 09:00
回复
封了也是正常的,网站需要遵守所在国法律。要是在国内,限制更多,很多都不是法律,是有关部门的一个电话而已
2019-07-30 12:24
回复
用户头像
各大国际性的组织,总部都设在美国了,真要出问题还真的挺严重的
2019-07-29 13:54
回复
没有更多了
发现更多内容

使用@AutoConfigureBefore调整配置顺序竟没生效?

YourBatman

Java Spring Boot @AutoConfigureBefore

数据分析师成长体系漫谈--数据埋点

analysis-lion

数据分析 数据采集 埋点

Ceph数据恢复初探

焱融科技

焱融科技 文件存储 分布式存储 数据恢复 Ceph

一致性hash的理解与实现

dongge

架构师训练营 - 第 5 课总结 -20200704- 技术选型

👑👑merlan

负载均衡 缓存 分布式数据库 架构设计 消息队列

【Python】__name__ 是什么?

Leetao

Python Python基础

week05 学习总结 分布式缓存&消息队列&负载

Z冰红茶

Week 5 作业

Shawn

架构师训练营第五章总结

叮叮董董

「深度解析」AI训练之数据缓存

焱融科技

人工智能 AI 存储 焱融科技 数据缓存

第五周作业

Linuxer

极客大学架构师训练营

小师妹学JVM之:cache line对代码性能的影响

程序那些事

JVM 小师妹 性能调优 cache line 签约计划第二季

用进废退,增加能力熟练度与经验值,让你的技能再次精进。

叶小鍵

Week 05 命题作业

卧石漾溪

极客大学架构师训练营

week2作业

就餐卡系统设计

架构师训练营第五章作业

叮叮董董

Java 线程池中的线程复用是如何实现的?

武培轩

Java 程序员 后端 线程池 源码解析

一次非常有意思的 SQL 优化经历: 从 30248.271s 到 0.001s

Java小咖秀

MySQL 面试 后端 经验分享 优化逻辑

游戏夜读 | 关卡设计的难点

game1night

分布式缓存、消息系统和异步架构

架构5班杨娟Jessie

极客大学架构师训练营

超详细!一文带你了解 LVS 负载均衡集群!

JackTian

Linux 负载均衡 运维 LVS 服务器集群

架构师训练营第五周课后总结

Cloud.

干货 | 如何评估Kubernetes持久化存储方案

焱融科技

Kubernetes 容器 云原生 k8s

架构师第5周总结

老姜

啃碎并发(二):Java线程的生命周期

猿灯塔

一致性 hash 算法

Z冰红茶

一致性Hash算法

一致性Hash算法以及Java代码实现

架构5班杨娟Jessie

极客大学架构师训练营

springBoot集成rabbitmq并实现延时队列

生命在于折腾

RabbitMQ

一致性哈希算法实现

老姜

联想来酷广谱化生存:后疫情时代的"硬核品牌"启示录

Geek_116789

GitHub有国界:全面封禁美国制裁地区开发者账户_文化 & 方法_小智_InfoQ精选文章