Cài uBlock Origin cho laptop cá nhân thì quá đơn giản. Nhưng thử tưởng tượng bạn phải cấu hình lần lượt cho 5 chiếc điện thoại trong nhà, chiếc Smart TV Samsung liên tục hiện banner quảng cáo, hay đám camera giám sát âm thầm gửi telemetry về máy chủ lạ. Lúc này, dựng một DNS Sinkhole tập trung ở tầng gateway là giải pháp triệt để nhất. Mọi thiết bị kết nối vào Wi-Fi đều tự động được bảo vệ mà không cần cài thêm bất kỳ app nào.
So sánh các giải pháp lọc quảng cáo phổ biến hiện nay
Trong thực tế, chúng ta thường phân vân giữa ba hướng đi:
- Browser Extension (uBlock Origin, AdGuard): Can thiệp trực tiếp vào mã nguồn HTML/DOM trên trình duyệt. Cách này lọc sạch nhất, xóa được cả khung trắng quảng cáo trên YouTube hay Facebook. Điểm trừ? Hoàn toàn vô dụng với Smart TV, game mobile hay thiết bị IoT.
- Pi-hole: Tượng đài DNS sinkhole mã nguồn mở, cực nhẹ và ổn định trên Raspberry Pi. Tuy nhiên, Pi-hole không hỗ trợ sẵn DNS mã hóa. Muốn dùng DoH hay DoT để chống nhà mạng theo dõi, bạn phải cài thêm các dịch vụ trung gian như
cloudflaredhoặcunboundkhá cồng kềnh. - AdGuard Home: Viết bằng Go và đóng gói thành một file binary duy nhất. Nền tảng này tích hợp sẵn DoH, DoT, DoQ ngay từ đầu. Giao diện trực quan, hỗ trợ quản lý quy tắc chặn theo từng thiết bị chỉ bằng vài cú click chuột.
Vì sao AdGuard Home phù hợp cho mạng gia đình và văn phòng nhỏ?
Với hạ tầng từ 10 đến 100 thiết bị, AdGuard Home gần như không có đối thủ về độ tiện dụng. Bạn có thể dựng nó trên một con Raspberry Pi 3 cũ, máy chủ mini PC x86 hoặc một VPS giá rẻ 5 USD/tháng.
Về tiêu thụ tài nguyên, AdGuard Home chỉ ngốn khoảng 80MB – 150MB RAM khi nạp khoảng 300.000 rule lọc. Con số này cao hơn Pi-hole một chút nhưng hoàn toàn nằm trong khả năng đáp ứng của các phần cứng hiện nay.
Lưu ý nhỏ trước khi cài đặt: máy chủ Linux của bạn phải được gán IP tĩnh (Static IP) trong mạng LAN. Tránh trường hợp router cấp phát lại IP khác sau khi khởi động lại khiến cả nhà mất mạng. Khi chia dải mạng, bạn có thể dùng các công cụ tính subnet trực tuyến để tách riêng dải IP cấp cho DHCP và IP cố định cho server, tránh trùng lặp.
Các bước triển khai AdGuard Home trên máy chủ Linux
Bước 1: Giải phóng port 53 bị systemd-resolved chiếm giữ
Đây là lỗi kinh điển khiến 90% người mới cài đặt trên Ubuntu hay Debian thất bại. Dịch vụ systemd-resolved mặc định chiếm dụng cổng 53/UDP làm stub listener nội bộ, ngăn AdGuard Home khởi chạy.
Hãy mở file cấu hình bằng quyền root:
sudo nano /etc/systemd/resolved.conf
Tìm và chỉnh sửa hai tham số sau (xóa bỏ dấu # ở đầu dòng nếu có):
DNSStubListener=no
DNS=127.0.0.1
Lưu file lại (Ctrl+O, Enter, rồi Ctrl+X). Tiếp theo, tạo symlink trỏ file phân giải DNS hệ thống về cấu hình thực và restart lại service:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved
Kiểm tra xem port 53 đã thực sự được giải phóng chưa:
sudo ss -tulpn | grep :53
Màn hình terminal không trả về dòng tiến trình nào nghĩa là cổng 53 đã sẵn sàng.
Bước 2: Cài đặt AdGuard Home bằng script chính thức
Chạy lệnh sau để tải và cài đặt bản mới nhất. Script sẽ tự nhận diện kiến trúc CPU (x86_64, ARM64) và đăng ký service với systemd:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Kiểm tra trạng thái hoạt động của dịch vụ:
sudo systemctl status AdGuardHome
Nếu thấy trạng thái active (running) màu xanh lá, bạn đã hoàn thành phần việc trên terminal.
Bước 3: Thiết lập nhanh qua Web Setup Wizard
Dùng máy tính cùng dải mạng nội bộ, mở trình duyệt và truy cập:
http://<IP_SERVER_LINUX>:3000
- Bấm Get Started để bắt đầu.
- Web Interface: Chọn interface mạng LAN của bạn. Giữ nguyên cổng
80, hoặc đổi sang cổng8080nếu máy chủ đang chạy sẵn Nginx/Apache. - DNS Server: Chọn port
53trên card mạng LAN. - Tạo tài khoản quản trị (Username và Master Password).
- Bấm Next cho đến khi hoàn tất và đăng nhập vào Dashboard.
Bước 4: Cấu hình Upstream DNS mã hóa (DoH / DoT)
Mặc định, các truy vấn DNS gửi đi dưới dạng plaintext rất dễ bị ISP nghe lén hoặc chèn ép chuyển hướng. Hãy chuyển sang các giao thức mã hóa để bảo vệ quyền riêng tư.
Truy cập Settings > DNS settings. Tại khung Upstream DNS servers, xóa cấu hình cũ và dán vào danh sách sau:
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query
tls://1.1.1.1
tls://8.8.8.8
Ở mục Upstream mode bên dưới, tích chọn Parallel requests. Tùy chọn này cho phép AdGuard Home bắn truy vấn đồng thời tới toàn bộ máy chủ upstream. Máy chủ nào phản hồi trước sẽ được nhận, giúp kéo độ trễ phân giải tên miền xuống mức thấp nhất.
Tại mục Bootstrap DNS servers, điền IP thuần để phân giải ban đầu cho các domain DoH:
1.1.1.1:53
8.8.8.8:53
Nhấn Apply rồi bấm Test upstreams. Hệ thống báo kiểm tra thành công với thời gian phản hồi đo bằng mili-giây (thường dưới 30ms) là chuẩn.
Bước 5: Bổ sung Blocklist tiếng Việt và tính năng Parental Control
Bộ lọc mặc định của AdGuard bắt tốt quảng cáo quốc tế nhưng bỏ sót nhiều trang quảng cáo, tracking nội địa. Hãy thêm danh sách ABPVN tối ưu riêng cho người dùng Việt Nam:
- Vào Filters > DNS blocklists > nhấn Add blocklist > chọn Add a custom list.
- Name:
ABPVN Filter - URL:
https://raw.githubusercontent.com/abpvn/abpvn/master/filter/abpvn_AdGuardHome.txt - Bấm Save để hệ thống tải rule về.
Ngoài ra, nếu muốn quản lý thời gian sử dụng mạng của trẻ nhỏ, hãy vào mục Filters > Blocked services. Bạn chỉ cần tích chọn TikTok, Facebook, Roblox hay Discord để chặn triệt để kết nối tới các nền tảng này.
Bước 6: Trỏ DNS trên Router về AdGuard Home
Thay vì cấu hình thủ công trên từng máy, hãy để Router Wi-Fi tự động phân phối DNS cho cả nhà:
- Truy cập trang quản trị router (thường là
192.168.1.1hoặc192.168.0.1). - Tìm mục DHCP Server > dòng Primary DNS.
- Điền địa chỉ IP tĩnh của máy chủ AdGuard Home vào ô này. Để trống ô Secondary DNS (hoặc điền lại cùng IP đó) nhằm tránh việc thiết bị tự động nhảy sang DNS dự phòng của nhà mạng.
- Lưu cấu hình, sau đó ngắt kết nối Wi-Fi trên điện thoại rồi bật lại để nhận dải DNS mới.
Kinh nghiệm thực tế giúp vận hành mượt mà, không lỗi vặt
- Không nhồi nhét quá nhiều Blocklist: Thêm 10 đến 20 danh sách với hàng triệu quy tắc không giúp mạng an toàn hơn. Ngược lại, nó khiến RAM tăng vọt và thường xuyên gây chặn nhầm (false-positive). Kết quả là người nhà sẽ phàn nàn vì không bấm được link Shopee affiliate, app ngân hàng lỗi hay Zalo không tải được ảnh. Chỉ cần bộ lọc mặc định kết hợp ABPVN là đã xử lý được 95-98% quảng cáo rác.
- Bật Optimistic Caching: Trong menu DNS Settings, kích hoạt tính năng này. AdGuard Home sẽ trả về ngay lập tức IP đã lưu trong bộ nhớ đệm cho client, bất kể bản ghi đã hết hạn TTL hay chưa, sau đó mới âm thầm truy vấn cập nhật ngầm. Tốc độ mở trang web thường giảm từ 40-70ms xuống chỉ còn 1-3ms.
- Dùng Query Log để xử lý sự cố: Khi có trang web bị lỗi kết nối, đừng vội tắt AdGuard. Mở ngay mục Query Log, lọc theo IP thiết bị gặp sự cố. Dòng màu đỏ chính là request bị chặn. Bạn chỉ cần bấm Unblock để đưa domain đó vào Whitelist là xong.
- Sao lưu file AdGuardHome.yaml: Mọi cài đặt, danh sách rule và phân nhóm client đều nằm gọn trong file
/opt/AdGuardHome/AdGuardHome.yaml. Hãy tạo một cronjob sao lưu file này lên Google Drive hoặc máy tính cá nhân hàng tuần. Khi máy chủ hỏng ổ cứng, bạn chỉ mất 3 phút để khôi phục toàn bộ hệ thống.

