docker定时更新动态拨号IP到阿里云云解析,实现动态域名解析DDNS功能

公司开发需求,服务器是部署在本地局域网的,公司网络是电信动态拨号宽带,因此就有个问题,IP会经常变动,公司的域名在阿里云上面,如果IP变动,因此需要经常登录到云解析上面去更改解析IP,这样很浪费时间。其实,阿里云提供了一套ddns云解析方案,根据阿里云提供的sdk就可以完成检测本地ip变化时,就自动更变解析IP。公司目前使用php作为开发环境,因为选择了php版本的云解析sdk。

准备:
1、docker
2、docker-php镜像
3、云解析程序代码 下载地址

第一步 安装docker

安装docker可以使用快捷方式安装,使用阿里云一键安装命令安装
其实也不用安装docker,只需要本地linux系统安装了php软件即可,yum -y install php也行,但是为了保持环境的纯净性,我本人喜欢使用docker安装软件。

ununtu安装命令

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

centos7安装命令

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

第二步 拉取php镜像

直接一条命令搞定

docker pull php:5.6-alpine 

这次我选了alpine版本的php5.6,alpine是linux的一个衍生分支,比较精简,推荐使用。

第三步 修改云解析代码配置文件

下载代码,修改如下两个文件:
1、修改/Aliyun/AliyunClient.class.php$accessKeyId$accessKeySecret参数
这个是阿里云的id和key,这个id和key可以拥有阿里云帐号的所有操作权限。

如图:

pic

accessKeyId和accessKeySecret可以登录阿里云网站,在右上角个人ID出下拉菜单AccessKeys处可以获取

2、修改/config.phpdnsConfigsrdsConfigs

如图:

pic

解析记录ID,可以进入域名解析页面,按F12进入调试页面,获取记录的recordid的,如果没有解析a记录,可以新建一条。

rds记录值为rds数据的前缀。

修改完完之后保存即可。

第四步 运行测试

把代码上传至服务器中,保存在/data目录下,
运行docker创建容器代码

dns解析更新

docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -dns

rds数据库白名单

docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -rds

运行后会出现记录更新成功的提示,表示更新成功。

第五步 写入定时计划

crontab -e
# 每五分钟更新阿里云解析和数据库白名单
*/5 * * * * docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -dns
*/5 * * * * docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -rds

至此,所有操作结束!

ps:代码原作者 http://flc.ren

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值