Chỉ với khoảng 5 USD, lập trình viên biến ESP32 thành máy chủ DNS chặn hơn 500.000 tên miền quảng cáo

Bạn không cần Raspberry Pi hay mini PC để xây dựng một hệ thống chặn quảng cáo cho toàn bộ mạng gia đình. Một lập trình viên vừa chứng minh rằng chỉ với một bo mạch ESP32-C3 giá khoảng 5 USD, bạn vẫn có thể tạo ra một máy chủ DNS có khả năng chặn hơn 500.000 tên miền quảng cáo với độ trễ chỉ khoảng 10 ms.

ESP32 thay thế Raspberry Pi làm DNS dự phòng

Nhà phát triển full-stack người Ai Cập ZedAxis (GitHub: M-Abozaid) đã chia sẻ dự án sử dụng bo mạch ESP32-C3 SuperMini để xây dựng một máy chủ DNS tích hợp tính năng chặn quảng cáo.

Trong hệ thống của anh, Pi-hole trên Raspberry Pi vẫn đóng vai trò máy chủ DNS chính, chịu trách nhiệm cấp phát DHCP và lọc quảng cáo.

ESP32 chỉ hoạt động như máy chủ DNS dự phòng, tự động tiếp quản khi Pi-hole khởi động lại hoặc gặp sự cố, giúp toàn bộ mạng vẫn duy trì khả năng phân giải DNS và chặn quảng cáo.

Chỉ với khoảng 5 USD, lập trình viên biến ESP32 thành máy chủ DNS chặn hơn 500.000 tên miền quảng cáo

Chỉ 400 KB RAM vẫn xử lý được hơn nửa triệu tên miền

Điều đáng chú ý là bo mạch ESP32-C3 không hề mạnh.

Thông số phần cứng chỉ gồm:

  • RAM: 400 KB
  • Flash: 4 MB
  • Wi-Fi tích hợp
  • Không có PSRAM như các mẫu ESP32 cao cấp

Với lượng bộ nhớ khiêm tốn này, việc lưu trực tiếp danh sách chặn hàng trăm nghìn tên miền là bất khả thi.

Thay vì vậy, ZedAxis đã lựa chọn một giải pháp thông minh hơn.

Sử dụng hàm băm để giảm kích thước dữ liệu

Toàn bộ dự án dựa trên việc băm (hash) tên miền thay vì lưu chuỗi văn bản gốc.

Quy trình hoạt động gồm:

  1. Tải các danh sách chặn công khai.
  2. Loại bỏ các mục trùng lặp và chú thích.
  3. Chuyển từng tên miền thành mã băm FNV-1a 40-bit.
  4. Sắp xếp toàn bộ danh sách.
  5. Ghi cơ sở dữ liệu vào bộ nhớ flash của ESP32.

Theo tác giả, lựa chọn 40-bit là điểm cân bằng hợp lý:

  • 32-bit tạo quá nhiều xung đột.
  • 64-bit lại tiêu tốn quá nhiều bộ nhớ.

Nhờ đó, ESP32 có thể lưu khoảng 537.000 tên miền trong bộ nhớ flash chỉ vài MB.

Chỉ với khoảng 5 USD, lập trình viên biến ESP32 thành máy chủ DNS chặn hơn 500.000 tên miền quảng cáo 2

Kiểm tra tên miền chỉ mất khoảng 10 mili giây

Khi một thiết bị trong mạng gửi yêu cầu DNS, ESP32 sẽ:

  • Băm tên miền theo cùng thuật toán.
  • Thực hiện tìm kiếm nhị phân trong danh sách hash đã sắp xếp.
  • Nếu tìm thấy, truy vấn bị chặn.
  • Nếu không, yêu cầu sẽ được chuyển tiếp tới máy chủ DNS bên ngoài.

Theo ZedAxis:

  • Thời gian phản hồi cho tên miền bị chặn khoảng 10 ms.
  • RAM sử dụng khi hoạt động chỉ khoảng 50 KB.

Đánh đổi để tăng gấp đôi số lượng tên miền có thể chặn

Một điểm thú vị khác là cách tận dụng bộ nhớ flash.

Thông thường, ESP32 dành một phần flash để lưu bản firmware thứ hai, phục vụ cập nhật OTA (Over-The-Air).

Nếu người dùng không cần cập nhật firmware qua Wi-Fi, phân vùng này có thể được tận dụng để lưu thêm cơ sở dữ liệu.

Kết quả là:

  • Có OTA: khoảng 250.000 tên miền.
  • Không OTA: khoảng 537.000 tên miền.

Đây là một cách đánh đổi khá hợp lý đối với thiết bị vốn chỉ đóng vai trò máy chủ DNS dự phòng.

