cover
2025年2月23日

NAS 中使用 Docker 部署 Clash

NAS 中部署的一些服务经常需要科学上网才能正常工作,比如青龙中安装依赖、prowlarr 中更新索引器等。虽然可以通过本地电脑共享给 NAS 使用,但某些时候很不方便,比如服务偶尔重启但本地电脑未开机等。所以决定在 NAS 中部署一下 Clash,自给自足。

正文

目前使用的是现成的镜像 clash-and-dashboard,包含了 Clash 和 Clash Dashboard,方便通过 UI 进行管理。

Docker Compose 配置

services:
    clash:
        image: laoyutang/clash-and-dashboard:latest
        container_name: clash
        restart: always
        ports:
            - '7888:8080'
            - '7890:7890'
        logging:
            options:
                max-size: '1m'
        volumes:
            - ./clash/:/root/.config/clash/

直接通过 docker compose 启动,配置极其简洁,两个端口映射,一个用于 Dashboard,一个用于 Clash 代理,如果需要用到其他端口如 socks 可自行添加;一个 volume 映射,用于保存配置文件。

Clash 配置文件

Clash 配置文件则直接使用自己已有的配置,目前大部分机场提供的都是订阅模式,不过这个镜像还不支持自动更新订阅,所以直接通过订阅链接下载配置文件即可。下载完成后在启动目录下创建 clash 文件夹,并将该文件命名为 config.yaml 放入文件夹即可。如果需要更新配置,需要重新下载并覆盖替换,替换完成后记得重启容器。

Console 界面

当 Docker Compose 配置和 Clash 配置文件都准备好后即可启动容器,启动完成后访问 http://nas-ip:7888(需要按照自己配置的端口映射) 即可看到 Clash Dashboard 界面,可以在这里进行代理切换、查看连接、规则等。

另外这里需要特别注意,必须要开启 允许来自局域网的连接,否则其他服务或设备将无法连接。

如果发现 允许来自局域网的连接 默认关闭,强烈介意手动更改 config.yaml 文件,将 allow-lan 设置为 true否则每次服务重启都需要手动打开开关

port: 7890
socks-port: 7891
redir-port: 7892
# 这里修改
allow-lan: true
mode: rule

然后重启容器检查,如果重启后开关正常打开,这表示配置生效。

结语

Clash 在 NAS 中部署后,即可实现 NAS 的科学上网自给自足,不用再依赖其他设备。而且 NAS 作为长期开机设备,也可以作为一个稳定的代理设备,方便其他局域网设备使用,比如 Switch 等。

引用