用树莓派搭建代理服务器

后面利用容器的服务会越来越多,需要使用docker-compose 方便部署和管理。

我们之前在安装docker 的时候,直接在树莓派安装了docker.io: sudo apt-get install docker.io, 是没有compose 这命令的。

到github 上下载最新版本:doker compose release , 我这里使用的 linux-aarch64:

1
2
3
4
5
# 下载到/usr/local/bin/目录下
sudo wget https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-aarch64 -O /usr/local/bin/docker-compose

# 赋予可执行权限
sudo chmod +x /usr/local/bin/docker-compose

创建一个clash 的工作目录:

1
2
mkdir -p /home/pi/clash
cd /home/pi/clash

将你的clash 配置文件放置在这个目录下,并重命名为config.yaml

如果你是一个订阅链接,可以用下面的命令进行下载:

1
sudo wget https://www.xxx.com -O /home/pi/clash/config.yaml

查看你的配置文件,如果没有external-controller 这行,添加:

1
2
# 将9090端口暴露给yacd 进行管理
external-controller: '0.0.0.0:9090'

vim docker-compose.yaml 创建一个yaml 文件,并写入如下内容,保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: "3.8"
services:

clash:
image: dreamacro/clash-premium:latest
network_mode: host
volumes:
- /home/pi/clash/config.yaml:/root/.config/clash/config.yaml
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
container_name: clash

yacd:
image: haishanh/yacd:latest
container_name: yacd
ports:
- 8086:80
restart: unless-stopped

然后执行命令:

1
sudo docker-compose up -d

会自动下载并运行clash-premium 和yacd 镜像,其中clash 直接使用宿主机网络(意味着树莓派即可成为代理服务器,而端口则在config.yaml 中查看,我使用了混合端口mixed-port: 9981),并挂载了我们刚准备的clash 配置。yacd 对外映射了80端口到宿主机的8086端口。

浏览器输入网址:http://192.168.31.107:8086/ 访问yacd 页面,其中192.168.31.107 为我树莓派的ip 地址。

在页面的API Base URL下输入 http://192.168.31.107:9090/ ,即可对clash 进行查看和管理,其中9090 为上面在config.yaml 中添加的external-controller端口。

在其他设备中开启代理服务器配置,将ip 设为树莓派的ip,将端口设置为config.yaml 中的端口(http、https or mixed),进行测试吧。

可能有人要问,都已经运行openwrt 容器了,为啥还要单独弄一个clash 呢。因为我尝试过在openwrt 中进行插件开启,出现了一些预料外的错误而失败,而且我也不想影响游戏加速的稳定性,那就不如专网专用。


用树莓派搭建代理服务器
https://honosv.github.io/2023/09/10/用树莓派搭建代理服务器/
作者
Nova
发布于
2023年9月10日
许可协议