# lan-alidns **Repository Path**: shoukaiseki/lan-alidns ## Basic Information - **Project Name**: lan-alidns - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lan-alidns 基于 Solon 框架的局域网 DNS 动态更新工具,自动获取本机局域网 IP 并同步到阿里云云解析 DNS。 ## 功能特性 - 获取本机局域网 IPv4 地址 - 支持指定网卡名称,避免虚拟网卡干扰 - 自动判断记录是否存在,存在则更新,不存在则新增 - IP 未变化时跳过更新,减少 API 调用 - 配置文件外置,密钥不打入 JAR 包 ## 技术栈 - Java 11+ - Solon 4.x (命令调度模式,非 Web) - 阿里云 DNS SDK v4.0.14 (异步) - Maven ## 快速开始 ### 1. 编译打包 ```bash mvn clean package -DskipTests ``` ### 2. 配置 复制 `config/app.example.yml` 为 `config/app.yml`,填入真实配置: ```yaml aliyun.dns: access-key-id: "your-access-key-id" access-key-secret: "your-access-key-secret" endpoint: "alidns.cn-hangzhou.aliyuncs.com" domain-name: "example.com" rr: "home" type: "A" ttl: 600 lan: interface-name: "" # 网卡名称,留空自动选择 ``` ### 3. 使用 查看网卡列表和当前 IP: ```bash run.bat ddns:ip ``` 更新 DNS 解析记录: ```bash run.bat ddns:update ``` ## 配置说明 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `aliyun.dns.access-key-id` | 阿里云 RAM AccessKey ID | - | | `aliyun.dns.access-key-secret` | 阿里云 RAM AccessKey Secret | - | | `aliyun.dns.endpoint` | DNS API 端点 | `alidns.cn-hangzhou.aliyuncs.com` | | `aliyun.dns.domain-name` | 主域名 | - | | `aliyun.dns.rr` | 主机记录 | - | | `aliyun.dns.type` | 记录类型 (A / AAAA) | `A` | | `aliyun.dns.ttl` | TTL (秒) | `600` | | `lan.interface-name` | 网卡名称,留空自动获取第一个非回环 IPv4 | - | ## 项目结构 ``` lan-alidns/ ├── config/ │ ├── app.example.yml # 配置模板 │ └── app.yml # 真实配置 (git 忽略) ├── src/main/java/com/lan/alidns/ │ ├── App.java # 主入口 │ ├── command/ │ │ ├── DdnsCommand.java # ddns:update 命令 │ │ └── IpCommand.java # ddns:ip 命令 │ ├── service/ │ │ └── AliDnsService.java # DNS 服务 │ └── util/ │ └── LocalIpUtil.java # 局域网 IP 工具 ├── run.bat # Windows 启动脚本 ├── pom.xml └── README.md ``` ## 许可证 MIT