简介

Kevin2li大约 2 分钟

简介

Clash是一个 Go 语言开发的多平台代理客户端, 目前github stars已经超过32k。

image.png
image.png

项目地址:https://github.com/Dreamacro/clashopen in new window

:::info{title="说明"} 原始的Clash只是一个命令行工具,为了更加方便使用,基于该项目衍生了一些图形化的代理软件,比如:

安装

下载可执行文件

去项目Releasesopen in new window版块下载最新的安装包,解压后里面会有一个可执行文件,为了方便将其重命名为clash,后文将以clash指代这个可执行文件.

# linux-amd64 下载
wget https://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz
# 解压
tar -xvf clash-linux-amd64-v1.11.8.gz

修改配置文件

如下是一个极简的配置文件:

mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '127.0.0.1:9090'

实际使用时,要添加进去自己的代理信息,也可以直接使用自己其他clash图形化客户端的配置文件。

启动

clash -f <config_path> # config_path为配置文件路径

为了方便管理,可以将其设置为系统服务:
服务文件路径:/etc/systemd/system/clash.service,内容如下:

[Unit]
Description=clash service
After=network.service

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root
ExecStart=/home/kevin2li/clash/clash -f /home/kevin2li/clash/clash_config.yml ;这里要根据自己情况修改路径
PrivateTmp=true
Restart=on-failure

[Install]
WantedBy=multi-user.target

clash服务管理:

# 重载服务
sudo systemctl daemon-reload
# 启动
sudo systemctl start clash
# 停止
sudo systemctl stop clash
# 查看状态
sudo systemctl status clash
# 加入开机自启
sudo systemctl enable clash

控制

由于Clash没有图形界面,但是它公开了RESTful APIopen in new window接口,可以通过发送对应请求来获取或修改相关设置。 幸运的是,目前已有一些工具实现了这些接口,比如:

  • 网页端控制工具:razordopen in new window
    使用前需要开放服务器对应控制端口(由配置文件中external-controller字段指定)

常用命令:

clashcli -t # 测试延迟
clashcli -s # 选择节点

使用

在终端中使用

# bash
export https_proxy="http://127.0.0.1:7890" && export http_proxy="http://127.0.0.1:7890"

# powershell
$https_proxy="http://127.0.0.1:7890"
$http_proxy="http://127.0.0.1:7890"

在Python中使用

import os
os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"