群晖docker安装并运行Clash+UI

By | 2020年7月5日

前一篇文章中我们提到了在群晖的 docker 中安装 RcloneBrowser,而为了更好的为其提供网络环境,这篇文章我们将介绍如何在群晖 docker 中安装并运行 Clash 以及 UI 界面。有关下载镜像和创建容器的步骤可以参考前文,这里便不再重复说明了。

1.准备 Clash 配置文件

本篇文章并不会涉及如何获取适当的 Clash 配置文件,这部分请自行想办法解决。

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

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

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

示例配置文件如下:

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

2.创建 Clash 容器

进入 docker 套件并下载映像 dreamacro/clash,随后双击映像创建容器,并点击高级设置。在卷页面中,为 /ui 创建文件夹挂载点,为 /root/.config/clash/config.yaml 创建文件挂载,指向前一步中的配置文件。

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

3.创建 UI 容器

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

4.登录使用

在确保以上两个容器都启动运行后,在浏览器中打开 http://群晖的ip地址:步骤3中的本地端口(本例中是 http://reizhix:5080),便可以看到如下的登陆界面。

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

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

98 thoughts on “群晖docker安装并运行Clash+UI”

  1. 岷江灵隐

    大佬你好,请教一下,我按照你的教程使用docker创建了dreamacro/clash和haishanh/yacd两个容器,也弄好了clash的配置文件,节点信息都是可以使用的。启动容器之后,可以看到clash的登陆界面,但是进去之后就是找不到节点信息,尝试了各种办法,都不行,不知道是哪一步错误了,希望得到你的帮助。方便的话可以加一下QQ吗,QQ;

    Reply ↓
  2. 小土

    你好,我的是omv系统,配置后能看到节点信息,选择节点后通过代理却无法达到效果。用相同的节点信息在电脑cladh客户端使用却正常留学。不知道是哪里出错呢?

    Reply ↓
    1. reizhi Post author

      UI 只是一个图形界面,类似 aria2 的 web 控制台。检查 ip 和端口设置

      Reply ↓
      1. Hollis

        感谢!我把yaml文件里external-controller:改成‘0.0.0.0:9090’后,能够成功进入控制台了!

        Reply ↓
  3. david

    很好的教程感谢,配置过程中发下yacd页面中没有confirm 按钮 ,在接口下方有个add 按钮,
    录入api url和port后点击add报failed to connect ,求指教,谢谢

    Reply ↓
    1. reizhi Post author

      我这里测试没有任何问题,请检查 yacd 中填入的 port > clash 容器对外映射 port > 配置文件中 external-controller 这整个链路中的端口设置情况。

      Reply ↓
      1. 拓海

        hhh多谢回复,我也一样刚发现,主要是教程中的UI布局不太一样无脑填了

        Reply ↓
  4. david

    大佬好,感谢您的分享,通过你的教程已成功在nas上部署clash,现在遇到几个奇怪的问题,
    1.clash容器日志的时间和容器的时间晚8个小时,请问大佬是否遇到以上类似问题,如何解决的。

    Reply ↓
    1. reizhi Post author

      群晖 docker 时区问题网上应该能搜到很多解决办法,这个就不赘述了。

      Reply ↓
  5. sail

    “很好的教程感谢,配置过程中发下yacd页面中没有confirm 按钮 ,在接口下方有个add 按钮,
    录入api url和port后点击add报failed to connect ,求指教,谢谢”

    同样的问题!一同求教!!!

    Reply ↓
  6. littlehuihui

    博主你好,我配置导入成功UI也可以运行,但是一直显示无连接,也无上传和下载,请教下是什么情况?

    Reply ↓
      1. littlehuihui

        日志出现大量[TCP] dial DIRECT (match IPCIDR/127.0.0.0/8) to 127.0.0.1 error: dial tcp4 127.0.0.1:2379: connect: connection refused

        Reply ↓
        1. reizhi Post author

          日志完全不应该出现127.0.0.1这样的ip,我建议你再仔细看一次教程。

          Reply ↓
  7. username.seesee

    不错,非常简单,一次成功。

    有了这样的代理之后,很多客户端设备上就不用装任何软件了,直接一个代理就OK了,目前发现TG的手机客户端上不了,估计是因为WIFI网络连接中设置的代理是HTTP代理,TG好像需要socks代理才行。

    Reply ↓
    1. reizhi Post author

      IOS 版在 Data and Storage 里可以单独设置 socks5 代理

      Reply ↓
  8. WZY

    DDNS怎么解决?用花生壳DDNS,synology代理设置本机后,DDNS无法连接。

    Reply ↓
    1. reizhi Post author

      我不太明白你为什么要给群晖设置代理,这个的目的是给局域网其他设备作为代理网关。
      群晖的代理建议在路由器上部署。

      Reply ↓
  9. nimo

    谢谢大佬的教程!我在威联通上安装成功了,端口和你设置的一样。但是进去ui界面后发现网速一直为零,并且连接数也一直为零,用emby的tmdb刮削失败了。进入ui界面还需要设置啥么?

    Reply ↓
    1. QNAP NAS

      您好,請問威聯通上如何設置,我找不到可以掛在config.yaml的地方,也就是沒找到作者所說/ui的那四個選項卡界面。謝謝!

      Reply ↓
  10. nimo

    谢谢大佬的教程!我在威联通上安装好之后进去ui发现速度和连接数都为0,想用tmdb刮削失败了。进入ui后还需要设置啥么?

    Reply ↓
    1. reizhi Post author

      我没用过 emby ,按这个教程设置完并不会给群晖加上代理。你还要在需要使用代理的软件里(比如 emby)去设置代理,比如按教程设置是 HTTP 代理:nasip:5890,或者 socks 代理 nasip:5891 。

      Reply ↓
      1. nimo

        谢谢!我看emby没有地方设置代理,我路由器ax3也没法设置api强制走代理。我还是乖乖改hosts吧

        Reply ↓
  11. llx

    这个设置完成后 是不是群晖本身还是没法走代理规则,我想用cloud sync同步google云盘,看网上的好多教程试了v2ray和clash都只能帮助局域网连接,本身似乎没法用,请问大佬有什么好的解决办法吗?

    Reply ↓
      1. DAYSHEN

        其实我也有一新的问题,但路由有梯子那就不需要运行这个了~

        Reply ↓
  12. 机灵的问题

    我的clash和yacd都安装配置好了,但是遇到了一个绝望的问题,yacd并不像win客户端一样可以科学上网的配置,这该怎么弄啊

    Reply ↓
  13. Jerry

    其他我都看懂了,就是装载路径我不明白,我的群晖NAS上并没有这个目录和路径,这样填写是否可以?
    我也在后面IP:5080这里出现了ADD的页面,然后输入HTTP://IP:9090 提示Failed to connect

    Reply ↓
    1. reizhi Post author

      文件/文件夹你按照自己实际的填,装载路径按图原样填。
      如果基础薄弱建议先去了解些 docker 基础。

      Reply ↓
  14. pdx

    This program can only be run on AMD64 processors with v3 microarchitecture support. 我的clash运行报错,大佬知道啥原因吗

    Reply ↓
      1. reizhi Post author

        你的机型是 arm 处理器吧,这是 clash 的报错还是 yacd 的?

        Reply ↓
      2. Shadow

        换一个dreamacro/clash的tag来部署,我用latest(v1.10.0)也是这个问题,用dev的就可以。

        Reply ↓
  15. grape

    大佬你好 按教程配置好了 以后clash可以用了 ,我用ps4设完代理联网没问题了 。
    但是浏览器输入IP:端口连不上去,显示无法访问此页面 ..**(我的IP)已拒绝连接。端口都按教程设置了,这么搞都连不上,求救!!

    Reply ↓
    1. reizhi Post author

      这个IP端口不是给你浏览器访问用的,请设置代理。

      Reply ↓
  16. 牛卡

    请教一下,有没可以自动更新订阅配置的具体方法呢

    Reply ↓
    1. Hsinchu

      正好我也有这个需求就自己搞了一下,控制面板-计划任务创建一个root任务
      curl -o /volume1/docker/clash/config.yaml https://sub.nya-cloud.com/link/**********?clash=1
      docker restart dreamacro-clash
      其中/volume1/docker/clash是你配置文件的目录,右键目录点属性看位置,dreamacro-clash是你docker容器的名字

      Reply ↓
  17. 梧桐

    你好,感谢你的教程,比其他很多地方的都简洁有效多了
    但是我根据教程部署过程中出现一个问题,报错无法下载mmbd文件,我手动下载这个文件放在映射的config目录下,但是并不起作用,依然报错。
    请问这个要怎么处理?

    time=”2022-04-20T15:40:04Z” level=fatal msg=”Initial configuration directory error: can’t initial MMDB: can’t download MMDB: Get \”https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb\”: dial tcp: lookup cdn.jsdelivr.net on 8.8.8.8:53: dial udp 8.8.8.8:53: connect: network is unreachable”

    Reply ↓
    1. reizhi Post author

      建议你检查本地网络不要挂代理,我这边测试Country.mmdb很顺利可以下载。
      下载这一步是写死在dockerfile里的,并不会因为本地已经存在就跳过下载。

      Reply ↓
  18. Alie

    感谢大神。教程很好,我小白也基本搞定。现有一问题。我在macOS上安装有CLASH,在IVPN付费订阅了流量给到一个.yamkl文件。我现按你的思路在nas上导入了这个yaml文件,打开clash+ui显示我的mac和iphone(事先设定了通过NAS代理上网)国内网都是从CLASH上走的。但是需要科学上网的外网节点(yaml文件内proxies这些站点)测试都没速率(该显示速率的地方显示:Vmess),这个是什么问题,该如何解决。是订阅的问题吗
    再次感谢!我本意是想在nas上做一个代理服务器,实现多设备同时能科学上网

    Reply ↓
    1. reizhi Post author

      你可以在 mac 端用 clashx 测试一下这个订阅是否能用。

      Reply ↓
  19. 王哈哈

    老师你好,我订阅的节点信息是在CFS配置-以文本模式编辑,然后另存为yaml文件导入的,但是它的配置是mixed-port: 7890
    allow-lan: true
    bind-address: ‘*’
    mode: rule
    log-level: info
    external-controller: ‘127.0.0.1:9090’
    可以看到他只配置了一个mixed-port,其他http和sock都是0,这种需要自己加上吗, 另外我这个代理限制2个客户端,在局域网多台设备设置群晖nas出来的代理算是一个客户端吗,设置代理填不填认证信息用户名和密码呢(clash ui 配置完了,也看到了代理线路,但是不会用其他设备局域网内连接这个代理。。。不知道怎么用得)

    Reply ↓
    1. reizhi Post author

      不需要,mixed-port 代表端口同时接受 http 和 socks 代理。
      不会认定为多个客户端。
      代理设置 http://nasip:7890 或者 socks5://nasip:7890

      Reply ↓
  20. tu66

    请教一下,我按照教程安装后,一运行就意外暂停,看了下日志,说只支持amd64处理器,我用的220+,不知有适合的映像吗?

    Reply ↓
  21. 老小白

    dns:
    ake-ip-range: 198.18.0.1/16
    default-nameserver:
    – 114.114.114.114
    – 119.29.29.29
    – 223.5.5.5
    enable: true
    enhanced-mode: redir-host
    fallback-filter:
    geoip: true
    ipcidr:
    – 240.0.0.0/4
    ipv6: false
    nameserver:
    – https://223.5.5.5/dns-query
    – https://223.6.6.6/dns-query
    – https://doh.pub/dns-query
    use-hosts: true
    port: 7890
    socks-port: 7891
    redir-port: 7892
    allow-lan: true
    mode: Rule
    log-level: info
    external-controller: ‘0.0.0.0:9090’
    secret: ”
    bind-address: 127.0.0.1
    proxies:
    这个是我的config.yaml文件的前面部分,现在面板可以进入,也显示节点信息,我的电脑网卡设置设定网关和dns为群晖ip,也没有办法越过鸿沟,难道docker里面的网络设置出了问题,docker里面容器连接的网络是bridge,

    Reply ↓
      1. 老小白

        用port扫描工具扫描群晖ip,发现7890/7891端口并未开放(5890/5891也没开),启动映像的高级设置里网络模式是bridge,不知道是哪里设置错误,在电脑网络设定代理也没有用。谢谢热心的作者,不管这条有没有收到回复都感谢

        Reply ↓
  22. 新云

    楼主,这个怎么才能给群晖全局代理呢,像我用其他应用也没法走这边的代理,那这个的作用是干啥的啊

    Reply ↓
    1. reizhi Post author

      给其他docker或局域网内其他设备提供服务,无法代理本机。

      Reply ↓
      1. sunbeam

        可以的,群晖里设置代理就行了,但应该不是所有应用都能用吧

        Reply ↓
  23. sunbeam

    我发现在外面的时候,只能通过映射到公网再访问,不能填局域网IP,否则yacd就会显示连接失败

    Reply ↓
  24. dywt

    我快要疯掉了,9090端口直接访问能返回配置正确的提示,但是yacd无论如何都连不上~ 通过在线的控制台页面也好 还是部署UI镜像也好,都不连不上控制页面。目前是UI的端口都访问不了。

    Reply ↓
  25. syydnr

    大佬,搞完节点可以看到也可以测速成功,但概览里速度一直是0怎么破啊

    Reply ↓
      1. syydnr

        那大佬请问下有能直接代理本机的容器或其他方法的教程吗

        Reply ↓
  26. holo

    大佬
    external-controller: ‘127.0.0.1:9090
    和0.0.0.0:9090有什么区别,127是localhost 为什么就会add 不了链接而用0.0.0.0:9090就可以

    Reply ↓
  27. 猪想发福人想红

    都成功了,但是怎么让电脑手机能用这个上网啊?谷歌还是访问不了啊

    Reply ↓
  28. laoxia

    你好,大佬,请求帮忙,能否付费配置一下CLASH代理。

    Reply ↓
  29. Carmen

    你好,我是绿联dx4600的nas,x86架构。
    现在已经安装了clash和yacd,并且访问ip:9090后会显示hello clash,应该是已经设置好了吧?
    但yacd界面,填入ip和端口后,总是显示无法连接,Failed to connect,想问问应该如何处理?

    Reply ↓
  30. 沃德天

    付费求助,搭建成功之后QQ有网收不到图片,网页goole是好的但是 tg的软件没网,twitch软件直播有画面聊天室连接不上,网页的却一切正常。

    Reply ↓
      1. 沃德天

        我是群晖docker跑的clash,
        配置文件
        mixed-port: 7890
        allow-lan: true
        bind-address: ‘*’
        mode: rule
        log-level: info
        external-controller: ‘0.0.0.0:9090
        然后端口
        7890/tcp 5890
        7891/tcp 5891
        9090/tcp 5090
        我是华为手机修改wifi代理手动
        主机名 内网NASIP 端口5090.

        Reply ↓
  31. 梁非凡

    作者怎么联系您,想有偿帮忙解答一下问题,关于如何doker走代理

    Reply ↓
    1. reizhi Post author

      让其他docker走这个代理?建议把问题说清楚

      Reply ↓
  32. 彼特天下

    为什么在打开群晖IP:5080,出现登录界面时和作者的不一样,API BASE URL输入了群晖的IP:5090, 后面的Sceret和Label都没有填,点ADD出现fail to Connect

    Reply ↓
    1. reizhi Post author

      10元单次先款,可以接受的话再回复我一次

      Reply ↓
  33. 天使风

    大佬好,想装个容器跑代理,最好是passwall2的,因为之前在op里用的这个。不行的话,clash也可以。接待有偿。谢谢

    Reply ↓
    1. reizhi Post author

      passwall只是个op插件,做不到docker运行。clash docker单次20,订阅不能自动更新

      Reply ↓
  34. 一光年

    我只用了 dreamacro/clash 镜像,反正测试结果是docker网络模式 bridge不行,必须是 host

    Reply ↓
  35. MY

    我的容器启动不了,报错OCI runtime exec failed: exec failed: container_linux.go:367

    Reply ↓
    1. reizhi Post author

      其他容器里跑的应用本身要支持设置代理才行

      Reply ↓
  36. 轻舞飞扬华松

    ADD出现fail to Connect,请把clash文件夹下的配置文件删除,重启容器,会自动创建一个配置文件,然后下载或修改这个文件,将相关配置数据修改填充进去,重新覆盖原文件就可以了,我弄半天才发现这个配置文件的名称有问题,无论怎么修改都不对,只有用这种方法才保证和容器要求的一至,好奇葩!

    Reply ↓
  37. 已解决

    docker里面的网络必须是host,用brdige是不通的
    连不上ui的解决办法是:配置文件的写法是 external-controller: 0.0.0.0:9090

    Reply ↓
  38. 吃面

    你好,我用这个方法设置好后可以正常上网,但是套件中心提示无法联网,请问您遇到过这样的问题吗

    Reply ↓

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

滑动到最右以进行验证 *