前一篇文章中我们提到了在群晖的 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 端口并向局域网提供服务。由于本教程中没有配置认证,请勿将相关端口映射到外网。
大佬你好,请教一下,我按照你的教程使用docker创建了dreamacro/clash和haishanh/yacd两个容器,也弄好了clash的配置文件,节点信息都是可以使用的。启动容器之后,可以看到clash的登陆界面,但是进去之后就是找不到节点信息,尝试了各种办法,都不行,不知道是哪一步错误了,希望得到你的帮助。方便的话可以加一下QQ吗,QQ;
我也没炸到节点配置的地方。。。
很好的教程,成功配置了,谢谢博主!
你好,我的是omv系统,配置后能看到节点信息,选择节点后通过代理却无法达到效果。用相同的节点信息在电脑cladh客户端使用却正常留学。不知道是哪里出错呢?
需要手动设置电脑的代理为你omv的ip:端口
很奇怪UI 一直 链接不上去。
UI 只是一个图形界面,类似 aria2 的 web 控制台。检查 ip 和端口设置
把 external-controller: 改成 ‘0.0.0.0:9090’
感谢!我把yaml文件里external-controller:改成‘0.0.0.0:9090’后,能够成功进入控制台了!
很好的教程感谢,配置过程中发下yacd页面中没有confirm 按钮 ,在接口下方有个add 按钮,
录入api url和port后点击add报failed to connect ,求指教,谢谢
我这里测试没有任何问题,请检查 yacd 中填入的 port > clash 容器对外映射 port > 配置文件中 external-controller 这整个链路中的端口设置情况。
我估计你犯了和我一样的错.. 前面那个框里面直接填 http://192.168.xx.xx:9090 后面那个框是secure, 我之前是填的端口号 , 仔细看才发现问题
hhh多谢回复,我也一样刚发现,主要是教程中的UI布局不太一样无脑填了
http://clash.razord.top/#/proxies通过这个 gui 可以访问,通过 部署的yacd连接不上,还没有定位到原因。
大佬好,感谢您的分享,通过你的教程已成功在nas上部署clash,现在遇到几个奇怪的问题,
1.clash容器日志的时间和容器的时间晚8个小时,请问大佬是否遇到以上类似问题,如何解决的。
群晖 docker 时区问题网上应该能搜到很多解决办法,这个就不赘述了。
“很好的教程感谢,配置过程中发下yacd页面中没有confirm 按钮 ,在接口下方有个add 按钮,
录入api url和port后点击add报failed to connect ,求指教,谢谢”
同样的问题!一同求教!!!
把external-controller:改成 ‘0.0.0.0:9090’
博主你好,我配置导入成功UI也可以运行,但是一直显示无连接,也无上传和下载,请教下是什么情况?
检查所有的端口设置和映射
日志出现大量[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
日志完全不应该出现127.0.0.1这样的ip,我建议你再仔细看一次教程。
不错,非常简单,一次成功。
有了这样的代理之后,很多客户端设备上就不用装任何软件了,直接一个代理就OK了,目前发现TG的手机客户端上不了,估计是因为WIFI网络连接中设置的代理是HTTP代理,TG好像需要socks代理才行。
IOS 版在 Data and Storage 里可以单独设置 socks5 代理
DDNS怎么解决?用花生壳DDNS,synology代理设置本机后,DDNS无法连接。
我不太明白你为什么要给群晖设置代理,这个的目的是给局域网其他设备作为代理网关。
群晖的代理建议在路由器上部署。
谢谢大佬的教程!我在威联通上安装成功了,端口和你设置的一样。但是进去ui界面后发现网速一直为零,并且连接数也一直为零,用emby的tmdb刮削失败了。进入ui界面还需要设置啥么?
您好,請問威聯通上如何設置,我找不到可以掛在config.yaml的地方,也就是沒找到作者所說/ui的那四個選項卡界面。謝謝!
谢谢大佬的教程!我在威联通上安装好之后进去ui发现速度和连接数都为0,想用tmdb刮削失败了。进入ui后还需要设置啥么?
我没用过 emby ,按这个教程设置完并不会给群晖加上代理。你还要在需要使用代理的软件里(比如 emby)去设置代理,比如按教程设置是 HTTP 代理:nasip:5890,或者 socks 代理 nasip:5891 。
谢谢!我看emby没有地方设置代理,我路由器ax3也没法设置api强制走代理。我还是乖乖改hosts吧
这个设置完成后 是不是群晖本身还是没法走代理规则,我想用cloud sync同步google云盘,看网上的好多教程试了v2ray和clash都只能帮助局域网连接,本身似乎没法用,请问大佬有什么好的解决办法吗?
在路由器上挂梯
其实我也有一新的问题,但路由有梯子那就不需要运行这个了~
我的clash和yacd都安装配置好了,但是遇到了一个绝望的问题,yacd并不像win客户端一样可以科学上网的配置,这该怎么弄啊
需要一个 Clash 配置文件,见第一节。
其他我都看懂了,就是装载路径我不明白,我的群晖NAS上并没有这个目录和路径,这样填写是否可以?
我也在后面IP:5080这里出现了ADD的页面,然后输入HTTP://IP:9090 提示Failed to connect
文件/文件夹你按照自己实际的填,装载路径按图原样填。
如果基础薄弱建议先去了解些 docker 基础。
This program can only be run on AMD64 processors with v3 microarchitecture support. 我的clash运行报错,大佬知道啥原因吗
我也出现这个问题了,请问解决了吗?
你的机型是 arm 处理器吧,这是 clash 的报错还是 yacd 的?
j1900安装最新版的clash客户端也出现了这种报错
换一个dreamacro/clash的tag来部署,我用latest(v1.10.0)也是这个问题,用dev的就可以。
大佬你好 按教程配置好了 以后clash可以用了 ,我用ps4设完代理联网没问题了 。
但是浏览器输入IP:端口连不上去,显示无法访问此页面 ..**(我的IP)已拒绝连接。端口都按教程设置了,这么搞都连不上,求救!!
这个IP端口不是给你浏览器访问用的,请设置代理。
请教一下,有没可以自动更新订阅配置的具体方法呢
你可以写个脚本定时下载配置
正好我也有这个需求就自己搞了一下,控制面板-计划任务创建一个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容器的名字
你好,感谢你的教程,比其他很多地方的都简洁有效多了
但是我根据教程部署过程中出现一个问题,报错无法下载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”
建议你检查本地网络不要挂代理,我这边测试Country.mmdb很顺利可以下载。
下载这一步是写死在dockerfile里的,并不会因为本地已经存在就跳过下载。
感谢大神。教程很好,我小白也基本搞定。现有一问题。我在macOS上安装有CLASH,在IVPN付费订阅了流量给到一个.yamkl文件。我现按你的思路在nas上导入了这个yaml文件,打开clash+ui显示我的mac和iphone(事先设定了通过NAS代理上网)国内网都是从CLASH上走的。但是需要科学上网的外网节点(yaml文件内proxies这些站点)测试都没速率(该显示速率的地方显示:Vmess),这个是什么问题,该如何解决。是订阅的问题吗
再次感谢!我本意是想在nas上做一个代理服务器,实现多设备同时能科学上网
你可以在 mac 端用 clashx 测试一下这个订阅是否能用。
老师你好,我订阅的节点信息是在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 配置完了,也看到了代理线路,但是不会用其他设备局域网内连接这个代理。。。不知道怎么用得)
不需要,mixed-port 代表端口同时接受 http 和 socks 代理。
不会认定为多个客户端。
代理设置 http://nasip:7890 或者 socks5://nasip:7890
请教一下,我按照教程安装后,一运行就意外暂停,看了下日志,说只支持amd64处理器,我用的220+,不知有适合的映像吗?
你可以参考前面的回复,用 dev 这个 tag 。
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,
不是设置网关和dns,而是设置浏览器代理。
用port扫描工具扫描群晖ip,发现7890/7891端口并未开放(5890/5891也没开),启动映像的高级设置里网络模式是bridge,不知道是哪里设置错误,在电脑网络设定代理也没有用。谢谢热心的作者,不管这条有没有收到回复都感谢
楼主,这个怎么才能给群晖全局代理呢,像我用其他应用也没法走这边的代理,那这个的作用是干啥的啊
给其他docker或局域网内其他设备提供服务,无法代理本机。
可以的,群晖里设置代理就行了,但应该不是所有应用都能用吧
大佬请问下如何设置给docker的其他容器代理啊?
我发现在外面的时候,只能通过映射到公网再访问,不能填局域网IP,否则yacd就会显示连接失败
我快要疯掉了,9090端口直接访问能返回配置正确的提示,但是yacd无论如何都连不上~ 通过在线的控制台页面也好 还是部署UI镜像也好,都不连不上控制页面。目前是UI的端口都访问不了。
大佬,搞完节点可以看到也可以测速成功,但概览里速度一直是0怎么破啊
不能代理本机
那大佬请问下有能直接代理本机的容器或其他方法的教程吗
大佬
external-controller: ‘127.0.0.1:9090
和0.0.0.0:9090有什么区别,127是localhost 为什么就会add 不了链接而用0.0.0.0:9090就可以
直接 :9090 就可以
都成功了,但是怎么让电脑手机能用这个上网啊?谷歌还是访问不了啊
手动设置代理: ip:7890
你好,大佬,请求帮忙,能否付费配置一下CLASH代理。
搜不到你的qq号,注意后续邮件
你好,我是绿联dx4600的nas,x86架构。
现在已经安装了clash和yacd,并且访问ip:9090后会显示hello clash,应该是已经设置好了吧?
但yacd界面,填入ip和端口后,总是显示无法连接,Failed to connect,想问问应该如何处理?
我也是一样的问题
付费求助,搭建成功之后QQ有网收不到图片,网页goole是好的但是 tg的软件没网,twitch软件直播有画面聊天室连接不上,网页的却一切正常。
简单说一下你的本机怎么设置的代理
我是群晖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.
代理端口用5890
作者怎么联系您,想有偿帮忙解答一下问题,关于如何doker走代理
让其他docker走这个代理?建议把问题说清楚
为什么在打开群晖IP:5080,出现登录界面时和作者的不一样,API BASE URL输入了群晖的IP:5090, 后面的Sceret和Label都没有填,点ADD出现fail to Connect
Clash 配置文件帮忙处理一下
10元单次先款,可以接受的话再回复我一次
群晖Clash配置,需付费帮忙处理
10元单次先款,可以接受的话再回复我一次
为什么要手动配置代理IP啊 能不能自动啊
大佬好,想装个容器跑代理,最好是passwall2的,因为之前在op里用的这个。不行的话,clash也可以。接待有偿。谢谢
passwall只是个op插件,做不到docker运行。clash docker单次20,订阅不能自动更新
我只用了 dreamacro/clash 镜像,反正测试结果是docker网络模式 bridge不行,必须是 host
我的容器启动不了,报错OCI runtime exec failed: exec failed: container_linux.go:367
求教下如何让容器走这个代理(本机容器),付费求助
其他容器里跑的应用本身要支持设置代理才行
ADD出现fail to Connect,请把clash文件夹下的配置文件删除,重启容器,会自动创建一个配置文件,然后下载或修改这个文件,将相关配置数据修改填充进去,重新覆盖原文件就可以了,我弄半天才发现这个配置文件的名称有问题,无论怎么修改都不对,只有用这种方法才保证和容器要求的一至,好奇葩!
docker里面的网络必须是host,用brdige是不通的
连不上ui的解决办法是:配置文件的写法是 external-controller: 0.0.0.0:9090