项目简介
本项目是基于Spring Boot框架和阿里云SDK开发的动态DNS(DDNS)服务。该服务可自动检测并更新域名的IP地址,保证域名始终解析到最新IP。项目借助MySQL数据库存储IP地址日志,利用Spring Boot的定时任务功能定期更新DNS记录。
项目的主要特性和功能
- 动态IP更新:借助阿里云SDK与阿里云DNS服务交互,自动更新域名IP地址。
- IP日志管理:使用MySQL数据库记录每次IP地址更新日志,支持查询、插入和删除日志。
- 定时任务:利用Spring Boot定时任务功能,定期检查并更新DNS记录,同时删除过期IP日志。
- Docker支持:提供Dockerfile用于构建和运行项目的Docker镜像,便于部署和管理。
安装使用步骤
1. 环境准备
确保本地环境已安装以下软件: - MySQL 5.7+ - JDK 8+ - Gradle
2. 数据库初始化
在MySQL中创建数据库和表:
sql
create database ddns;
use ddns;
CREATE TABLE `DDNS_IP_LOG` (
`ID` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`IP_ADDR` varchar(30) NOT NULL DEFAULT '' COMMENT 'IPV4地址',
`CREATE_TIME` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`MODIFY_TIME` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
PRIMARY KEY (`ID`),
KEY `IDX_CREATE_TIME`(`CREATE_TIME`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='DNS绑定的路由器wanIp';
3. 配置文件
编辑ddns.properties
文件,配置数据库连接和阿里云SDK的相关参数:
```properties
jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://{yourIp}:3306/ddns?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
jdbc_user={your login user}
jdbc_password={your login pswd}
jdbc_initSize=5
jdbc_maxSize=100
ali_access_key_Id =yourKeyId ali_access_key_secret = yourKeySecret ali_first_domain_name = yourFirstDomain(域名地址e.g. ddnslearn.cn) ali_second_domain_prefix = yourSecondDomainPrefix(主机名e.g. www) ali_dns_ttl = 600 ```
4. 编译项目
在项目根目录下执行以下命令进行编译:
- macOS/Linux:
bash
./gradlew clean build
- Windows:
bash
./gradlew.bat clean build
编译完成后,生成的可执行JAR包位于build/libs/ddnsjava-1.0-SNAPSHOT.jar
。
5. 运行项目
在命令行中执行以下命令启动项目:
bash
java -jar -Xms64m -Xmx128m -XX:MaxMetaspaceSize=128m build/libs/ddnsjava-1.0-SNAPSHOT.jar
6. Docker容器运行
创建Docker镜像
在项目根目录下创建Dockerfile:
Dockerfile
FROM java:8
ADD ddnsjava-1.0-SNAPSHOT.jar /ddns.jar
VOLUME /var/log
ENV JAVA_OPTS="-Xms64M -Xmx128M -XX:MaxMetaspaceSize=128M"
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENTRYPOINT java ${JAVA_OPTS} -jar /ddns.jar
构建Docker镜像:
bash
docker build -t ddns:1.0 .
运行Docker容器
bash
docker run -d --cap-add=SYS_PTRACE -v /var/log:/var/log --restart=always -e TZ=Asia/Shanghai ddns:1.0
通过以上步骤,即可成功部署并运行基于Spring Boot和阿里云SDK的动态DNS服务。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】