腾讯云不可访问GitHub,安装代理clash, 本地下载clash传到云服务器

使用systemd管理clash服务时候注意配置项 UserExecStart

User=root ExecStart=/root/software/clash

#!/usr/bin/env bash

CLASH_VERSION=clash-linux-amd64-v1.12.0.gz
# 截取.gz  得到 clash-linux-amd64-v1.12.0
unzipFileName="${CLASH_VERSION%.gz}"

function installClash() {
  if [[ -d ~/software ]]; then
    downloadAndGunzip
  else
    mkdir -p ~/software
    downloadAndGunzip
  fi
}

# 下载解压
function downloadAndGunzip() {
  cd ~/software
  if ! wget "https://github.com/Dreamacro/clash/releases/download/v1.12.0/$CLASH_VERSION";then
    echo "download clash fail"
    exit 1
  fi
  gunzip $unzipFileName
  mv $unzipFileName clash.bak # 改名
  chmod +x clash.bak

  # 启动clash会失败,因为没有 config.yaml 和 Country.mmdb 文件
  # 配置文件在 ~/.config/clash 目录下
  # 添加 Clash 配置订阅 到机场官网订阅中心选择复制订阅,然后在浏览器中访问【 订阅地址后面加&flag=clash 】
  # 然后右击浏览器页面,选择“另存为”保存页面 然后给保存的文件修改为config.yaml
  # ./clash  # 运行clash
}

# Clash 自启动及后台运行 /etc/systemd/system/clash.service
function createClashService() {
  touch /etc/systemd/system/clash.service
  chmod 755 /etc/systemd/system/clash.service

  # https://linuxtect.com/how-to-cat-eof-for-multi-line-string-in-linux-bash/
  cat <<EOF >/etc/systemd/system/clash.service
[Unit]
Description=Clash service
After=network.target

[Unit]
Description=Clash service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/software/clash
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target
EOF

  # 重载服务
  sudo systemctl daemon-reload
  # 开机启动
  sudo systemctl enable clash
  # 启动服务
  sudo systemctl start clash
  # 查看服务状态
  sudo systemctl status clash
}

function setProxy() {
  # 配置全局代理 以下几种格式都写上
  echo 'export http_proxy="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export HTTP_PROXY="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export https_proxy="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export HTTPS_PROXY="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export all_proxy="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export ALL_PROXY="http://127.0.0.1:1081/"' >>~/.bashrc
  echo 'export no_proxy="127.0.0.1,localhost,mirrors.tencentyun.com"' >>~/.bashrc
  echo 'export NO_PROXY="127.0.0.1,localhost,mirrors.tencentyun.com' >>~/.bashrc

  source ~/.bashrc
}

installClash

clash提供了 web api 管理端,访问网址 http://clash.razord.top, 输入服务器 ip 地址即可查询 clash 日志

Reference

Last Updated:
Contributors: zonglinlee