Linux使用clash代理

起因

偶然发现百度云的学生服务器挺便宜,2 核心 4g 内存机型一个月只要 18 元,有个随时随地能够访问的 Linux 环境还是挺好的,遂购入。新系统初始化完成,第一件事当然是来一套ohmyzsh,结果这就出了问题,git clone太慢了。

遂想到是不是该给其使用一下代理。不然之后不止git clone,很多资源都无法下载。

使用clash

clash是一款使用go语言开发的多平台代理工具,支持ss/v2ray等多种协议,在macOSwindows上使用起来很方便,在没有GUILinux也只需要稍加配置。

先从这里下载clashlinux-amd64可执行文件。

1
2
3
naruto@bdy:~$ gzip -d clash-linux-amd64-v1.1.0.gz
naruto@bdy:~$ chmod +x clash-linux-amd64-v1.1.0
naruto@bdy:~$ sudo mv clash-linux-amd64-v1.1.0 /usr/local/bin/clash

然后下载Country.mmdb

1
2
naruto@bdy:~$ mkdir -p .config/clash
naruto@bdy:~$ mv Country.mmdb .config/clash/

之后,需要最关键的clash代理配置文件config.yaml,一般机场都会提供,同样将其放到.config/clash目录下。

之后先直接启动clash看看效果。

启动遇到WARN[0000] Failed to start Redir UDP Listener: operation not permitted,可以使用sudo clash启动。

配置 GUI 界面

从上一段的图中可以看到,clash服务有一个RESTful API的服务,通过其我们可以访问 web 管理页面。在config.yaml中制定即可。比较受欢迎的是yacd,可以直接下载打包好的版本

1
2
naruto@bdy:~$ unzip yacd-gh-pages.zip
naruto@bdy:~$ mv yacd-gh-pages .config/clash/dashboard

config.yaml中如下设置:

1
2
external-ui: "dashboard"
secret: ""

启动clash后,浏览器使用ip:port/ui的方式访问,如下所示。

享用代理

在 GUI 界面选择好代理服务器后,就可以使用代理了。打开另一个终端窗口,执行如下命令,设置http(s)代理环境变量。

1
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

接下来,进行一些完善工作。首先每次都手动启动clash并且占用一个终端窗口是很不方便的,先将clash作为一个daemon进程。参照开发者推荐,使用pm2

1
2
$ wget -qO- https://getpm2.com/install.sh | bash
$ pm2 start clash

然后是将代理命令作为函数写入.zshrc.

注意,下面使用了zsh语法,和bash略有不同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PROXY_IP=127.0.0.1
PROXY_PORT=7890

function Proxy() {
if [ "$1" = "on" ]; then
export https_proxy=$PROXY_IP:$PROXY_PORT
export http_proxy=$PROXY_IP:$PROXY_PORT
echo Proxy On
else
unset https_proxy
unset http_proxy
echo Proxy Off
fi
}

然后试试看,非常愉快。

最后,我们来装一个rust试试。

作者

Naruto210

发布于

2020-08-21

更新于

2021-04-07

许可协议

评论