scribble

吕小荣

Blog Friends RSS About

提高中国程序员幸福感的网络调试工具

18 April, 2022

警告: 本文介绍的工具仅用于开发工作,若使用者违反国家法律法规,后果自负,与本文无关。

前言

肉身在国内的话,配置开发环境是一种折磨。

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 网络模型的第七层”应用层”,并不是所有的软件都支持。即使你设置了系统代理,有些小众的软件可能不理睬这个设置。

这些问题耗费了程序员大量的时间。

Surge

如果你使用的是 MacOS,我建议你直接购买 Surge 这款网络调试工具。我没有拿过回扣,也没有提成,是凭良心推荐。

它的最大亮点是 “增强模式”,它会安装一个虚拟网卡并设置为默认路由,根据规则自动分发流量。这相当于在 OSI 的底层就分流了,第七层应用层的软件根本察觉不到 Proxy 的存在。

重要的事情说三遍:

如果你购买了 Surge,请务必打开增强模式(enhanced mode),否则暴殄天物。

如果你购买了 Surge,请务必打开增强模式(enhanced mode),否则暴殄天物。

如果你购买了 Surge,请务必打开增强模式(enhanced mode),否则暴殄天物。

也许有人有人会推荐其他免费开源的网络调试工具,我就问一个问题:它在网络模型中,工作在第几层?如果是 HTTP Proxy,就不要谈了,因为它无法解决前言中提到的各种缺陷。

此外 Surge 的功能并不仅限于此,它还可以对 HTTPs 进行抓包,方便调试 API。要知道单独购买一个网络调试工具 Charles Web Debugging Proxy 就要花费 50 美金啊,而买一个 Surge,就可以有两份用途,简直赚翻了。

Proxy Server

Surge 是个单纯的软件,它只负责把网络包丢给服务器,所以你还需要一台 Proxy 服务器。但是不建议你自己搭,因为运维太浪费时间,时间就是金钱。推荐你购买这类服务商,也不贵,一年就几百块钱,比较稳定的是 QWdlbnRORU8=

  1. 它会维持一个服务器列表,自动选择最快服务器。

  2. 它支持自定义配置。如果你熟悉 Surge 的各种规则,可以自行决定:

    • 哪些网站走 Proxy,哪些网站不走 Proxy。
    • 默认路径选择直连,还是走 Proxy。

行动

  1. 购买 Surge,50 美金/终生授权,一次购买,终生享受。多花点时间敲代码不好吗,何必天天瞎折腾?
  2. 购买 Proxy Servers,100-500 RMB/年。 链接:aHR0cHM6Ly9hZ25lby5jby8/cmM9b3Z0MTh3YWI= ,使用这个链接,你我都会获得 5 元抵扣券。

参考

  1. 点击购买 Surge for Mac
  2. 点击购买 Surge for iOS
  3. Surge 也有企业版,如果你是一家软件公司,可以购买企业版,大幅提高员工的生产力。点击购买 Surge 企业版
  4. Stack Overflow: Getting Git to work with a proxy server
  5. Stack Overflow: Connect with SSH through a proxy
  6. 吕小荣:提高 Github 的访问速度