Linux 下安装使用 Clash
安装使用 clash-for-linux,并注册为系统服务,设置开机自启动
一、环境说明及工具准备
1.1 系统环境说明
最近在看到 deepin 做的越来越好,没忍住装上了 deepin20.9 耍几天
系统信息:
![](/articles/e343c2eb/fAadEe7725Fozi8jKC9ec_kg4GdypeVoKkoTUR.png)
1.2 工具准备
使用的是一个开源项目,人家很贴心的把 clash 和 ui 都整合了,然后还写好了启动脚本,并带有 clash 配置文件转换功能,非常棒!
项目地址:https://github.com/wanhebin/clash-for-linux
二、启动测试 clash
2.1 安装配置 clash-for-linux
- 先克隆项目到本地
git clone https://github.com/wanhebin/clash-for-linux.git
- 进入项目目录,编辑
.env
文件
cd clash-for-linux
vim .env
.evn
文件配置说明
打开文件一共有两项配置,一个是 clash 的订阅地址,还有一个是 ui 界面登录的密码,推荐都设置上
export CLASH_URL='xxx'
export CLASH_SECRET='chengge666'
2.2 启动测试
执行命令 sudo bash start.sh
会看到大概是下面输出,这里我把 start.sh
改了下,没有使用原来设置环境变量,然后使用命令启动的方式,那种方式后续开机会进不去桌面环境,所以直接把启动脚本那里环境变量设置部分注掉了,使用系统设置去设置代理,最终其实是一个意思
chengge@chengge:/mnt/sda4/develop/clash/clash-for-linux$ sudo bash start.sh
请验证人脸或密码:
验证成功
正在检测订阅地址...
Clash订阅地址可访问! [ OK ]
正在下载Clash配置文件...
配置文件config.yaml下载成功! [ OK ]
判断订阅内容是否符合clash配置文件标准:
解码后的内容不符合clash标准,尝试将其转换为标准格式
配置文件已成功转换成clash标准格式
正在启动Clash服务...
服务启动成功! [ OK ]
CPU架构信息: x86_64
Clash Dashboard 访问地址: http://<ip>:9090/ui
Secret: chengge666
2.3 开启系统代理
- 第一种方式,是按照 clash-for-linux 的方式去设置
source /etc/profile.d/clash.sh
proxy_on
- 第二种方式,直接在 deepin 系统设置中设置
控制中心 -> 网络 -> 系统代理
![](/articles/e343c2eb/a865c3270bFmCngqbAeXsNza7H-yusdIfEqUMD.png)
2.4 验证
执行命令,出现以下结果证明 clash 启动成功,现在可以打开浏览器访问外网进行测试了
chengge@chengge:~$ netstat -tln | grep -E '9090|789.'
tcp6 0 0</div>7890</div>* LISTEN
tcp6 0 0</div>7891</div>* LISTEN
tcp6 0 0</div>7892</div>* LISTEN
tcp6 0 0</div>9090</div>* LISTEN
chengge@chengge:~$ env | grep -E 'http_proxy|https_proxy'
https_proxy=http://127.0.0.1:7890
http_proxy=http://127.0.0.1:7890
2.5 使用 clash ui 界面
- 访问:http://127.0.0.1:9090/ui/#/
- 配置完毕点击 Add
![](/articles/e343c2eb/7de61D7Af7FqEYTROMUmk4wqzE7m_g7KLfsHmV.png)
- Add 完毕后下方会多出一个条目,点击进入即可,这个界面看着也是挺不错的
三、将 clash 注册为系统服务,并设置开机自启动
3.1 clash 系统服务配置
- 创建 clash 服务配置文件
vim /etc/systemd/system/clash.service
- 写入以下内容
主要修改的地方就是 [service] 节点下的脚本路径,配置为你的脚本执行绝对路径
[Unit]
Description=
Documentation=
After=network-online.target
Wants=
Requires=
[Service]
ExecStart=/bin/bash /mnt/sda4/develop/clash/clash-for-linux/start.sh
ExecStop=/bin/bash /mnt/sda4/develop/clash/clash-for-linux/shutdown.sh
ExecReload=/bin/bash /mnt/sda4/develop/clash/clash-for-linux/restart.sh
Type=forking
[Install]
WantedBy=multi-user.target
上面配置的几个关键点:
- [Unit] 的 After 配置,network-online.target 意思是在网络可以正常连接后执行服务
- [service] 的 Type 配置:forking 意思是 fork 出一个子进程去跑服务,父进程退出,子进程依然在运行
3.2 启动服务测试
- 执行服务启动命令:
service clash start
- 查看服务启动状态:
service clash status
chengge@chengge:~$ service clash status
● clash.service
Loaded: loaded (/etc/systemd/system/clash.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-05-28 17:16:35 CST; 21min ago
Process: 19535 ExecStart=/bin/bash /mnt/sda4/develop/clash/clash-for-linux/start.sh (code=exited, status=0/SUCCESS)
Main PID: 19601 (clash-linux-amd)
Tasks: 11 (limit: 18738)
Memory: 16.3M
CGroup: /system.slice/clash.service
└─19601 /mnt/sda4/develop/clash/clash-for-linux/bin/clash-linux-amd64 -d /mnt/sda4/develop/clash/clash-for-linu
- 停止服务:
service clash stop
- 重启服务:
service clash restart
3.3 设置开机自启动
执行命令:sudo systemctl enable clash
然后可以重启验证了~
Linux 下安装使用 Clash
https://www.powercheng.fun/articles/e343c2eb/