Clash服务运行

Clash 服务运行

Clash 需要在后台运行,但是目前 Golang 还没有很好的守护进程实现,因此我们推荐使用第三方工具来创建 Clash 的守护进程。

systemd

使用以下命令将 Clash 二进制文件复制到 /usr/local/bin,配置文件复制到 /etc/clash:

1
2
3
cp clash /usr/local/bin
cp config.yaml /etc/clash/
cp Country.mmdb /etc/clash/

创建 systemd 配置文件 /etc/systemd/system/clash.service:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Clash 守护进程, Go 语言实现的基于规则的代理.
After=network-online.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/clash -d /etc/clash

[Install]
WantedBy=multi-user.target

之后, 您应该使用以下命令重新加载 systemd:

1
systemctl daemon-reload

使用以下命令在系统启动时启动 Clash:

1
systemctl enable clash

使用以下命令立即启动 Clash:

1
systemctl start clash

使用以下命令检查 Clash 的运行状况和日志:

1
2
systemctl status clash
journalctl -xe

本指南贡献者为 ktechmidas. (#754)

Docker

本项目提供了预构建的 Clash 和 Clash Premium Docker 镜像。因此,在 Linux 上您可以使用 Docker Compose 部署 Clash。但是,您应该知道在容器中运行 Clash Premium不被推荐的

WARNING: 由于 Mac 版 Docker 中缺少主机网络和 TUN 支持, 此设置将无法在 macOS 系统上运行。

Clash:

1
2
3
4
5
6
7
8
9
10
11
12
services:
clash:
image: ghcr.io/dreamacro/clash
restart: always
volumes:
- ./config.yaml:/root/.config/clash/config.yaml:ro
# - ./ui:/ui:ro # 仪表盘 Volume 映射
ports:
- "7890:7890"
- "7891:7891"
# - "8080:8080" # 外部控制 (RESTful API)
network_mode: "bridge"

Clash Premium:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
clash:
image: ghcr.io/dreamacro/clash-premium
restart: always
volumes:
- ./config.yaml:/root/.config/clash/config.yaml:ro
# - ./ui:/ui:ro # 仪表盘 Volume 映射
ports:
- "7890:7890"
- "7891:7891"
# - "8080:8080" # 外部控制 (RESTful API)
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
network_mode: "host"

保存为 docker-compose.yaml, 并将您的 config.yaml 放在同一目录下.

TIP: 在继续操作之前,请参考您的平台关于时间同步的文件 - 如果时间不同步,某些协议可能无法正常工作。

准备就绪后, 运行以下命令以启动 Clash:

1
docker-compose up -d

您可以使用以下命令查看日志:

1
docker-compose logs

您可以使用以下命令停止 Clash:

1
docker-compose stop

Clash服务运行
https://blog.qingyi-studio.top/2024/07/04/Clash服务运行/
作者
QingYi Studio
发布于
2024年7月4日
更新于
2024年8月27日
许可协议