linux服务器使用clash
关于这件事已经操作N遍了,每次都不记得还要搜一下,这次记录一下方便复盘
下载
由于 Clash Premium 的主库已被删除,我们将使用备份库来获取吧
或者(废话,无需多言…)
wget ttps://github.com/zhongfly/Clash-premium-backup/releases/download/2023-09-05-gdcc8d87/clash-linux-amd64-n2023-09-05-gdcc8d87.gz
wk,真的别说,试试这个我的网址
wget https://share.plumbum.one/upload/clash-linux-amd64-n2023-09-05-gdcc8d87.gz
解压和处理
gzip -d clash-linux-amd64-n2023-09-05-gdcc8d87.gz
mv clash-linux-amd64-n2023-09-05-gdcc8d87 clash
chmod +x clash
mv clash /usr/bin/
安装和配置
运行
clash
让他下载完Country.mmdb之后ctl+C关闭
rt
root@plumbum-virtual-machine:/home/plumbum# clash
04:07:39 INF [MMDB] can't find DB, start download path=/root/.config/clash/Country.mmdb
04:07:44 INF inbound create success inbound=mixed addr=127.0.0.1:7890 network=tcp
04:07:44 INF inbound create success inbound=mixed addr=127.0.0.1:7890 network=udp
然后就是自己到这里面/root/.config/clash
cd /root/.config/clash && ls && mv config.yaml config_backup_pb.yaml
自己”解析”自己的yaml文件,放个位置下载
(我自己提醒,我放在服务器常见share的位置的里面的子目录位置,名称同时)
wget 网址/config.yaml
然后再使用就可以看到成功了
root@plumbum-virtual-machine:~/.config/clash# clash
04:28:37 INF [Config] initial compatible provider name=TikTok
04:28:37 INF [Config] initial compatible provider name=Steam
04:28:37 INF [Config] initial compatible provider name=Twitter
04:28:37 INF [Config] initial compatible provider name=海外使用
04:28:37 INF [Config] initial compatible provider name=节点选择
04:28:37 INF [Config] initial compatible provider name=哔哩哔哩
04:28:37 INF [Config] initial compatible provider name=微软服务
04:28:37 INF [Config] initial compatible provider name=谷歌服务
04:28:37 INF [Config] initial compatible provider name=故障转移
04:28:37 INF [Config] initial compatible provider name=Telegram
04:28:37 INF [Config] initial compatible provider name=ChatGPT
04:28:37 INF [Config] initial compatible provider name=境内使用
04:28:37 INF [Config] initial compatible provider name=自动选择
04:28:37 INF [Config] initial compatible provider name=Copilot
04:28:37 INF [Config] initial compatible provider name=Netflix
04:28:37 INF [Config] initial compatible provider name=苹果服务
04:28:37 INF [Config] initial compatible provider name=磁力下载
04:28:37 INF [DNS] server listening addr=127.0.0.1:1053
04:28:37 INF [API] listening addr=127.0.0.1:9090
04:28:37 INF inbound create success inbound=mixed addr=127.0.0.1:7890 network=tcp
04:28:37 INF inbound create success inbound=mixed addr=127.0.0.1:7890 network=udp
ctl+c关了之后…
设置clash为系统服务
要将Clash设置为系统服务,你需要创建一个Systemd服务单元文件。以下是一个示例,假设你的Clash可执行文件位于 /usr/local/bin/clash,并且配置文件位于 /etc/clash/config.yaml。
步骤1:创建Systemd服务文件
打开终端并使用文本编辑器创建一个名为
clash.service的文件:sudo nano /etc/systemd/system/clash.service在文件中添加以下内容:
[Unit] Description=Clash daemon, A rule-based proxy in Go. After=network.target [Service] Type=simple ExecStart=/usr/bin/clash -f /root/.config/clash/config.yaml Restart=on-failure RestartSec=5 StandardOutput=syslog StandardError=syslog SyslogIdentifier=clash [Install] WantedBy=multi-user.target请根据你的实际情况调整
ExecStart和配置文件路径。
中间完整是这个,后面加载我就用默认的了
ExecStart=/usr/bin/clash -d /etc/clash步骤2:启用并启动Clash服务
重新加载Systemd配置:
sudo systemctl daemon-reload启用Clash服务,使其在系统启动时自动启动:(可以不用随便了,主要还得开系统代理,不是全自动自启动,启动一半)
sudo systemctl enable clash启动Clash服务:
sudo systemctl start clash
步骤3:检查Clash服务状态
你可以使用以下命令检查Clash服务的状态:
sudo systemctl status clash
如果一切正常,你应该会看到类似以下的输出:
● clash.service - Clash daemon, A rule-based proxy in Go.
Loaded: loaded (/etc/systemd/system/clash.service; enabled; vendor preset: enabled)
Active: active (running) since ...(PB)查看日志
sudo journalctl -u clash
步骤4:管理Clash服务
你可以使用以下命令来管理Clash服务:
停止服务:
sudo systemctl stop clash重启服务:
sudo systemctl restart clash
通过这些步骤,你可以将Clash设置为系统服务,并使用Systemd来管理其生命周期。这样,Clash将在系统启动时自动启动,并在出现故障时自动重启。
系统代理脚本
要在Linux系统上编写脚本,以启用和禁用Clash系统代理,你可以使用以下两个Bash脚本来实现。
cd /home/plumbummkdir clash
vim start_clash.sh
脚本1:开启Clash代理
这个脚本会将系统的HTTP和HTTPS代理设置为Clash的本地代理。
创建一个名为 start_clash.sh 的脚本:
#!/bin/bash
# 设置代理地址和端口
PROXY_ADDRESS="127.0.0.1"
PROXY_PORT="7890"
# 设置系统代理
export http_proxy="http://${PROXY_ADDRESS}:${PROXY_PORT}"
export https_proxy="http://${PROXY_ADDRESS}:${PROXY_PORT}"
# 设置代理环境变量到当前会话的所有子进程
echo "export http_proxy=http://${PROXY_ADDRESS}:${PROXY_PORT}" >> ~/.bashrc
echo "export https_proxy=http://${PROXY_ADDRESS}:${PROXY_PORT}" >> ~/.bashrc
# 如果需要配置代理设置到网络配置文件,如 /etc/environment
echo "http_proxy=http://${PROXY_ADDRESS}:${PROXY_PORT}" | sudo tee -a /etc/environment
echo "https_proxy=http://${PROXY_ADDRESS}:${PROXY_PORT}" | sudo tee -a /etc/environment
echo "Clash代理已开启"
脚本2:关闭Clash代理
这个脚本会清除系统的HTTP和HTTPS代理设置。
创建一个名为 stop_clash.sh 的脚本:
#!/bin/bash
# 清除系统代理
unset http_proxy
unset https_proxy
# 从当前会话的子进程中移除代理环境变量
sed -i '/http_proxy=/d' ~/.bashrc
sed -i '/https_proxy=/d' ~/.bashrc
# 如果需要从网络配置文件中移除代理设置,如 /etc/environment
sudo sed -i '/http_proxy=/d' /etc/environment
sudo sed -i '/https_proxy=/d' /etc/environment
echo "Clash代理已关闭"
使用方法
创建脚本文件:在你的终端中使用文本编辑器(如
vim、nano)创建并编辑上述两个脚本文件。赋予执行权限:确保脚本文件具有执行权限。你可以使用
chmod +x命令来赋予权限:chmod +x start_clash.sh chmod +x stop_clash.sh运行脚本:
要开启Clash代理,运行:
./start_clash.sh要关闭Clash代理,运行:
./stop_clash.sh
通过这些脚本,你可以方便地控制Clash代理的启用和禁用。根据你的实际情况,你可能需要调整代理的地址和端口。
测试
curl -L google.com