云服务器使用 Docker 搭建 Clash 代理

type
Post
status
Published
date
Dec 6, 2022
slug
clash-docker
summary
将 clash 服务在 Docker 容器中运行,使用 volumes 挂载 clash 的配置文件,并定时更新该配置文件
tags
工具
Clash
docker
Linux
Proxy
icon
🚧
clash 这 UI 不太靠谱,能不能连上随缘 目前已经换成了 v2rayA: 云服务器使用 v2rayA

1. 思路分析

将 clash 服务在 Docker 容器中运行,使用 volumes 挂载 clash 的配置文件,并定时更新该配置文件

2 操作

2.1 服务器安装 Docker(略)

2.2 安装 clash

2.2.1 创建存放配置文件的目录

2.2.2 创建 config.yaml 文件

<你的Clash订阅链接> 为购买或自建的机场提供
下载下来的 config.yaml 格式如下:
需要关注的只是: port , socks-port 里的端口值,一般是 7890 , 7891

2.3.2 创建 docker-compose.yaml 文件并添加内容

内容如下:
network_mode: "host" 必须是 host,不能是default(bridge),不然代理不上

2.3.3 开放云服务器 7890, 7891, 9090 等端口

在云服务器管理界面,防火墙里开放端口即可。

2.3.4 启动服务

无报错,即为成功。如果有报错,通常都是端口被占用等原因,换个端口。

2.3.5 服务器代理环境变量配置

追加如下内容
(之所以要用根目录下的 .bashrc ,是为了其他非 root 用户也能使用)

2.3.6 测试

2.3.6.1 未打开代理前测试
可以正常返回内容
notion image
notion image
无法返回内容
 
2.3.6.2 打开代理后测试
notion image
 

2.3 定期更新订阅

机场的服务器是不断变化的,所以我们也需要不断更新我们的 config.yaml 文件

2.3.1 新建一个脚本文件

内容如下:
注意更改 <你的clash订阅地址>
赋予其可执行权限:

2.3.2 定期执行脚本

赋予其可执行权限:

2.3.2 定期执行脚本

2.4 UI 界面

Yet Another clash dashboard(yacd) 提供了一个网站
在弹出的界面输入 http://你的服务器IP:9090 ,点击Add 即可。
 
 
 

参考


© insv 2021 - 2023