一、前言

为什么要自建DDNS

正常拨号宽带IP通常过48小时会自动更换。有没有一种方法可以通过一个域名访问到指定服务器呢?
可以通过DDNS(动态域名解析)的方式实现:即域名解析的地址会实时探测当前的公网IP,将最新的IP及时更新。
常见的DDNS有花生壳、3322等,可是商业版的域名不可定义,使用不稳定、要实名、且有被回收的风险。
有没有一种方法可以自建DDNS服务器,解析到自己购买的域名内呢?
aliyun-ddns可以实现。

自建DDNS需要什么

阿里云的域名、路由器有端口映射功能

二、实现方法

简要步骤:

  1. 到阿里云域名管理后台获得AccessKey
  2. 安装docker;
  3. 在docker拉取aliyun的ddns镜像文件;
  4. 安装完成后再对组件的参数进行设置;
  5. 通过路由器设置端口映射就可以使用自己的域名访问了。

怎么获得域名AccessKey

登录自己的阿里云管理后台,鼠标移到自己账号的头像上会弹出菜单,点击【AccessKey 管理】
file

此时会弹出提示窗口,建议使用子用户创建。所以我们点击开始使用子用户,进入到RA访问控制后,点击开始使用子用户AccessKey
file
勾选open API选项就可以了,这个账户不需要控制台登录权限的。
file
完成后,刷新页面,单击刚刚创建的用户名,点权限管理
file
新增授权
file
选择授权AliyunDNSFullAccess
file
完成后,可以看到已经被赋予dns管理权限
file
回到认证管理页,可以看到一开始已有一个accesskey id了,但是看不到密码,而且这个密码也无法再重新查看了,只能后面新建一个Accesskey id
file
创建AccessKey会弹出新建的id和secret,这个id和secret就是DDNS里面需要的信息。
file

怎么安装docker和拉取镜像

docker的安装略,见博客内其他文章
然后docker里面命令拉取aliyun ddns的镜像

docker pull chenhw2/aliyun-ddns-cli

将你刚刚获取的AccessKey-ID、AccessKey-Secret、填入下面[ ]里面,ddns.aliyun.win改为你的解析域名。REDO: 设置多少秒更新一次,这里设置的600秒,即10分钟. 设置完成后启动容器。这样在公网ip变化后,系统会自动解析到新的ip地址,阿里云也会自动给你发解析变更邮件。

docker run -d \
    -e "AKID=[ALIYUN's AccessKey-ID]" \
    -e "AKSCT=[ALIYUN's AccessKey-Secret]" \
    -e "DOMAIN=ddns.aliyun.win" \
    -e "REDO=600" \
    chenhw2/aliyun-ddns-cli

启动容器:
file
在域名解析里可以看到被自动加上了解析,并且该解析会自动更新最新的公网IP
file
也就是说,对于用户而言,只需要记住固定的域名即可,关于实际的公网IP就交给容器去自动获取和更新吧

三、配置端口映射

每个服务器的端口映射界面都不尽相同,但是原理都一样:
设置公网端口、映射到的内网IP、内网端口
以TP-LINK的家用路由器为例
file

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。