前言:
虽然咱们国家已经有了 IPv6 普及的政策,按理来说普及后的 IPv6 的地址更多,电信运营商也更愿意为用户下放 IPv6 的公网浮动 IP。但奈何有些地方的运营商对 IPv6 的公网 IP 像抱着宝一样不肯撒手,逼着用户做内网穿透也是属实恶心人。对比市面上的内网穿透的服务价格来看,DDNSTO还是很有性价比的。(非广告,DDNSTO看到了请打钱)
正好我的我也得知 IKuai 也可以折腾 Docker 了,不免的手痒痒,想把自己的软路由做上一个DDNS,方便外网管理和后期的折腾。
那么将 DDNSTO 部署在 IKuai 上需要以下几步:
1. 升级 IKuai 版本至3.5及以上版本
2. 绑定 IKuai 云
3. 为 IKuai 安装 Docker
4. 在 Docker 中安装 DDnsto
5. 在 DDnsto 中添加域名映射
1.升级 IKuai 爱快
因为 IKuai 爱快系统只有在 3.5.0 及以上系统支持 Docker ,所以在安装 Docker 之前需要先升级系统,如果已是 3.5.0 及以上系统则可以直接进入下一步。
首先登录 IKuai 爱快系统 的管理页面,我这里设置的是192.168.1.1
,直接登录就可以。这个后台的管理页面就是你安装 IKuai 爱快系统 时候的网关地址。
升级可以直接在 IKuai 爱快系统中直接升级系统,如下图:
关于 IKuai 爱快系统的安装,有空我会再出一篇教程,先放个空白地址在这里:
2. 绑定 IKuai 云
升级完成后你的 IKuai 爱快 中仍然不会出现 Docker 的设置项,这是因为 IKuai 爱快默认不安装(开启) Docker 功能,想打开你还需要绑定爱快云后,在爱快云中打开此功能。
绑定爱快云也可以直接在 IKuai 爱快系统中操作,如下图:
3. 为 IKuai 安装 Docker
3.1 安装 Docker
绑定爱快云完成后我们需要来到 IKuai 云平台。 IKuai 云链接
在这里我们能看见我们绑定好的设备。看到后我们需要点击插件中心找到Docker点击安装,将我们的绑定好设备从 未开启栏 移动到 已开启栏。
因为我这里已经开启,所以绑定的设备已经出现在了已开启栏中。
这里可能会出现一个问题,就是这里找不到你刚绑定好的设备,一般情况下这是因为你刚刚绑定设备,IKuai 云平台没有刷新出来,等上5分钟后再刷新就可以刷出来了。
成功在 IKuai 云平台中开启 Docker 后,你就可以在软路由中上 IKuai 爱快系统中的高级应用-插件管理-Docker中找到你的 Docker 了。
3.2 配置 Docker
点开 Docker,会发现目前 Docker 处于服务异常状态。所以在使用前我们要对 Docker 进行配置。
首先我们先来到系统设置-磁盘管理-磁盘分区,我们需要为 IKuai 上的 Docker 设置一个磁盘空间,挂载路径就叫 Docker。磁盘大小任意,但是建议磁盘大小不低于 200MB。
如下图:
创建磁盘后我们再回到高级应用-插件管理-Docker点击服务设置
选中 Docker 分区为我们的 存储分区 ,镜像库URL 不填,点击确定。
点击打开Docker服务
接下来我们来配置 Docker服务 中的网络服务,现在的 Docker服务虽然可以运行,但是无法连接网络。那么接下来需要通过配置来让 Docker服务能够联网,点击接口管理-添加来添加网络接口。这里的IPv4地址和IPv4网关可以随意设置,但是不能和上级网关(IKuai 爱快)设置成一样的IPv4地址和IPv4网关。
因为我的 IKuai 的网关是 192.168.1.1,所以我就另外设置一个网段。
接口名称: net_Docker
IPv4地址: 192.168.2.1/24
IPv4网关: 192.168.2.1
IPv6: 不开启
这里简单解释下添加网络接口是什么意思, Docker 本身就好像一个虚拟机一样,既然是虚拟机就不能和主机(IKuai 爱快)共用一套网关和网段,所以要另外设置一套新的网关和网段。
这样 Docker 中的所有配置就设置好了,可以安装容器了。
4. 在 Docker 中安装 DDnsto
安装好 Docker 后我们来安装 DDNSTo,官方文档的操作方式是直接使用 终端进行安装和控制。DDNSTO 官方文档
但 IKuai 爱快中稍微有些不一样,其实实际操作下来是比官方文档更简单一些。
首先拉镜像,在镜像管理页面中添加镜像,我们直接从镜像库下载一个叫linkease/ddnsto的镜像,拉取他的最新版本。
完成后回到容器列表页面,点击添加。运行我们刚刚添加的镜像。这里设置的东西比较多,注意不要设置错,否则容器将不会运行。
容器名称: ddnsto ,可以随意设置
内存占用(M):200 ,可以随意设置
选择镜像文件:linkease/ddnsto:last
选择网络接口:net_Docker
IPv4地址: 选填,建议不填
IPv6地址: 选填,建议不填
开机自启:开启
环境变量:| UID | 0 |
| PID | 0 |
| TOKEN | 你的DDNSTO Token |
DDNSTO 的文档中说明 UID及 PID可缺省不填,但是 TOKEN 必须要填否则容器将无法运行。这里的 TOKEN 就是你在DDNSTO官网得到的令牌。
更多关于 Docker 中 DDNSTO 的参数配置可以参照 Docker 官网的说明。
点击保存后,可以回到容器列表页面点击ddnsto的日志
如果你的容器有问题,将会在日志中显示。我这里显示是正常运行的。
5. 在 DDnsto 中添加域名映射
现在去 DDNSTO 的官网登录上你的账号。
你会在控制台看到这里出现了一个设备:
添加域名映射
这里我把我局域网的 IKuai 爱快管理页面映射到了 ikuaiContorl 这个域名底下。
当然,我得到了一个带 kooldns 的子域名 :443
现在我可以通过 :443 这个链接访问我内网中的 IKuai 爱快管理页面了。
内网设备映射
根据以上的实例你可以映射任何你想映射的页面和设备,但是这时你会发现,我想映射我局域网中的群晖设备(192.168.1.11:5000)却怎么也映射不出去。
这里要先说 Docker 的网络机制,懂了网络机制你就明白为什么访问不到了。
看图:
还记得前面的设置吗?你的 Docker 的网段和你内网设备的网段不是同一网段怎么可能能访问到呢?那怎么才能访问到呢?看到图中的红色线路了吗?你需要做一个内网映射,把你需要访问的端口映射出去就可以访问到了。
这项设置在网络设置-端口映射中
同时 DDNSTO 中的域名映射也要改:
以上就是 DDNSTO 的基础玩法,更多有意思的玩法可以看 DDNSTO 的官方文档。