Linux命令下安装与使用Clash带UI管理界面

安装:

https://github.com/Dreamacro/clash/releases

下载对应版本,因为主机是树莓派,这里选择armv7,用uname -a可以看到

img

img

下载后改权限,解压,放到/opt/clash文件夹

下载配置信息等

1
2
sudo wget -O config.yaml [订阅链接]
sudo wget -O Country.mmdb https://www.sub-speeder.com/client-download/Country.mmdb

clash的配置文件在~/.config/clash/config.yaml,打开

img

修改外部控制设置(external-controller)地址为:0.0.0.0:9990,使内外网都可以访问这个地址

设置系统代理:

1
sudo nano /etc/environment

加入以下三行

1
2
3
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost, 127.0.0.1"

修改sudo文件

1
sudo visudo

加入

1
Defaults env_keep+="http_proxy https_proxy no_proxy"

重启

1
reboot

设置部分程序的代理:

有些程序不走系统代理,需要单独配置,下面以git为例

1
git config --global http.proxy 'http://127.0.0.1:7890'

shell最好也设一下,以zsh为例

1
2
3
4
# .zshrc最后加入
set proxy
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"

设置外部控制ui:

1
2
3
git clone https://github.com/Dreamacro/clash-dashboard.git
cd clash-dashboard
git checkout -b gh-pages origin/gh-pages

在~/.config/clash/config.yaml中设置好ui地址和访问密码

img

访问路径为:外部控制地址/ui,填入ip、端口、密码即可访问

img

设置clash开机启动:

将配置文件移动到/etc

1
sudo mv ~/.config/clash /etc

添加启动信息

1
sudo vim /etc/systemd/system/clash.service

输入以下内容,clash -d的意思是指定配置文件路径,这里已经改成了/etc/clash

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=clash daemon

[Service]
Type=simple
User=root
ExecStart=/opt/clash/clash -d /etc/clash/
Restart=on-failure

[Install]
WantedBy=multi-user.target

重新加载systemctl daemon

1
sudo systemctl daemon-reload

启动Clash

1
sudo systemctl start clash.service

设置Clash开机自启动

1
sudo systemctl enable clash.service

以下为Clash相关的管理命令

1
2
3
4
5
6
启动Clash
sudo systemctl start clash.service
重启Clash
sudo systemctl restart clash.service
查看Clash运行状态
sudo systemctl status clash.service

配置定时更新订阅:

先撸个脚本,别忘了设可执行权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

# 设置clash路径
clash_path="/opt/clash"

# 停止clash
systemctl stop clash.service

# 取消代理
unset https_proxy

# 如果配置文件存在,备份后下载,如果不存在,直接下载
if [ -e $clash_path/config.yaml ]; then
mv $clash_path/config.yaml $clash_path/configbackup.yaml
wget -O $clash_path/config.yaml "[你的订阅链接]"
else
wget -O $clash_path/config.yaml "[你的订阅链接]"
fi

# 重启clash
systemctl restart clash.service

# 重设代理
export https_proxy="http://127.0.0.1:7890"

设置定时任务:

1
sudo crontab -e

填入以下内容

1
2
//每月1号和15号的4点30分开始更新
30 4 1,15 * * sh [脚本目录]/[脚本名称]

重启crontab,使配置生效

1
sudo systemctl restart cron.service

查看代理是否正常工作:

1
curl www.google.com

结束,可以尽情地git clone了。