部署服务的方案
- 推荐在国内云主机上部署,这样个人设备能顺利连接服务器,随时都能使用云主机转发请求。
- 或者在树莓派、家庭服务器上部署,通过家庭网络的设备都能方便接入。
服务端部署 Clash
从网络服务平台获取 clash 配置文件 config.yaml,一些平台仅提供订阅,这种情况可以使用桌面版 Clash 加载并生成配置文件。(互联网上的服务需务必设置认证)
添加认证
在配置文件 config.yaml 中添加修改如下设置,分别为 RESTful API 监听地址、RESTful API 密钥,另一个是认证代理的用户名密码。
external-controller: '0.0.0.0:9090'
secret: "your-secret"
authentication:
- "username:passwd"
启动服务
将配置放置在 /etc/clash/config.yaml
$ sudo docker run -d --name clash --restart=unless-stopped -v "/etc/clash/config.yaml:/root/.config/clash/config.yaml" -p 9090:9090 -p 7890:7890 dreamacro/clash
在本地测试服务器端口是否可达,如果访问不通,排查云主机是否开放了端口。
$ telnet [服务器IP] 7890
如果在配置文件中使用的是 mixed-port
,则 socks5 和 http 代理共用 7980 端口,代理地址都为
username:passwd@[服务器IP]:7890
此时 HTTP 代理已经可以工作,使用 curl 工具测试代理。
curl --socks5 user:passwd@[服务器IP]:7890 https://ifconfig.me/ip
输出 IP 地址为代理提供的地址说明代理已工作。
Cash Web 面板(Yacd)
Yach 是 Clash Web 版的面板,可以查看服务状态,上传下载的流量统计信息。
$ sudo docker run -p 1234:80 -d --name yacd ghcr.io/haishanh/yacd:master
访问 http://[服务器IP]:1234
进入页面,填写 Clash 地址,本例为 http://[服务器IP]:9090
,secret 填写 config.yaml 中配置的 secret 值,添加后点击新增的链接进入页面。
clash 及 yacd 的部署使用到这里就记录完成了。
以下是 Podman 部署方式(可选)
$ podman run -d --name clash -v "/etc/clash/config.yaml:/root/.config/clash/config.yaml" -p 9090:9090 -p 7890:7890 dreamacro/clash
$ podman run -p 1234:80 -d --name yacd ghcr.io/haishanh/yacd:master
因为 podman 无守护进程,所以不能在系统重启时自动启动容器。
配置自启动,可查阅 podman generate systemd
使用,此处不做过多记录。