一、環境
- 系統版本: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