# LDNS **Repository Path**: aipd/LDNS ## Basic Information - **Project Name**: LDNS - **Description**: 本地dns服务 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-29 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DNS服务应用程序 ## 项目简介 DNS服务应用程序是一个功能完整的本地DNS服务解决方案,提供DNS解析、缓存管理、记录管理等功能。该项目基于.NET 10.0开发,支持Windows平台运行。 ## 主要功能 ### 核心功能 - **DNS解析服务**:提供本地DNS解析服务,支持A记录解析 - **DNS缓存管理**:智能缓存DNS查询结果,提高解析效率 - **上游DNS服务器**:支持配置多个上游DNS服务器进行递归查询 - **自定义DNS记录**:支持添加、修改、删除自定义DNS记录 - **默认反向解析**:内置 `127.0.0.1` 与 `::1` 反向解析到 `localhost`,无需配置 ### 管理功能 - **配置管理**:支持配置文件管理,可持久化保存配置 - **日志记录**:完整的日志记录系统,支持文件输出和控制台输出 - **Socket管理**:支持通过Socket进行服务管理和监控 - **记录持久化**:DNS记录自动保存到配置文件 ### 高级功能 - **泛域名解析**:支持泛域名解析配置 - **访问控制**:支持基于IP地址的访问控制 - **自动启动**:支持服务自动启动配置 - **连接管理**:支持最大连接数限制 ## 系统要求 - **操作系统**:Windows 10/11 或 Windows Server 2016+ - **运行时**:.NET 10.0 Runtime - **权限**:需要管理员权限(用于绑定53端口) ## 快速开始(使用打包脚本) ### 发布并生成安装包 - 在项目根目录执行: - `powershell -NoProfile -ExecutionPolicy Bypass -File build.ps1 -Task Release -Clean -Restore` - 完成后输出: - 无运行时版目录:`bin\Release\net10.0\win-x64-no-runtime`(包含 `LDNS.exe`、`version-info.txt` 等) - 含运行时版目录:`bin\Release\net10.0\win-x64-with-runtime` - 安装包:`bin\Release\LDNS-Setup-<版本>.exe` 与 `LDNS-Setup-<版本>-with-runtime.exe` ### 仅发布(不生成安装包) - 调试版:`powershell -File build.ps1 -Task Debug [-Clean] [-Restore]` - 发行版:`powershell -File build.ps1 -Task Release [-Clean] [-Restore]` ### 说明 - 安装脚本会自动读取可执行文件的版本号(`GetFileVersion`)以及发布者和项目地址(`GetStringFileInfo`:`CompanyName`、`LegalTrademarks`)。 - 如需变更发布者或项目地址,请在 `LDNS.csproj` 中修改: - 发布者:`` - 项目地址(供安装脚本读取):``(映射到 Win32 版本资源的 `LegalTrademarks`) ## 快速开始(使用dotnet) ### 1. 编译项目 ```bash dotnet build ``` ### 2. 运行服务 ```bash dotnet run --project LDNS.csproj ``` ### 3. 配置方式 - 命令行管理功能已移除,请通过 `Conf/DNSService.conf` 配置服务参数。 - 自定义记录通过 `Conf/dns.conf` 管理,详见文档。 ## 文档 - [API文档](API.md) - 控制台命令和Socket API使用说明 - [配置文件说明](#配置文件说明) - 配置项详细说明 ## 配置文件说明 项目使用键值对格式的配置文件,默认配置文件为`Conf/DNSService.conf`: ```ini # DNS服务基本配置 Port=53 EnableCache=true CacheExpirationMinutes=60 UpstreamDnsServers=8.8.8.8,114.114.114.114 # 连接配置 MaxConnections=100 # Socket管理配置 EnableSocketManagement=false SocketManagementPort=8053 # DNS记录配置 EnableRecordPersistence=true RecordFilePath=Conf/dns.conf # 安全配置 EnableAccessControl=false AllowedIPs=127.0.0.1,192.168.1.0/24 # 记录配置 DnsRecordConfigWatchInterval=30 # 默认TTL配置 DefaultRecordTtl=3600 ``` ## Socket管理使用示例 使用TCP客户端连接到Socket管理端口(默认`8053`): ```bash telnet localhost 8053 ``` 示例命令: ```text # 添加正向记录(使用默认TTL) ADD demo.local 192.0.2.10 # 手动添加PTR反向记录(可选TTL与描述) ADD_PTR 192.0.2.10 demo.local 120 demo-record # 别名用法 ADDPTRRECORD 192.0.2.10 demo.local # 删除反向记录 REMOVE_PTR 192.0.2.10 # 查看帮助 HELP ``` 说明: - `ADD_PTR`/`ADDPTRRECORD` 将以 `"{ip}:PTR"` 为键保存反向记录,目标主机名为第二参数。 - TTL省略或为`0`时使用配置中的 `DefaultRecordTtl`。 - 通过 `ADD` 添加 `A/AAAA` 时会自动生成对应PTR记录;删除 `A/AAAA` 时会同步移除对应PTR记录。 ## 安装和部署 ### 使用安装程序(推荐) 1. 运行 `LDNS-Setup-win-x64-1.0.0.exe` 或 `LDNS-Setup-win-x64-1.0.0-no-runtime.exe` 2. 按照向导完成安装 3. 服务将自动安装并启动 ## 故障排除 ### 常见问题 1. **端口53被占用** - 解决方案:停止其他DNS服务或修改配置文件中的端口号 2. **权限不足** - 解决方案:以管理员身份运行程序或安装脚本 3. **上游DNS服务器无法连接** - 解决方案:检查网络连接或更换上游DNS服务器 4. **服务启动失败** - 解决方案:查看服务日志获取详细错误信息 ## 许可证 本项目采用MIT许可证。 ## 作者信息 - 作者:huobing - 项目地址:https://gitee.com/aipd/LDNS - 主页地址:http://ldns.shr25.com ## 最新版本 ### v1.1.4 (2025-12-23) - 修复UI版本号显示问题 - 添加网络适配器监控功能 - 迁移Windows DNS管理功能到SDK