记录一下Linux上纯命令行环境下的Clash基本使用方法,前提是已经在Windows上有配置好的clash。

安装

Github仓库 下载预编译包, 例如 clash_2.0.24_linux_amd64.tar.gz,然后上传到Linux服务器中,解压到本地

1
2
cd ~/clash
tar --gzip -xf clash_2.0.24_linux_amd64.tar.gz

其中主要就是一个clash可执行文件,将路径添加PATH或者将其复制到~/.local/bin即可。

测试一下是否安装成功

1
clash -v

配置

假定在Windows上已有一个配置完成可以正常使用的clash,我们需要从Home Directory直接获取两个文件:

  • profiles/文件夹中选择一个可用的配置文件xxx.yml,复制并将其改名为 config.yaml
  • Country.mmdb文件,这是一个 IP 地址定位数据库,供规则分流时使用。如果在启动时没有找到,clash会尝试自动下载,下载可能需要几分钟。

将这两个文件传送到Linux服务器中,存放在 ~/.config/clash 目录下(或者全局级配置目录/etc/clash)。

除了复制已有的配置文件,也可以直接从订阅链接获取,例如使用wget命令(注意链接必须用引号包起来)

1
wget -O config.yaml 'http://example.com/shortURL'

使用curl命令则必须要加上-L选项,否则不会自动跟随重定向

1
curl -L -o config.yaml 'http://example.com/shortURL'

有的链接可能需要在最后加上&clash

至于Country.mmdb就不用管了,让clash在启动时自己下载即可。(后续发现有的情况下下载失败,还是复制过去吧)

对于订阅链接的更新,可以设置定时任务或者手动执行上述命令即可。

使用

在一个会话中启动clash,默认就会监听127.0.0.1的7890,7891端口

1
./clash

然后在另一个会话中,通过选项手动指定代理,例如

1
you-get -x 127.0.0.1:7890 <url>

通常的教程中会涉及代理相关的环境变量设置,例如

1
2
3
4
5
6
7
8
9
10
11
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export socks_proxy="socks5://127.0.0.1:7891"
export all_proxy="socks5://127.0.0.1:7891"
export no_proxy="localhost, 127.0.0.1"

unset http_proxy
unset https_proxy
unset socks_proxy
unset all_proxy
unset no_proxy

因为不同应用程序对这些变量的支持程度不尽相同(例如curl支持all_proxy,但是wget不支持),懒得设置这些环境变量, 更方便的做法是通过 ProxyChains 工具使用代理。

首先通过apt-get命令直接安装到本地,然后修改 /etc/proxychains4.conf 文件,对配置文件的修改看示例即可,例如在最后加上

1
socks5 127.0.0.1 7891

在命令之前使用proxychains4就可以强制它使用相关代理

1
proxychains4 ...

例如

1
2
proxychains4 git clone xxx
proxychains4 npm install

可以加上-qproxychains4使用静默模式,不干扰命令自身的输出

1
2
proxychains4 -q curl http://example.com
proxychains4 -q you-get <url>

注意:

  • 这些代理对ping命令都不生效,因为协议不同,可以用curl命令进行测试。
  • 这里只关注了手动开启clash,还可以通过 systemd 设置服务自动开启。

补充

目前绝大多数的代理都采用了国内国外分流代理的策略,但是这其实存在显而易见的危险。 使用分流代理的方式容易泄露自身的隐私信息,包括但不限于 IP 地址,浏览器以及硬件指纹等等一系列信息,并且可以将代理 IP 与真实 IP 进行对应。 一个最常见的例子就是某个国外的网站使用了百度统计脚本,这时代理 IP 与真实 IP 的对应信息可以轻松的被这样的网站获取。另一个例子就是一些恶意的邮件,比如你在使用国外的邮箱服务,接收到了一个恶意邮件,这个邮件中嵌入了一些国内的资源如图片,那么你的真实 IP 等信息也可以被轻松获取。—— Arch Linux 安装使用教程