# DNS Server Based on Micropython基于micropython的dns服务器 **Repository Path**: wth_iw0/microdns ## Basic Information - **Project Name**: DNS Server Based on Micropython基于micropython的dns服务器 - **Description**: 基于micropython的dns服务器。 DNS Server Based on Micropython. - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-08 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32 MicroPython DNS服务器 基于micropython的dns服务器。 DNS Server Based on Micropython. ## 功能特性 - **AP模式WiFi热点**: 创建名为"ESP32_DNS_Server"的WiFi网络 - **DNS服务器**: 监听端口53,处理DNS查询请求 - **Web管理界面**: 提供简单的Web界面查看服务器状态 - **域名解析**: 将所有域名解析到ESP32的IP地址(192.168.4.1) - **通配符支持**: 支持*.local等通配符域名匹配 ## 文件说明 - `main_with_web.py`: 包含Web服务器的完整版本 - `microdns.py`: DNS服务器核心模块 - `web_server.py`: Web服务器模块 - `dns_list.py`: DNS列表 - `README.md`: 项目说明文档 ## 使用方法 ### 1. 上传文件到ESP32 将所有文件上传到ESP32的根目录。 ### 2. 启动服务器 ```python exec(open('main_with_web.py').read()) ``` ### 3. 连接WiFi网络 - **SSID**: ESP32_DNS_Server - **密码**: 12345678 - **IP地址**: 192.168.4.1 ### 4. 配置DNS 将设备的DNS服务器地址设置为:`192.168.4.1` ### 5. 访问Web界面 在浏览器中访问:`http://www.example.com` ### DNS记录配置 在`dns_list.py`中可以修改DNS记录: ```python self.dns_records = { 'example.com': '192.168.4.1', 'www.example.com': '192.168.4.1', 'test.com': '192.168.4.1', '*.local': '192.168.4.1', # 通配符匹配 } ``` ### 网络配置 在`main.py`中可以修改AP配置: ```python ap.config(essid='ESP32_DNS_Server', password='12345678') ap.ifconfig(('192.168.4.1', '255.255.255.0', '192.168.4.1', '8.8.8.8')) ``` ## 测试方法 ### 1. 使用nslookup测试 ```bash nslookup example.com 192.168.4.1 ``` ### 2. 使用ping测试 ```bash ping example.com ``` ### 3. 使用dig测试 ```bash dig @192.168.4.1 example.com ``` ### DNS协议支持 - **查询类型**: A记录 (IPv4地址) - **端口**: 53 (标准DNS端口) - **协议**: UDP - **TTL**: 300秒 ### 未来可能的改进 1. **DNS转发**: 添加向上游DNS服务器转发查询的功能 2. **缓存机制**: 实现DNS查询缓存 3. **更多记录类型**: 支持AAAA、CNAME等记录类型 4. **安全功能**: 添加DNS查询过滤和黑名单 ## 许可证 本项目采用MIT许可证。 ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。