前言

早期,我一直对Clash的工作原理一知半解,只知道它是一种探索互联网世界的神奇工具。

每次需要科学上网时,只需点击一下“系统代理”按钮,瞬间解决了各种无法访问网站的问题。

久而久之,不免觉得这一过程有些繁琐:打开网站 —— 拒绝访问 —— 启动 Clash—— 开启系统代理 —— 完成。我曾经尝试简化这个步骤,最初的尝试是保持规则代理一直开启,通过配置文件来管理流量的转发规则。

但不久后,我发现有些网站的规则并不适用,还是需要使用全局代理,这种方法有一定的限制,所以我放弃了这个想法。接着,我尝试设置全局快捷键,我选择了F2键,虽然效果还算可以,但每次都需要手动按下,稍显麻烦。正如大家都知道的,懒惰是发明创造的源泉,于是我孵化出了以下的终极解决方案。本文将完全解决以下令人烦恼的问题:

  1. 访问网页需要手动开启 Clash
  2. 终端不走 Clash 流量
  3. Git 也蹭不到 Clash 流量

准备工作

首先要准备 Clash 和节点,这是一个比较敏感的话题,所以本文不提供任何渠道。

其次要知道 Clash 的端口号,默认是 7890,如果你先前没有进行更改的话。

最后需要 ChromeEdge 浏览器,同时能够访问拓展商店,找到并下载 SwitchyOmega(需要科学上网)

配置 SwitchyOmega

Clash 用户请按照以下进行配置。

首先配置代理服务器,选择本机,也就是 127.0.0.1 , 端口选择 7890,协议选择 socks5

完事以后先点一下左边 ACTIONS 下面的 应用选项 来保存一下

image-20230904214009659

接下来在情景模式的 auto switch 中写入网上人家配置好的规则

这里请开启 Clash 系统代理!要不然访问不了 GitHub !

规则列表格式选择 AutoProxy,规则列表网址填写

1
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

然后点击立即更新情景模式,规则列表正文自动刷新

image-20230904214345242

接下来的一步很关键:这里选择 Proxy,要不然开了跟没开一样

image-20230904214648894

同时,在浏览器插件中选择 auto switch 选项,这样就可以根据我们访问的网站自动切换代理,例如谷歌,YouTube 等

Clash 不需要开启系统代理了,只要在后台挂着就行,记得设置 Clash 为开机启动

image-20230904214758290

当然,别人写的规则肯定不可能百分百全覆盖,按照自己的需要把常用的网站写进规则里面就可以了。

这里要提醒的是,有些国外网站,例如 YouTube.com,并不是简单的把他添加进规则里面就行,因为它本身还要引用例如 Googlevideo.com 这一类的 cdn,还要把 cdn 也添加进规则里面。这一步可以通过以下步骤来一键添加规则:

找到所有未加载的资源

image-20230904215451622

一键添加规则

image-20230904215518075

设置 Git 代理

设置代理

1
git config --global http.proxy 127.0.0.1:7890 && git config --global https.proxy 127.0.0.1:7890

取消代理

1
git config --global --unset http.proxy && git config --global --unset https.proxy

查看代理

1
git config --global --get http.proxy && git config --global --get ht

git clone 时要使用 https 协议,因为设置的是 HTTPS 代理,所以使用 SSH 克隆还是很慢, 解决办法: 请看本站 # GitHub加速终极教程

设置终端代理

Windows 用户可以跳过这里了,这边主要是针对 Linux 或 macOS 的终端进行设置

我自己用的是 macOS,经常使用 homebrew 下载软件时要等半天,然后对我丢出一个 time out,此情景是何等的令人恼火。但是如果一昧的设置永久系统代理,那么下载某些国内软件时反而会变成 “减速器”,而且必然会浪费很多流量(流量用不完的随意)。所以这里使用一次性的方法设置代理,即代理只在当前终端窗口有效,如果关掉再开就失效了。

编辑 zsh 配置文件

1
vim ~/.zshrc

滑到最底下,按自己的需要写入以下内容:

设置一次性代理

1
alias proxy="export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890;"

设置永久代理:

1
2
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

保存并退出,使用 source ~/.zshrc 刷新配置文件

使用方法:如果设置的是一次性代理,那么在需要使用代理的指令前加上 proxy

例如使用 homebrew 下载 qq 音乐:

1
proxy brew install qqmusic

或者单独使用 proxy 一行命令开启代理,如果想关闭代理直接把当前终端窗口关掉就行,因为是一次性的

当然,如果是永久代理就需要手动注释掉添加的两行代码才能关闭代理 🤡