群晖在ddns配置下,检测ip使用直连模式的 clash 配置
前提条件
- 使用的动态 dns 配置,使本地的群晖服务器在外网可访问
- docker 内安装了 clash,导致了动态 dns 检测到了机场服务商的 ip。
docker 内 clash 的安装可以查看 群晖 DSM 安装 clash
问题
在 ddns 点击立即更新的时候,会从服务器向群晖指定的某个网址发送请求,但由于这个请求走了代理,导致服务器以为我们的ip是机场代理商的ip。
解决方案
进入上一篇文章中提到的 clash 控制台前端页面。点击 日志
选项卡
在这里可以看到之前命中的各条规则。如果找不到日志的话,可以在前面的ddns界面点击一次 立即更新
按钮
我图片中展示的是已经修改完配置文件后的样例,命中的是 using DIRECT
走直连。如果各位的 DDNS 展示的是机场服务商 ip 而非本机 ip 的,这里一般会命中一条走对应规则的记录。
对了,顺带一提,记得不要开全局模式。配置在这里
那接下来问题就很简单,该配置文件让访问群晖的ip探测地址时,不要走代理就行了。找到config.yaml
我添加了很多条,这里对于群晖的ip检测,一般添加红框内这一条已经足够了
1 | - DOMAIN-SUFFIX,whatismyip.akamai.com,DIRECT |
记得不要放在最最后边,因为一般config.yaml的最后,有一条什么都匹配不上时的规则,如我这里的 - MATCH, others
会走Others对应的代理。如果- DOMAIN,checkip.synology.com,DIRECT
放在最后边的话,优先级关系是会先命中 - MATCH, others `
修改完成后,重新启动一下clash (我是没找到重新加载配置的命令, 直接重启了)
再次尝试ddns刷新配置,发现可以正常映射为本机ip了。大功告成
如果还有不行的小伙伴,也可以用上述方法看clash的日志,看看它到底是命中了哪一条规则。关于规则的介绍:https://clash.wiki/configuration/rules.html