Chỉ với khoảng 5 USD, lập trình viên biến ESP32 thành máy chủ DNS chặn hơn 500.000 tên miền quảng cáo 3

Không thay thế Pi-hole nhưng là phương án dự phòng lý tưởng

ZedAxis khẳng định dự án này không nhằm cạnh tranh với Pi-hole hay AdGuard Home.

ESP32 không có:

  • thống kê theo từng thiết bị,
  • lịch sử truy vấn,
  • giao diện quản trị nâng cao,
  • các bộ lọc và tùy chỉnh phức tạp.

Thay vào đó, mục tiêu của nó là trở thành một DNS dự phòng cực kỳ tiết kiệm điện, hoạt động âm thầm trong mạng nội bộ.

Nếu Raspberry Pi gặp sự cố hoặc đang khởi động lại, toàn bộ thiết bị trong nhà vẫn tiếp tục nhận được phản hồi DNS đã lọc quảng cáo thay vì chuyển sang máy chủ DNS mặc định của router.

Một giải pháp giá rẻ nhưng đầy sáng tạo

Bo mạch ESP32-C3 SuperMini hiện có giá khoảng 5 USD (thậm chí rẻ hơn tại một số thị trường), nhưng vẫn đủ sức đảm nhiệm vai trò mà nhiều người nghĩ cần đến Raspberry Pi.

Dự án của ZedAxis cho thấy với một chút tối ưu thuật toán và tận dụng hợp lý tài nguyên phần cứng, ngay cả một vi điều khiển chỉ có 400 KB RAM cũng có thể xử lý danh sách chặn hơn nửa triệu tên miền.

Đây là một minh chứng thú vị cho khả năng của dòng ESP32, đồng thời là lựa chọn đáng cân nhắc cho những ai muốn bổ sung một lớp dự phòng cho hệ thống Pi-hole hoặc AdGuard Home mà không phải đầu tư thêm phần cứng đắt tiền.

Bài viết liên quan

Bài viết đọc nhiều nhất

Bài viết mới trong ngày

Đứng trước làn sóng phản đối từ các tổ chức xã hội: Nhà xuất bản Kodansha xem xét lại toàn diện dự án anime chuyển thể "Mii-chan and Miss Yamada"

Đứng trước làn sóng phản đối từ các tổ chức xã hội: Nhà xuất bản Kodansha xem xét lại toàn diện dự án anime chuyển thể "Mii-chan and Miss Yamada"

hoanlagvn

Tương lai của dự án chuyển thể hoạt hình từ bộ truyện tranh gai góc "Mii-chan and Miss Yamada" (tựa gốc tiếng Nhật: Mii-chan to Yamada-san) đang rơi vào tình thế bấp bênh chưa từng có sau khi "ông lớn" xuất bản Kodansha chính thức gửi văn bản phản hồi tới các tổ chức bảo vệ quyền lợi người yếu thế tại Nhật Bản vào ngày 30 tháng 10 năm 2026. Động thái này đánh dấu sự chuyển hướng rõ rệt trong cách xử lý khủng hoảng của đơn vị phát hành trước những lo ngại sâu sắc từ công chúng về việc thương mại hóa nỗi đau của người khuyết tật trí tuệ.

Giải trí
Review phim Gioia Mia: Mùa hè Sicily và những nỗi buồn chưa từng được gọi tên

Review phim Gioia Mia: Mùa hè Sicily và những nỗi buồn chưa từng được gọi tên

Khoa Nguyen

Lấy bối cảnh vùng quê Sicily ngập nắng, bộ phim đầu tay của đạo diễn Margherita Spampinato kể về kỳ nghỉ hè của cậu bé Nico bên người dì lớn tuổi Gela. Đằng sau những va chạm giữa hai thế hệ là câu chuyện về mất mát, tình yêu bị che giấu và khả năng tìm thấy sự đồng cảm giữa những con người tưởng chừng chẳng có điểm chung.

Phim Ảnh
Discord chuẩn bị loại bỏ Electron, chuyển sang Rust để giảm mức tiêu thụ RAM

Discord chuẩn bị loại bỏ Electron, chuyển sang Rust để giảm mức tiêu thụ RAM

quân

Trong bối cảnh giá RAM tăng cao và nguồn cung bộ nhớ ngày càng chịu áp lực từ nhu cầu AI, Discord đang lên kế hoạch thay thế ứng dụng desktop dựa trên Electron bằng một phiên bản mới sử dụng Rust. Thay đổi này được kỳ vọng giúp phần mềm giảm đáng kể mức tiêu thụ bộ nhớ, đồng thời cải thiện hiệu năng trên máy tính cấu hình thấp.

Công Nghệ
Lên đầu trang