
esp32-c3-adblock 快速切换上游 DNS 到 1.1.1.110 分钟不改源码【免费下载链接】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这篇文章只解决一个问题把 esp32-c3-adblock 默认的 9.9.9.9Quad9上游解析器换成 1.1.1.1 或你指定的其他解析器。改动只落在 platformio.ini 的一行编译参数里源码一个字节都不用动。任务目标设备收到 DNS 查询后的流程是固定的先对域名做哈希在 flash 的哈希表里二分查找。命中就回 0.0.0.0查询到此为止未命中才把查询转发给上游解析器再把答复回传给客户端。所以你的任务只有一个——把未命中那一支的目的地从 Quad9 换成新地址拦截行为保持原样。前提与风险动手前确认三件事项目已克隆且本地能正常编译git clone https://gitcode.com/GitHub_Trending/es/esp32-c3-adblockC3 已完成配网并在网内你的电脑能打开 http://c3adblock.local 。你所在网络能直连目标解析器的 53 端口。如果家里网络本身就出不了 1.1.1.1换上游没有意义。执行步骤第 1 步确认默认上游写在哪里打开 src/main.cpp看前 30 行。你应该能看到这样的定义#define UPSTREAM_IP 9, 9, 9, 9 // Quad9 #define UPSTREAM_PORT 53两个宏都被#ifndef包住意思是编译时只要传入了同名的值就会覆盖这里的默认值。这就是官方预留的自定义入口也是后面一切操作的基础。看完你应确认全文件只有这一处定义默认上游。第 2 步platformio.ini 里加哪一行打开 platformio.ini找到[env:c3]段对应 C3 开发板在build_flags末尾追加一行build_flags -DARDUINO_USB_MODE1 -DARDUINO_USB_CDC_ON_BOOT1 -DUPSTREAM_IP1, 1, 1, 1保存后你应看到新增行排在build_flags的最后一行且UPSTREAM_IP只出现这一次。如果上游走非标准端口再追加一行-DUPSTREAM_PORT5353。第 3 步编译并烧录在仓库根目录执行pio run -t upload烧录完成后你应看到传输结束的提示设备自动重启。不想用 USB 也可以编译出.pio/build/c3/firmware.bin后打开 http://c3adblock.local 的控制台进入 Firmware → OTA update 上传该文件设备校验通过后自行重启进新镜像。完成后等几秒重新打开控制台应能正常访问。验收dig 结果怎么读从一台能访问 C3 的电脑执行两条命令命令预期结果异常时指向dig c3-ip doubleclick.net返回 0.0.0.0说明拦截链路没生效检查 blocklist.bin 是否已刷入设备dig c3-ip github.com返回真实 IP无应答或超时检查 C3 所在网络能否直连 1.1.1.1:53再打开控制台确认顶部 Total allowed 计数持续增长——这表示未命中的查询正在从新上游正常返回。回退与排障回退把参数值改回-DUPSTREAM_IP9, 9, 9, 9重复第 2、3 步即可。设备失联、控制台打不开属于配网问题与本次换上游无关。点控制台里的 Forget WiFi或按住 BOOT 键重新进入配网流程方法见 README.md。想更新拦截列表用 tools/build_blocklist.py 构建blocklist.bin从控制台 Blocklist → Upload 上传或配置 Remote auto-update 定时自动拉取。这条链路与上游解析器完全独立。完成度自查platformio.ini 里已追加一行-DUPSTREAM_IP且仅一处编译成功USB 烧录或 OTA 均已完成doubleclick.net 返回 0.0.0.0github.com 返回真实 IP控制台 Total allowed 持续增加【免费下载链接】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),仅供参考