群晖 docker 不能联网(缘起huginn)

这是一次自坑的排障过程….

现象:

在群晖 docker 下搭建 huginn,但死活不能启动,查看日志提示几条类似的信息: Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/,很明显了,就是http请求失败,经百度,docker 下的 huginn 第一次启动时会初始化环境并安装一些依赖组件,而提示该信息的原因也有网友明确给出原因和解决方案,原因是请求的网站被墙了,更改其他源试试。

过程:

  • 试验一:https://blog.csdn.net/u010098331/article/details/50788148    改源为https://ruby.taobao.org/,无效!
  • 试验二:https://ruby.taobao.org/  打开后又提示该源不再维护,请使用 https://gems.ruby-china.org/ 源,无效!
  • 试验三:我怀疑自己改的姿势不对,于是不改文件,直接使用命令替换全局源: bundle config mirror.https://rubygems.org https://gems.ruby-china.org  ,还是无效!
  • 试验四:既然怎么换都不行,于是我又搭建了SSR,给群晖提供翻墙能力再尝试,仍然失效!
  • 试验五:到这,我怀疑docker的网络有问题,于是百度关键字“docker 容器 无法联网”,找到阿里的一篇文章:https://www.aliyun.com/jiaocheng/187147.html ,终于使用方法一可以了,但是为什么呢,huginn 使用桥接模式,分配172.17.0.0/16 网段IP,不应该没网的啊,要不就是docker的网络接口出问题,文中其他方法也提到怎样重建docker网络,但是之前还好好的,怎么会突然就不行了,最后终于想到了…..原来这是我自己埋下的坑!

结论:

《群晖 docker 不能联网(缘起huginn)》

就是这里(第三条是我后来加的),防火墙的配置,由于群晖有不少需要外部访问的服务,所以我把它直接丢到DMZ区,这时就要考虑安全问题了,默认的防火墙会放行所有运行的服务端口,但我的要求是仅对局域网的ip放行所有端口,其他公网ip仅开放部分端口,所以我做了以上设置,却偏偏漏了放行docker的桥接网络,导致docker容器异常,@#¥%@!,气死我了~搞了这么久,哎~~

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注