一、前言
为什么要自建DDNS
正常拨号宽带IP通常过48小时会自动更换。有没有一种方法可以通过一个域名访问到指定服务器呢?
可以通过DDNS(动态域名解析)的方式实现:即域名解析的地址会实时探测当前的公网IP,将最新的IP及时更新。
常见的DDNS有花生壳、3322等,可是商业版的域名不可定义,使用不稳定、要实名、且有被回收的风险。
有没有一种方法可以自建DDNS服务器,解析到自己购买的域名内呢?
aliyun-ddns可以实现。
自建DDNS需要什么
阿里云的域名、路由器有端口映射功能
二、实现方法
简要步骤:
- 到阿里云域名管理后台获得AccessKey
- 安装docker;
- 在docker拉取aliyun的ddns镜像文件;
- 安装完成后再对组件的参数进行设置;
- 通过路由器设置端口映射就可以使用自己的域名访问了。
怎么获得域名AccessKey
登录自己的阿里云管理后台,鼠标移到自己账号的头像上会弹出菜单,点击【AccessKey 管理】
此时会弹出提示窗口,建议使用子用户创建。所以我们点击开始使用子用户,进入到RA访问控制后,点击开始使用子用户AccessKey
勾选open API选项就可以了,这个账户不需要控制台登录权限的。
完成后,刷新页面,单击刚刚创建的用户名,点权限管理
新增授权
选择授权AliyunDNSFullAccess
完成后,可以看到已经被赋予dns管理权限
回到认证管理页,可以看到一开始已有一个accesskey id了,但是看不到密码,而且这个密码也无法再重新查看了,只能后面新建一个Accesskey id
创建AccessKey会弹出新建的id和secret,这个id和secret就是DDNS里面需要的信息。
怎么安装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
启动容器:
在域名解析里可以看到被自动加上了解析,并且该解析会自动更新最新的公网IP
也就是说,对于用户而言,只需要记住固定的域名即可,关于实际的公网IP就交给容器去自动获取和更新吧
三、配置端口映射
每个服务器的端口映射界面都不尽相同,但是原理都一样:
设置公网端口、映射到的内网IP、内网端口
以TP-LINK的家用路由器为例
评论(0)