虚拟机 clash搭建

发布于 2023-11-18  84 次阅读


 安装 Clash

  1. 下载当前操作系统与 CPU 架构对应的包文件,我这儿是 X86_64 平台下 CentOS7 所以对应的使用 clash-linux-amd64-v1.6.5.gz 包即可shell
  2. wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/v1.6.5/clash-linux-amd64-v1.6.5.gz
  3. 下载好后解压安装包中 clash 到 /usr/local/bin/ 目录下,并删除压缩包文件shell1 2 3 gzip -dc clash.gz > /usr/local/bin/clash chmod +x /usr/local/bin/clash rm -f clash.gz
  4. 创建配置文件目录,并下载 MMDB 文件shell1 2 mkdir /etc/clash wget -O /etc/clash/Country.mmdb https://www.sub-speeder.com/client-download/Country.mmdb
  5. 创建 systemd 脚本,脚本文件路径为 /etc/systemd/system/clash.service,内容如下:/etc/systemd/system/clash.service1 2 3 4 5 6 7 8 9 10 11 [Unit] Description=clash daemon [Service] Type=simple User=root ExecStart=/usr/local/bin/clash -d /etc/clash/ Restart=on-failure [Install] WantedBy=multi-user.target
  6. 重载 systemctl daemonshell1 systemctl daemon-reload

配置代理上网

  1. 导入已有的科学上网订阅链接,如果没有机场的话推荐使用心阶(www.xinjiecloud.online)实测用了一年稳的一逼shell1 wget -O /etc/clash/config.yaml [你的订阅链接]
  2. 设置系统代理,添加配置文件 /etc/profile.d/proxy.sh 并在其中写入如下内容:/etc/profile.d/proxy.sh  (先不配置试下)1 2 3 export http_proxy="127.0.0.1:7890" export https_proxy="127.0.0.1:7890" export no_proxy="localhost, 127.0.0.1"
  3. 重载 /etc/profile 配置shell1 source /etc/profile
  4. 启动 clash 服务,并设置为开机自动启shell1 2 systemctl start clash systemctl enable clash
  5. 测试 goolge.com 访问shell1 2 3 4 5 6 7 # curl google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML>

配置 web-ui

  1. 克隆 clash-dashboard 项目到本地shell1 git clone -b gh-pages --depth 1 https://github.com/Dreamacro/clash-dashboard /opt/clash-dashboard
  2. 修改 clash 配置文件中 external-ui 的值为 /opt/clash-dashboardsehll1 sed -i "s/^#\{0,1\} \{0,1\}external-ui.*/external-ui: \/opt\/clash-dashboard/" /etc/clash/config.yaml
  3. 重启 clash 服务shell1 systemctl restart clash
  4. 通过浏览器访问 localhost:9090/ui,其中 localhost 替换为 clash 部署服务器的 IP

配置定时更新订阅

使用如下脚本填写相关配置项目并放入 /etc/cron.weekly 目录下,每周自动更新订阅配置文件即可

/etc/clash/renew.sh

#!/bin/bash

# 获取当前日期
year=$(date +%Y)
month=$(date +%m)
day=$(date +%d)

# 替换日期变量
url="https://v2rayshare.com/wp-content/uploads/${year}/${month}/${year}${month}${day}.yaml"

# 下载文件
curl -O "$url"

# 修改文件内容
filename="${year}${month}${day}.yaml"
newfilename="config.yaml"

# 在新文件的第三行插入 "external-ui: /opt/clash-dashboard"
sed '3i external-ui: /opt/clash-dashboard' "$filename" > "$newfilename"


# 重新启动下代理信息
# export http_proxy="127.0.0.1:7890"
# export https_proxy="127.0.0.1:7890"
# export no_proxy="localhost, 127.0.0.1"
# source /etc/profile


# 删除原文件
rm "$filename"
systemctl stop clash
systemctl start clash

如果是windows 编辑的注意换行符 该命令可替换 

sed -i 's/\r$//' test.sh 

给权限

chmod +x test.sh

写服务器定时任务(8点执行)

crontab -e

0 8 * * * /etc/clash/test.sh

env | grep -i prox

1.查看当前代理

env | grep -i proxy

2.设置代理

export http_proxy="127.0.0.1:7890"

export https_proxy="127.0.0.1:7890"

3.取消代理

unset https_proxy
unset http_proxy

// 如果还不行
open ~/.bashrc
// 删除文件里 export https_proxy的内容

ℳ๓古依博學之誌°ꦿ⁵²º᭄
最后更新于 2023-11-18