下载安装
点击下载 Linux 版本的 Clash,下载完成后解压缩。
unzip clash-linux.zip
sudo mv clash-linux /usr/local/bin/clash
sudo chmod +x /usr/local/bin/clash
初步使用
下载配置文件,配置文件一般由订阅商(机场)提供,是一个 yaml 文件,编写了代理服务器的信息,以及访问规则等。这是最关键的一步。
clash-linux-amd64-v1.10.0 -f 从订阅商那获取的配置文件.ymal -d .
可以尝试在 Git clone 时使用代理,如果可以正常下载,说明代理配置成功。
git clone https://github.com/twbs/bootstrap.git --config "http.proxy=127.0.0.1:7890"
# 即可正常下载
开机启动
cd ~
sudo cp /usr/local/bin/clash /etc/
sudo vim /etc/systemd/system/clash.service
添加如下内容,并保存:
[Unit]
Description=Clash Daemon
[Service]
ExecStart=/usr/local/bin/clash -f /etc/clash/订阅的配置文件.yaml -d /etc/clash/
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用 clash 服务
sudo systemctl enable clash.service
启动 clash 服务
sudo systemctl start clash.service
此外也可以停止或者禁用 clash 服务
sudo systemctl stop clash.service
sudo systemctl disable clash.service
查看运行状态:
sudo systemctl status clash
查看 clash 服务日志
journalctl -e -u clash.service
配置定期更新
crontab -e
添加如下内容:
29 6 * * * root pgrep clash | xargs kill -s 9
30 6 * * * root cp /etc/clash/订阅的配置文件.yaml /etc/clash/backup.yaml
31 6 * * * root curl https://订阅链接.yaml > /etc/clash/订阅的配置文件.yaml
32 6 * * * root sudo systemctl start clash.service
重启 cron 服务
sudo systemctl restart cron.service
使用 Dashboard
编辑/etc/clash/glados.yaml
,修改以下配置,默认配置为127.0.0.1:9090
。如果你的9090
端口没有被占用,将其修改为0.0.0.0:9090
即可,因为我的 NAS9090
端口被占用,所以修改成了0.0.0.0:19090
。
external-controller: 0.0.0.0:19090
这样就可以在浏览器通过Nas IP:19090/ui
访问 Dashboard,比如192.168.1.9:19090/ui
。
更方便的方式:使用 Docker 部署
version: "3.7"
services:
clash:
image: dreamacro/clash-premium
container_name: clash
hostname: clash
restart: unless-stopped
ports:
- 7890:7890
- 7891:7891
- 9090:9090
volumes:
- /root/sharefolder/appdata/clash:/root/.config/clash # 修改为你的配置文件目录
environment:
- TZ=Asia/Shanghai
clash-dashboard:
image: haishanh/yacd:master
container_name: clash-dashboard
ports:
- "7880:80"
restart: always
environment:
- TZ=Asia/Shanghai
depends_on:
- clash
这样就可以在浏览器通过Nas IP:7880
访问 clash-dashboard,比如192.168.1.9:7880
。点击配置,大概率显示无法连接到后端。修改后端地址位http://192.168.1.9:9090
。
定时更新:
crontab -e
# 添加以下的内容
# 每隔 8 小时备份配置文件
0 */8 * * * cp /root/sharefolder/appdata/clash/config.yaml /root/sharedfolder/appdata/clash/config.yaml.bak
# 每隔 8 小时延迟 5 分钟支更新配置文件
5 */8 * * * curl https://xxxxxxx > /root/sharedfolder/appdata/clash/config.yaml
# 每隔 8 小时延迟 6 分钟修改配置文件 allow-lan: false 修改为true
6 */8 * * * sed -i 's/allow-lan: false/allow-lan: true/' /root/sharedfolder/appdata/clash/config.yaml
# 每隔 8 小时延迟 7 分钟修改配置文件 external-controller:
7 */8 * * * sed -i 's/external-controller: 127.0.0.1:9090/external-controller: 0.0.0.0:9090/' /root/sharedfolder/appdata/clash/config.yaml
# 每隔 8 小时延迟 8 分钟修改配置文件 external-ui: dashboard 注释掉,即不使用内置的dashboard,有的机场提供的配置文件没有这个配置,就不需要添加这行
8 */8 * * * sed -i 's/external-ui: dashboard/#external-ui: dashboard/' /root/sharefolder/appdata/clash/config.yaml
# 每隔 8 小时延迟 9 分钟重启 clash
9 */8 * * * docker restart clash
10 */8 * * * docker restart clash-dashboard