Thiết bị ESP32 giá 5 USD chặn hơn 537.000 tên miền quảng cáo

Thiết bị ESP32 giá 5 USD chặn hơn 537.000 tên miền quảng cáo

-

Lưu lại đọc sau

ESP32 có thể được biến thành một bộ lọc quảng cáo cho toàn mạng với chi phí chỉ khoảng 5 USD. Dự án của lập trình viên ZedAxis lưu danh sách hơn 537.000 tên miền trong 4 MB bộ nhớ flash, trong khi firmware chỉ sử dụng khoảng 50 KB RAM.

Thiết bị được xây dựng từ bo mạch ESP32-C3 SuperMini, một vi điều khiển nhỏ có kết nối Wi-Fi. ZedAxis sử dụng nó làm máy chủ DNS dự phòng cho mạng gia đình, hoạt động khi hệ thống Pi-hole chính phải khởi động lại hoặc tạm thời mất kết nối.

ESP32-C3 SuperMini chỉ có khoảng 400 KB RAM và 4 MB bộ nhớ flash. Cấu hình này thấp hơn nhiều so với Raspberry Pi hoặc các máy tính mini thường được dùng để chạy Pi-hole và AdGuard Home.

Giới hạn lớn nhất nằm ở dung lượng lưu trữ. Danh sách chặn dưới dạng văn bản thuần gồm hàng trăm nghìn tên miền sẽ chiếm quá nhiều bộ nhớ, khiến việc đưa toàn bộ dữ liệu vào ESP32-C3 gần như không khả thi.

Thay vì lưu tên miền trực tiếp, ZedAxis chuyển từng địa chỉ thành một giá trị băm FNV-1a dài 40 bit. Cách làm này giúp thu nhỏ đáng kể kích thước cơ sở dữ liệu, đồng thời hạn chế nguy cơ trùng giá trị so với việc chỉ sử dụng mã băm 32 bit.

Quy trình tạo danh sách bắt đầu bằng việc tải dữ liệu từ một hoặc nhiều nguồn chặn công khai. Hệ thống loại bỏ phần chú thích, xóa các mục trùng lặp, tạo mã băm cho từng tên miền rồi sắp xếp toàn bộ danh sách trước khi ghi vào bộ nhớ flash.

Khi nhận được một truy vấn DNS, thiết bị sẽ tạo mã băm cho tên miền được yêu cầu. Sau đó, firmware sử dụng thuật toán tìm kiếm nhị phân để kiểm tra giá trị này trong bảng dữ liệu đã sắp xếp.

Nếu tìm thấy kết quả trùng khớp, truy vấn sẽ bị chặn. Trong trường hợp tên miền không nằm trong danh sách, yêu cầu được chuyển tiếp đến một máy chủ DNS bên ngoài để tiếp tục xử lý.

Theo số liệu do tác giả dự án công bố, firmware sử dụng khoảng 50 KB RAM trong quá trình hoạt động. Những truy vấn bị chặn có thời gian phản hồi khoảng 10 mili giây, đủ nhanh để khó tạo ra khác biệt rõ rệt trong quá trình duyệt web thông thường.

gamen.pro ESP32 2

Đổi khả năng cập nhật lấy dung lượng

ESP32 thường dành một phần bộ nhớ flash để chứa hai bản firmware. Cách bố trí này phục vụ cập nhật OTA qua mạng và giúp thiết bị có thể quay về bản cũ nếu quá trình cài đặt gặp lỗi.

Khi giữ tính năng OTA, dự án chỉ có thể lưu khoảng 250.000 tên miền. Nếu loại bỏ phân vùng dành cho bản firmware dự phòng, dung lượng trống có thể được tận dụng để nâng danh sách chặn lên khoảng 537.000 tên miền.

Đây là sự đánh đổi đáng chú ý. Người dùng có được danh sách chặn lớn hơn, nhưng phải kết nối trực tiếp thiết bị với máy tính nếu muốn cài firmware mới hoặc cập nhật cơ sở dữ liệu.

Dự án còn có một giao diện quản lý đơn giản. Người dùng có thể xem một số thông tin hoạt động và bổ sung tên miền tùy chỉnh vào danh sách chặn.

Tuy nhiên, hệ thống không cung cấp thống kê chi tiết theo từng thiết bị, lịch sử truy vấn hoặc các tùy chọn quản lý chuyên sâu. Đây là những chức năng vốn có trên Pi-hole và AdGuard Home.

gamen.pro ESP32 3

Không thay thế hoàn toàn Pi-hole

ZedAxis không xây dựng thiết bị để thay thế một máy chủ DNS đầy đủ. Vai trò chính của nó là phương án dự phòng, giúp mạng gia đình tiếp tục chặn tên miền quảng cáo khi máy chủ chính bị gián đoạn.

Trong cách lắp đặt được giới thiệu, ESP32-C3 lấy điện từ cổng USB phía sau bộ định tuyến quang Huawei OptiXstar. Cổng USB chỉ cung cấp nguồn 5 V, còn toàn bộ dữ liệu được truyền qua kết nối Wi-Fi tích hợp trên bo mạch.

Thiết bị tiêu thụ dòng điện ở mức vài chục miliampe và có kích thước đủ nhỏ để nằm khuất phía sau bộ định tuyến. Người dùng không cần dây mạng hoặc nguồn điện riêng để duy trì hoạt động.

gamen.pro ESP32 3 1

Mức giá thực tế của ESP32-C3 SuperMini thay đổi tùy thị trường. ZedAxis cho biết bo mạch có thể được mua với giá khoảng 2 USD, trong khi một số nhà bán lẻ niêm yết gần 5 USD.

Dự án cho thấy bộ lọc DNS không nhất thiết phải chạy trên phần cứng mạnh. Bằng cách nén dữ liệu thành mã băm và tối ưu cấu trúc tìm kiếm, một vi điều khiển có vài trăm KB RAM vẫn có thể xử lý danh sách chặn với quy mô lớn.

Dù chưa phù hợp với người cần hệ thống quản lý mạng chuyên sâu, bộ lọc dự phòng dùng ESP32 là một thử nghiệm đáng chú ý về khả năng tận dụng phần cứng giá rẻ. Thiết bị nhỏ có thể duy trì chức năng chặn quảng cáo cho toàn mạng mà không cần Raspberry Pi, máy tính mini hoặc máy chủ riêng.

> Ý kiến đóng góp xin gửi về: [email protected] > Press Inquiries: [email protected]

GameN - MXH dành cho game thủ Việt

Ban quản trị

ĐỌC NHIỀU