引言

效果展示

过程 (docker)

clash

1
2
3
4
5
6
# 运行 Clash
mkdir ~/clash
cp ./config.yaml ~/clash/ # config.yaml 是 Clash 的配置文件
docker run --name clash \
-p 9090:9090 -p 7890:7890 -p 7891:7891 \
-v ~/clash/config.yaml:/root/.config/clash/config.yaml -d dreamacro/clash

过程 (nas)

准备 Clash 配置文件[1]

在准备好 Clash 配置文件后,使用任意文本编辑器打开,查找并确认以下设置:(不要带上#及后面的部分)

1
2
3
4
port: 7890 #http/https 监听端口
socks-port: 7891 #socks5 监听端口
allow-lan: true #允许外部连接
external-controller: 9090 #UI 监听端口

如果配置文件中不存在对应的项目,请在文件头部进行添加。其中第一,第二及第四项的端口号可以在 1024-65535 之间任意设置但不得重复,第三项必须设置为 true。

示例配置文件如下:

保存后将该文件复制到群晖的共享文件夹中,如 /docker/clash/sub.yaml。

创建 Clash 容器

进入 docker 套件并下载映像 dreamacro/clash,随后双击映像创建容器,并点击高级设置。

重启策略

容器退出时重启(不考虑在进程启动时就已经停止了…

挂载点

在卷页面中

  1. 为 /ui 创建文件夹挂载点,
  2. 为 /root/.config/clash/config.yaml 创建文件挂载,指向前一步中的配置文件。
    挂载点设置

在端口设置页面中,为前一步中的 port, socks-port, external-controller 三个端口创建对应的映射端口。如有需要类型可以选择 TCP 和 UDP。

映射端口设置

创建 UI 容器

在 docker 中下载映像 haishanh/yacd 并创建容器,这里只需要为 80 端口创建映射端口即可。

5080:80

登录使用

在确保以上两个容器都启动运行后,在浏览器中打开 <http://群晖的 ip 地址:步骤 3 中的本地端口>

(本例中是 http://reizhix:5080,便可以看到如下的登陆界面。

其中,Hostname 填写群晖的 ip 地址(切勿使用默认的 127.0.0.1),Port 填写步骤 2 中 9090 所对应的映射端口(本例中是 5090),点击 Confirm 即可进入 Clash UI 的主界面。

此时 Clash 会监听步骤 2 中的 7890 和 7891 端口并向局域网提供服务。由于本教程中没有配置认证,请勿将相关端口映射到外网。

1
docker run -p 5058:80 -d --rm haishanh/yacd

结论

引用

  1. 群晖 docker 安装并运行 Clash+UI | reizhi