Clash 服务运行
Clash 需要在后台运行, 但是目前 Golang 还没有很好的守护进程实现, 因此我们推荐使用第三方工具来创建 Clash 的守护进程.
systemd
使用以下命令将 Clash 二进制文件复制到 /usr/local/bin
, 配置文件复制到 /etc/clash
:
shell
cp clash /usr/local/bin
cp config.yaml /etc/clash/
cp Country.mmdb /etc/clash/
创建 systemd 配置文件 /etc/systemd/system/clash.service
:
ini
[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:
shell
systemctl daemon-reload
使用以下命令在系统启动时启动 Clash:
shell
systemctl enable clash
使用以下命令立即启动 Clash:
shell
systemctl start clash
使用以下命令检查 Clash 的运行状况和日志:
shell
systemctl status clash
journalctl -xe
本指南贡献者为 ktechmidas. (#754)
Docker
本项目提供了预构建的 Clash 和 Clash Premium Docker 镜像. 因此, 在 Linux 上您可以使用 Docker Compose 部署 Clash. 但是, 您应该知道在容器中运行 Clash Premium 是不被推荐的
WARNING
由于 Mac 版 Docker 中缺少主机网络和 TUN 支持, 此设置将无法在 macOS 系统上运行.
yaml
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"
yaml
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:
shell
docker-compose up -d
您可以使用以下命令查看日志:
shell
docker-compose logs
Stop Clash with:
shell
docker-compose stop