本项目正在调整,请稍等再使用
一个对国内开发者可能有点用的网络工具,cndevnet 帮助开发者,尤其是初学者不用再费心折腾 pip/npm/golang/flutter/android/blockchain 等等无法访问的问题。
背景
由于某些原因,国内开发者需要的不少技术站点或者镜像源都无法直接访问,这使得在开发者在日常工作中会消耗额外的时间,去设置各种代理或者寻找国内的可替代的镜像源来使用。
在开源软件的世界里,几乎所有的知名项目,原本只要把代码 clone 回来,不需要做额外任何配置,只需要按照它的说明就可以直接编译源码。但由于网络的原因,在国内甚至连开源软件的源码都不太方便直接下载,一些原本只需要从 GitHub 拉下来代码就可以直接编译成功的项目,在国内也是连编译都编译不过。
国内开发者群体是非常庞大的,所以我看到了很多知名的开源项目为中国用户在 README.md 文档或是页面的显著位置都增加了中文提示,去引导国内开发者去使用国内的镜像。
但是,我想这种做法应该不属于 i18n,因为我很少看到有引导日本的开发者去用日本的镜像,或者引导德国的开发者去用德国的镜像,这看似解决了访问慢或者无法访问的问题,但其实是加剧了国内开发者与全球互联网的割裂,在开发者的世界里面,也形成了国内和国外两个网络。
给系统或软件单独设置代理,或者寻找国内的可替代的镜像源我都觉得不是一个好方案,因为这样在国内的你总会遇到各种各样的国外开发者就不会遇到的问题,最好还是能够拥有一个与国外开发者“用起来”好像是一样的网络环境。
cndevnet 就是为了解决这个问题而创建的,希望能帮助到和我一样遇到相同问题的国内开发者。
从 Linux 开始
cndevnet 可以在 Linux 环境下搭建一个专为初学开发者设置的开发网络,搭配使用 vscode 进行远程开发是一种不错的体验,适合学习 python/golang 等。
Linux 环境可以是在国内云平台上的一台云主机,也可以是运行在本地虚拟机里面的主机,或者是局域网中的一台 Linux 主机。
Debian 是一个非常棒的 Linux 发行版,推荐希望学习 Linux 的初学者使用。如果希望使用带有图形界面的 Linux 系统,Ubuntu 也是一个非常好的选择。
cndevnet 使用了以下软件和服务
- Debian:目前支持的 Linux 系统
- Docker: 用于运行 gost 和 smartdns 服务
- gost: 用于建立 WSS(Websocket over TLS) 服务
- smartdns: 用于解决 DNS 污染
- dnsmasq-china-list: 国内域名
- Cloudflare IP Range: Cloudflare 的 IP 范围
- Cloudflare: Cloudflare 的 WSS 代理服务
- Oracle Cloud: Oracle Cloud 的云主机
cndevnet 原理
cndevnet 通过 iptables 等工具和数据实现了系统的透明代理,由于是系统级的透明代理,所以在启用了 cndevnet 的 Linux 系统上,是不需要为系统或者各类开发工具或者服务单独设置代理的。
cndevnet 是免费的
cndevnet 所使用的所有的软件都是开源免费的,另外 cndevnet 使用了 Cloudflare 的免费版域名和 CDN 服务以及 Oracle Cloud 的永久免费的云主机。
正是因为有 Cloudflare 和 Oracle Cloud 的免费服务,我才想到可以用它们来搭建一个给国内初学者使用的开发环境。
但是不得不说,这是一种薅羊毛的行为。资源有限,为了防止滥用,cndevnet 的密钥每天会在北京时间 0 点重新生成,如果希望继续使用,请在使用前,从 GitHub 拉取最新的代码来获取正确的密钥。
安装和使用
请访问 cndevnet 查看。