Featured image of post 无感代理的通用解决方案

无感代理的通用解决方案

利用 Proxy Switchy 实现无感翻墙

前言

其实早期的我一直不知道 clash 的工作原理到底是什么,只知道它是一把探索位置世界的钥匙,每次科学上网之前只需要点按“系统代理”,各种网站打不开的问题便迎刃而解。久而久之,不免觉得这一过程有些繁琐:打开网站——拒绝访问——启动 Clash——开启系统代理——完成。期间我也想过简化这一步骤,最初的方案是一直开启规则代理,通过配置文件上的规则转发流量,但是久而久之发现有些网站的规则并不实用,还是得开全局代理,该方案存在一定局限性,弃之。随后我又尝试设置全局快捷键,我设置的是 F2 键,效果差强人意,但是每次总是要手动按以下,所以…懂得都懂,毕竟懒惰是发展的动力,这就催生出了以下的究极解决方案。本文将彻底解决以下令人头疼的问题:

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

准备工作

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

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

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

配置 SwitchyOmega

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

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

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

image-20230904214009659

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

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

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

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

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

image-20230904214345242

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

image-20230904214648894

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

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

image-20230904214758290

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

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

找到所有未加载的资源

image-20230904215451622

一键添加规则

image-20230904215518075

设置 Git 代理

设置代理

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

取消代理

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

查看代理

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

Tips:git clone 时要使用 https 协议,因为设置的是 HTTPS 代理,所以使用 SSH 克隆还是很慢…

设置终端代理

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

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

编辑 zsh 配置文件

vim ~/.zshrc

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

设置一次性代理

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

设置永久代理:

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

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

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

例如使用 homebrew 下载 qq 音乐:

proxy brew install qqmusic

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

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

服务器配置 Clash

这里我暂时没时间搞,以后有机会把这个坑填上。