安装
安装代理软件与控制面板
先在用户目录建立clash
的文件夹,以root
目录为例
mkdir -p /root/.config/clash && cd /root/.config/clash
在clash目录中,下载Clash二进制文件(Intel CPU使用amd版本的clash)和 Yacd Dashboard面板(Dreamacro因不可抗力已删库,请自行寻找资源):
wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-amd64-v1.18.0.gz
wget https://github.com/haishanh/yacd/releases/download/v0.3.8/yacd.tar.xz
将上述两个文件进行解压
gzip -d clash-linux-amd64-v1.18.0.gz
tar -zxvf yacd.tar.xz
解压的yacd文件夹更名为dashboard
(这一步很重要,不然后续config.yaml配置面板设置后,运行会报错),将解压的clash-linux-amd64-v1.18.0更名为clash。
mv public dashboard
上述也可以在宝塔面板中直接将解压的文件放到clash文件夹(路径:./root/.config/clash)中。
配置config.yaml
将自己已使用的订阅配置在Clash for Windows客户端内拷贝一份,命名为:Linux-Cdb-Conf。
右键Linux-Cdb-Conf,选择Proxies,找到Proxy Groups下的栏目,选择“自动选择”(也可以是其他),将“select”改为“url-test”,目的是自动选择延时低的线路,默认的“600”(刷新时间,单位:秒)可根据需要修改。修改完,点击🆗,保存(Save)。
右键Linux-Cdb-Conf,选择Edit,添加如下内容:
# HTTP 代理端口
port: 7890
# SOCKS5 代理端口(增加这一行)
socks-port: 7891
# Linux 和 macOS 的 redir 代理端口(增加这一行)
redir-port: 7892
# 允许局域网的连接
allow-lan: true
# 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连)
mode: Rule
# 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。
# 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。
log-level: info
# RESTful API 的口令(增加这一行, 让Clash Web Dashboard需要密码访问)
secret: 123151
# 将静态网页资源(如 clash-dashboard)放置在一个目录中(增加这一行,用来告诉程序,WebUI所在的目录),clash 将会服务于 'RESTful API/ui'
# 参数应填写配置目录的相对路径或绝对路径
external-ui: /root/.config/clash/dashboard
# Clash 的 RESTful API
external-controller: 0.0.0.0:9090
将编辑好的文件拷贝到clash文件夹(路径:./root/.config/clash)中,命名为:config.yaml
。
也可以在./root/.config/clash中新建config.yaml的链接文件,方便后续管理。
测试是否可用
验证经过上述步骤的配置是否有效可以执行
./clash -d .
------Output------
INFO[0000] Start initial compatible provider 故障转移
INFO[0000] Start initial compatible provider 自动选择
INFO[0000] Start initial compatible provider 低价机场
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] inbound socks://:7891 create success.
INFO[0000] inbound mixed://:7890 create success.
配置最终部署信息
测试可用之后,接下来把clash
, 移到 ./usr/local/bin 文件夹内
mv clash /usr/local/bin
然后配置service
文件, 方便我们管理使用,首先建立并编辑 clash.service 文件
vim /lib/systemd/system/clash.service
在跳转的空白页内,点击“ i ”进入编辑模式,输入以下内容(User为你的Linux用户名,一般为“root”):
[Unit]
Description=Clash Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/clash -f config.yaml //使用 -f 指定配置文件
ExecStop=/bin/kill $MAINPID
Restart=on-failure # or always, on-abort, etc
[Install]
WantedBy=multi-user.target
输入下方命令确保生效以及能够开机启动
systemctl daemon-reload
systemctl enable clash //开机启动
systemctl start clash //开始运行
systemctl status clash //查看运行状态,出现active (running)则表示运行成功
● clash.service - clash service
Loaded: loaded (/etc/systemd/system/clash.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-01-18 09:07:20 CST; 1s ago
Main PID: 7684 (clash)
Tasks: 8
Memory: 8.0M
CGroup: /system.slice/clash.service
└─7684 /usr/local/bin/clash
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ systemd[1]: Started clash service.
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info msg="Can't find config, create a initial config file"
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info msg="Can't find MMDB, start download"
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info…移"
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info…择"
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info…场"
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info...."
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info...."
Jan 18 09:07:20 iZ2zed6tm315qafq22tlhpZ clash[7684]: time="2024-01-18T09:07:20+08:00" level=info...0"
Hint: Some lines were ellipsized, use -l to show in full.
上方日志中显示会自动下载MMDB文件,若无法自动下载,百度搜索一个,放入“./root/.config/clash中”。
浏览器访问:http://localhost:9090/ui,即可进入Web管理界面。其中“localhost”改为服务器IP地址即可访问。
开关系统代理
打开.bashrc文件
# Proxy auto start
#export https_proxy="http://127.0.0.1:7890"
#export http_proxy="http://127.0.0.1:7890"
#export all_proxy="socks5://127.0.0.1:7891"
# Open proxy
proxy_on() {
export https_proxy="http://127.0.0.1:7890"
export http_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7891"
echo -e "\033[32m[√] HTTP/HTTPS Proxy on 已开启代理\033[0m"
}
# Close proxy
proxy_off() {
unset http_proxy
unset https_proxy
unset all_proxy
echo -e "\033[31m[×] HTTP/HTTPS Proxy off 已关闭代理\033[0m"
}
运行以下代码使其生效
source ~/.bashrc
在命令提示窗口输入以下内容,开启/关闭系统进行系统代理
proxy_on //开启系统代理
proxy_off //关闭系统代理
检查运行情况
检查服务端口
$ netstat -tln | grep -E '9090|789.'
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN
tcp6 0 0 :::7890 :::* LISTEN
tcp6 0 0 :::7891 :::* LISTEN
tcp6 0 0 :::7892 :::* LISTEN
检查环境变量
$ env | grep -E 'http_proxy|https_proxy|all_proxy'
http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890
以上步鄹如果正常,说明服务clash程序启动成功,现在就可以体验高速下载github资源了。