esp32-c3-adblock 如何三步跑起来:ESP32-C3 上的 DNS 广告拦截器完整指南

发布时间:2026/10/20 10:38:03

esp32-c3-adblock 如何三步跑起来:ESP32-C3 上的 DNS 广告拦截器完整指南 esp32-c3-adblock 如何三步跑起来ESP32-C3 上的 DNS 广告拦截器完整指南【免费下载链接】esp32-c3-adblockPi-hole-class DNS ad-blocker on a $2 ESP32-C3 (no PSRAM): 537k domains as 40-bit FNV-1a hashes in flash, binary-searched. UDP DNS sinkhole web dashboard. https://youtube.com/shorts/RaxszOUMi8E?featureshare项目地址: https://gitcode.com/GitHub_Trending/es/esp32-c3-adblockesp32-c3-adblock 是一款运行在 2 美元 ESP32-C3 上的 Pi-hole 式DNS 广告拦截器它把数十万条域名做成 40 位 FNV-1a 哈希存进闪存查询时二分匹配。读完全文你能完成固件烧录、把设备接入家庭网络并独立掌握封禁设备、暂停拦截、自定义域名三件日常操作。它适合谁、什么场景用家庭或小型办公室局域网需要全网过滤广告又不想买树莓派、不想跑一台常开的服务器。出差或多网络用户C3 插路由器 USB 口即用路由器直接供电一台设备管一个网络。想自组 DNS 网关的折腾党2 美元主板起步固件与黑名单都留了 OTA 升级通道。三步跑起来准备硬件一块 ESP32-C3C3 SuperMini 即可4MB 闪存无需 PSRAM用路由器的 USB 口或手机充电器供电电源不稳会导致 WiFi 发射时掉线。获取代码、设好凭据git clone https://gitcode.com/GitHub_Trending/es/esp32-c3-adblock cd esp32-c3-adblock cp src/secrets.example.h src/secrets.h打开secrets.h把WEB_USER / WEB_PASS / OTA_PASS填成真实值——它们把关所有状态变更接口WIFI_SSID / WIFI_PASS可留占位符首次通电走配置页。构建并烧录黑名单python3 tools/build_blocklist.py data/blocklist.bin pio run -t upload pio run -t uploadfs默认列表为 StevenBlack base Hagezi Light约10 万条uploadfs把哈希表写进设备 LittleFS。 4.首次通电连网用普通凭据启动会看到开放热点C3-AdBlock-XXXX手机连入后在弹出的配置页选择家里 WiFi、输入密码设备自动重启并入网。 5.打开控制台浏览器访问http://c3adblock.local深色主题实时仪表盘每3 秒自动刷新。 6.验证拦截任一台机器执行dig 设备IP doubleclick.net返回0.0.0.0即为命中dig 设备IP github.com应返回真实 IP。核心功能逐个上手一键封禁设备把它隔离出广告某台设备广告查询异常偏高或你想直接把某个 IP 彻底掐断时直接在仪表盘的客户端表格里操作不用碰命令行。打开c3adblock.local在客户端表格定位目标行每行显示IP、MAC、Blocked、Allowed按总查询量降序排列广告大户排在最上面。点击该行Ban按钮前端发出/ban?ip...设备立刻被打上BANNED标记。该 IP 之后的所有DNS 查询都会收到0.0.0.0等效于断网。恢复放行在同一行再点一次Unban即可。要点与上限封禁名单最多32条MAX_BAN重启后也只持久化前 32 条客户端表格最多同时跟踪96台设备MAX_CLIENTS超出不再记录被封设备全部查询按命中处理非 A 记录也返回空应答。源码参考src/main.cpp、src/page.h临时暂停 DNS 拦截到点自动恢复某个工具被误判拦截、想临时放行排查时用暂停而不是删域名或重启设备。在仪表盘顶部拦截状态条里从时长下拉框选一个档位。点击Pause前端调用/pause?s秒数状态条变为 ⏸️ Paused — resumes in Xs。暂停期间查询原样转发上游 DNS默认 Quad99.9.9.9不再拦截放行计数照常累加。到点自动恢复不想等就点Resume调用/resume立即回到拦截状态。要点与上限时长仅 4 档30 秒 / 5 分钟 / 30 分钟 / 直到我手动开启数值0即无限期暂停状态不持久化设备重启后拦截默认恢复开启。源码参考src/main.cpp、src/page.h自定义拦截域名父域名带出全部子域黑名单按周更新新出现的广告或追踪域名可能还没收录——在仪表盘里加一行就能把它连同所有子域名一起拦掉。在CUSTOM BLOCKED DOMAINS输入框填入域名例如ads.example.com。点击Block domain前端调用/addblock?d...后端自动去重、去掉www.、转小写并做哈希。立即生效该域名及其所有子域名都收到0.0.0.0父级后缀匹配。要移除点列表行的remove前端调用/unblock?d...域名从名单删掉。要点与上限自定义名单最多200条MAX_CUSTOM超出直接忽略只接受包含至少一个点的域名重复添加会被忽略名单持久化在/custom.txt重启读回不丢。源码参考src/main.cpp、src/main.cpp上限与持久化速查功能控制台入口接口或文件上限是否持久化封禁设备客户端表Ban按钮/ban?ip/banned.txt封禁32条客户端表96台是暂停拦截顶部Pause 时长下拉/pause?s//resume30s/300s/1800s/0无限期否重启恢复拦截自定义域名输入框 Block domain/addblock?d//unblock?d/custom.txt200条是黑名单上传Blocklist →Upload blocklist/upload双 OTA 分区约25 万条单分区53.7 万条是远程自动更新Remote auto-updateURL 间隔/setupdate//fetchnow/update.cfg间隔最小1小时是固件 OTAFirmware →Flash firmware/update校验通过后自动重启是在闪存WiFi 重置Forget WiFi按钮/forgetwifi—否重启进配置页排错仪表盘顶部出现 Default credentials in use ⚠️ →secrets.h里WEB_PASS / OTA_PASS仍是占位值CHANGE_ME_*→ 填入真实值重新编译烧录。点Ban / Block domain没反应直接访问接口返回 403 → 状态变更接口除 HTTP 基础认证外还要求X-Requested-With: c3-adblock请求头裸链接会被拒 → 在登录弹窗输入WEB_USER / WEB_PASS用仪表盘按钮操作不要手敲 URL。打不开 c3adblock.local只看到C3-AdBlock-XXXX热点 → 设备没有可用的 WiFi 凭据或连接失败 → 手机连入该热点完成配置通电时按住BOOT键也能清掉已存 WiFi 重进配置页。上传黑名单被拒提示 size not a multiple of 5 → 上传的不是合法哈希表文件必须是 5 字节整数倍→ 用python3 tools/build_blocklist.py重新生成blocklist.bin再上传。收尾esp32-c3-adblock 用 2 美元硬件做全了 Pi-hole 最常用的封禁、暂停、自定义域名三件事改动全部写进闪存不用重烧。哈希表构建、碰撞率与分区取舍的细节见 README.md完整 DNS 处理与 Web 接口逻辑在 src/main.cpp。【免费下载链接】esp32-c3-adblockPi-hole-class DNS ad-blocker on a $2 ESP32-C3 (no PSRAM): 537k domains as 40-bit FNV-1a hashes in flash, binary-searched. UDP DNS sinkhole web dashboard. https://youtube.com/shorts/RaxszOUMi8E?featureshare项目地址: https://gitcode.com/GitHub_Trending/es/esp32-c3-adblock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/20 10:38:02

