一、环境
- 系统版本:Ubuntu 24.04
- clash版本:2.0.24_linux_amd64
二、安装
Github下载连接:https://github.com/DustinWin/proxy-tools/releases/tag/Clash-Premium
- 解压下载的压缩包
- 解压完成后,直接执行
./clash二进制文件;执行成功后会在当前用户目录的./config下生成一个clash目录:/home/ubuntu/.config/clash,会自动生成config.yaml文件,现在这个文件除了有一个端口配置,是没有其他内容的,clash需要能够正常使用还得继续配置你购买的节点服务。 - 如果执行
./clash二进制文件出现了,Country.mmdb文件下载错误,可以手动下载然后上传至~/.config/clash目录下。 -
config.yaml配置购买的节点,这个得看你购买的节点,他们提供了什么方式来生成config.yaml,正常他们会提供文档给你,告诉你怎么去生成config.yaml文件; - 配置完成后再次执行
./clash,就可以正常使用了。
#!/bin/bash
# 定义 Clash 可执行文件路径和配置目录
CLASH_PATH="/home/ubuntu/clash/clash"
CLASH_CONFIG_DIR="/home/ubuntu/.config/clash"
# 检查 Clash 是否正在运行
is_clash_running() {
# 使用 netstat 检查端口是否被占用
netstat -tuln | grep ":7890 " > /dev/null 2>&1
local netstat_result=$?
# 使用 pgrep 检查进程是否存在
pgrep -f "$CLASH_PATH" > /dev/null 2>&1
local pgrep_result=$?
# 如果任意一个检查通过,则认为 Clash 正在运行
if [ $netstat_result -eq 0 ] || [ $pgrep_result -eq 0 ]; then
return 0
else
return 1
fi
}
# 启动 Clash
start_clash() {
if is_clash_running; then
echo "Clash 已经在运行。"
else
echo "正在启动 Clash..."
nohup "$CLASH_PATH" -d "$CLASH_CONFIG_DIR" > /dev/null 2>&1 &
# 等待 2 秒以确保进程启动
sleep 2
if is_clash_running; then
echo "Clash 已成功启动。"
else
echo "启动 Clash 失败,请检查日志或配置文件。"
fi
fi
}
# 停止 Clash
stop_clash() {
if is_clash_running; then
echo "正在停止 Clash..."
local max_attempts=3
local attempt=1
while [ $attempt -le $max_attempts ]; do
pkill -f "$CLASH_PATH"
sleep 2 # 等待 2 秒
if ! is_clash_running; then
echo "Clash 已成功停止。"
return
fi
((attempt++))
done
echo "停止 Clash 失败,请手动检查并终止相关进程。"
else
echo "Clash 没有在运行。"
fi
}
# 查看 Clash 运行状态
status_clash() {
if is_clash_running; then
echo "Clash 正在运行。"
else
echo "Clash 没有在运行。"
fi
}
# 根据命令行参数执行相应操作
case "$1" in
start)
start_clash
;;
stop)
stop_clash
;;
status)
status_clash
;;
*)
echo "用法: $0 {start|stop|status}"
exit 1
;;
esac
exit 0