本文是一个纯技术帖,目的是为了分享“如何更高效的配置开发环境,以及更开心的敲代码”,无意把话题引上那个不该讨论的内容。所以我把评论关了,免得给社区惹麻烦。
在国内配置开发环境是一种折磨。
yarn install 慢;npm install 慢;bundle install 慢。为了提高下载速度,必须把各种依赖的下载地址替换为国内镜像,或者使用 HTTP Proxy。
git clone 慢,需要设置环境变量,指定 HTTP Proxy。
$ export http_proxy=http://127.0.0.1:8087
$ export https_proxy=http://127.0.0.1:8087
SSH 慢,需要在 .ssh/config 文件中配置 HTTP Proxy。
Host github.com
User git
ProxyCommand ProxyCommand ncat --proxy 127.0.0.1:1080
访问 Stack Overflow 慢,访问 Github 特别慢,需要给 Chrome 浏览器下载一个插件 Proxy SwitchyOmega 管理 Proxy,根据不同的域名选择不同的线路,提高访问速度。
以上是大部分程序员的三板斧。
但它有诸多不便,每次切换 Proxy 的线路,或者开关 Proxy,都要为各软件逐个修改配置,terminal,chrome,ssh config,有人甚至还写 shell 脚本来批量操作。
也有人为整个操作系统设置一个默认代理,这样就不必为每个软件单独设置了。但是这会导致国内外的流量都走代理,访问国内的网站也要绕地球一圈。国外网站变快了,国内网站变慢了。
此外 HTTP Proxy 工作在 OSI 网络模型的第七层"应用层",并不是所有的软件都支持。即使你设置了系统代理,有些小众的软件可能不理睬这个设置。
这些问题耗费了程序员大量的时间。
如果你使用的是 MacOS,我建议你直接购买 Surge 这款网络调试工具。
它的最大亮点是“增强模式”,它会安装一个虚拟网卡并设置为默认路由,根据规则自动分发流量。这相当于在 OSI 的底层就分流了,第七层应用层的软件根本察觉不到 Proxy 的存在。
重要的事情说三遍:
如果你购买了 Surge,请务必打开增强模式 (enhanced mode),否则暴殄天物。
如果你购买了 Surge,请务必打开增强模式 (enhanced mode),否则暴殄天物。
如果你购买了 Surge,请务必打开增强模式 (enhanced mode),否则暴殄天物。
也许有人有人会推荐其他免费开源的网络调试工具,我就问一个问题:它在网络模型中,工作在第几层?如果是 HTTP Proxy,就不要谈了,因为它无法解决前言中提到的各种缺陷。
此外 Surge 的功能并不仅限于此,它还可以对 HTTPs 进行抓包,方便调试 API。要知道单独购买一个网络调试工具 Charles Web Debugging Proxy 就要花费 50 美金啊,而买一个 Surge,就可以有两份用途,简直赚翻了。
Surge 是个单纯的软件,它只负责把网络包丢给服务器,所以你还需要一台 Proxy 服务器。但是不建议你自己搭,因为运维太浪费时间,时间就是金钱。推荐你购买这类服务商,也不贵,一年就几百块钱。