AutoDL 4090上Qwen2.5-7B微调实战:LLaMA-Factory与LoRA全流程解析

简介:面向有一定机器学习基础的研究人员与开发者,这是一份基于Qwen2.5-7B-Instruct的大模型微调实战指南,重点解决在AutoDL平台独立部署并微调大模型的完整流程问题,适合自然语言处理任务优化、模型性能提升等实际项目。内容涵盖环…

2026/10/20 10:33:02

海康DS-K56人脸终端C#远程管控实战:ISAPI协议全流程开发指南

简介:本资源是一套基于C#开发的海康威视人脸识别设备(DS-K5603-Z)完整集成Demo,面向安防系统开发者、工业视觉初学者及.NET平台嵌入式接口调用实践者,有效填补官方SDK中C#人脸识别示例缺失、文档零散难上手的空白。压缩…

2026/10/20 12:38:36

大模型私有化部署实战:从硬件选型到监控运维的完整指南

1. 大模型私有化部署到底在解决什么问题第一次接触大模型私有化部署,很多人脑子里冒出来的第一个念头是“把模型下载下来跑起来不就行了”。真到生产环境里走一圈就会发现,下载权重只是万里长征的第一步,后面还有一堆硬骨头要啃。所谓私有化部…

2026/10/20 12:38:36

从“无标题”到好标题:项目定义与命名的实操路径

“无标题”这三个字,大概是我在开发目录里见过最多的命名了。新开一个文档、初始化一个仓库、写完第一版方案,随手保存成“无标题1”几乎是肌肉记忆。你可能觉得这只是个临时占位,等东西做出来再补名字也不迟。但我的经验恰恰相反&#xff1a…

2026/10/20 12:38:36

AgentCore 架构解析:智能体运行时的状态管理与多智能体协作机制

1. 从一次深夜调试说起:AgentCore 到底解决了什么痛点上个月帮一个做智能客服的朋友排查问题,他们的系统接了三四个大模型,每个模型都有自己的工具调用格式、自己的记忆管理方式、自己的任务编排逻辑。结果就是,每换一个模型&…

2026/10/20 12:38:36

MiroFish实测:多智能体协作预测,AI辩论如何提升决策可靠性

MiroFish实测分享:让一群AI互相“吵架”来预测未来如果你关注过AI预测这个方向,应该能感受到一个尴尬的现状:市面上的预测工具要么是单一模型闷头算,要么是黑箱式的“输入历史数据、输出预测结果”,中间过程完全不可控…

2026/10/20 12:38:36

提示词工程实战:从四要素框架到系统提示词与评测迭代

最近这段时间,圈子里不少人都在讨论一份关于提示工程的白皮书——足足68页,从入门方法论到进阶实践技巧都覆盖到了。说实话,提示工程这个概念火起来也有两年多了,但大多数资料要么太学术,读完还是一头雾水;…

2026/10/20 12:33:35

DeepSeek导出PDF指令指南:从HTML排版到打印设置

最近又有朋友问我:DeepSeek到底能不能直接导出PDF?他在对话框里试了好几种说法,什么“请把对话导出为PDF”“生成一个下载链接”,结果DeepSeek要么还给他一段Markdown文本,要么直接说明自己无法生成文件。这个问题我遇…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