Đây là phiên bản cài đặt dns.bibica.net v2 trên Tencent Lighthouse Singapore, do Tencent cho nhiều RAM quá, nên chạy qua docker, việc cài đặt, cấu hình, backup, restore sẽ nhanh và đơn giản hơn
Bất cứ phiên bản nào của thèng dns.bibica.net, ưu tiên cao nhất vẫn là độ ổn định, sau đó mới tới tính năng, bảo mật, sự riêng tư, phiên bản v2 hiện tại bạn đọc, đã tinh chỉnh đơn giản lại rất nhiều so với công bố đầu tiên
Bạn có thể sử dụng trực tiếp dns.bibica.net hoặc tự cấu hình dùng cá nhân theo bài này
Kiến trúc cốt lõi và Luồng truy vấn
Hệ thống xử lý các truy vấn DNS thông qua một quy trình có cấu trúc nhằm tối ưu hóa tốc độ và bảo mật:
- Lọc yêu cầu (Request Filtering): Từ chối các truy vấn
ANY(RFC 8482), chặnIPv6(AAAA) để ưu tiên IPv4, và từ chối các yêu cầuPTR(DNS ngược) cũng như các TLD nội bộ (Private TLD) - Làm sạch dữ liệu (Sanitization): Loại bỏ dữ liệu Client Subnet (ECS) từ phía người dùng gửi đến và lọc các tùy chọn EDNS0 cho tất cả các truy vấn gửi lên máy chủ thượng nguồn (upstream)
- Hiệu suất (Performance): Bộ nhớ đệm Redis với TTL 3 ngày (hỗ trợ lưu trữ vào ổ cứng), phản hồi truy vấn DNS ngay lập tức (tự động cấp phát 50% RAM máy chủ trên 5 cơ sở dữ liệu độc lập)
- Điều hướng tên miền (Domain Rewriting): Áp dụng các quy tắc chuyển hướng và ghi đè nội bộ thông qua
dns_redirect
Định tuyến Upstream thông minh
Các truy vấn được định tuyến động đến các máy chủ thượng nguồn cụ thể dựa trên loại tên miền:
- Tên miền CDN: Các tên miền nằm trong danh sách
cdn_domainshoặc các phản hồi chứa CNAME của CDN sẽ được định tuyến đến Cloudflare Gateway kèm theo ECS (EDNS Client Subnet) để tối ưu việc chọn máy chủ gần nhất - Tên miền Google: Được chuyển tiếp đến Google DNS (
8.8.8.8/8.8.4.4) có hỗ trợ ECS và điều chỉnh TTL tối thiểu - Tên miền Mullvad: Định tuyến riêng biệt đến
dns.mullvad.net - Truy vấn thông thường: Tất cả các truy vấn khác được xử lý bởi
upstream_cloudflare(1.1.1.1/1.0.0.1)
Lọc nội dung
Hệ thống tích hợp sẵn cơ chế chặn quảng cáo:
- Blocklist & Allowlist: Trả về
NXDOMAINcho các tên miền nằm trong danh sách chặn (blocklist), trong khi danh sách trắng (allowlist) đảm bảo các dịch vụ thiết yếu không bị chặn nhầm
Giao thức hỗ trợ
Dịch vụ hỗ trợ các giao thức DNS mã hóa hiện đại theo cấu hình triển khai:
- DNS-over-HTTPS (DoH):
https://<DOMAIN>/dns-query - DNS-over-TLS (DoT):
tls://<DOMAIN> - DNS-over-HTTP/3 (DoH3):
h3://<DOMAIN>/dns-query - DNS-over-QUIC (DoQ):
quic://<DOMAIN>
Quản lý hệ thống
- Nguồn dữ liệu (Data Providers): Các tệp cấu hình cho CDN, Google, Mullvad và danh sách chặn sử dụng tính năng
auto_reloadđể cập nhật thời gian thực - Quản lý SSL: Tự động cấp phát và gia hạn chứng chỉ Let’s Encrypt thông qua Caddy
- Nhật ký (Logging): Theo dõi ở mức
infotrong tệplog/mosdns.logcùng với tóm tắt truy vấn (_query_summary) để giám sát hoạt động
Reinstall OS
Sau khi tạo mới VPS, vui lòng Reinstall OS về Debian 13 “Trixie” (không dùng bản mặc định nhà cung cấp VPS cung cấp)
sudo -s cd ~ curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh bash reinstall.sh debian 13 # root with a default password 123@@@
Cài đặt Debian 13 “Trixie”
Cài đặt docker mặc định cho VPS mới chạy Debian 13 “Trixie”, cấu hình cơ bản, hạn chế mọi tinh chỉnh không cần thiết
apt install -y curl sudo && curl -fsSL go.bibica.net/vps | sudo bash
Chạy xong reboot lại 1 phát cho sạch sẽ
Cài đặt và cấu hình Mosdns-x – Caddy – Redis
Bash script đã làm sẵn mọi công đoạn, nhập domain muốn dùng và Cloudflare API Token là được
wget -qO /home/setup-dns-bibica-net-v2.sh https://go.bibica.net/setup-dns-bibica-net-v2 && sudo bash /home/setup-dns-bibica-net-v2.sh
- Tùy chỉnh firewall
nano /home/setup-geo-firewall.sh
Mặc định cho phép user IP VN truy cập vào VPS qua TCP port 22 443 853, UDP port 443 853
ALLOW_COUNTRIES=("VN")
ALLOW_TCP_PORTS=("22" "443" "853")
ALLOW_UDP_PORTS=("443" "853")
Cần mở thêm port nào, thêm vào ALLOW_TCP_PORTS, ALLOW_UDP_PORTS
Các giá trị khác, nếu bạn không hiểu, dùng như mặc định là được
- Điều chỉnh xong thì chạy firewall
/home/setup-geo-firewall.sh
DoH DoT DoQ DoH3 firewwall đã cấu hình mặc định mở port, nếu VPS chạy qua các dịch vụ cloud như Amazon, Google, Oralce, Tencent …. cần vào quản trị mở các port TCP 443 853 – UDP 443 853
Kiểm tra
- Sau khi cài đặt xong, sẽ có 2 cron tự cập nhập danh sách bộ lọc chặn quảng cáo và cập nhập IP Việt Nam có thể truy cập vào VPS
0 2 * * * /bin/bash /home/mosdns-x/cron/blocklists-allowlists.sh > /dev/null 2>&1 30 2 * * * /home/geo-firewall/geo-firewall.sh >/dev/null 2>&1
- Các thư mục và file, sau khi cài đặt xong, sẽ như sau
/home/caddy_config /home/caddy_data /home/geo-firewall /home/mosdns-x /home/Caddyfile /home/compose.yml /home/setup-cron-mosdns-block-allow.sh /home/setup-dns-bibica-net-v2.sh /home/setup-geo-firewall.sh
- Muốn tùy chỉnh, cấu hình Mosdns-x, mở file
nano /home/mosdns-x/config/config.yaml
Tôi đã thêm vào rất nhiều comment để người đọc hiểu cấu hình đó có ý nghĩa gì, hơi lú đầu nếu bạn lần đầu biết tới Mosdns-x
- Muốn tùy chỉnh thêm danh sách bộ lọc quảng cáo, bỏ chặn quảng cáo, mở file
nano /home/mosdns-x/cron/blocklists-allowlists.sh
- Bên trong có các danh sách bộ lọc, sửa tùy thích
Kiểm tra xong hết, reboot lại VPS 1 lần nữa cho sạch sẽ, đổi lại DNS domain rồi dùng là được
Kết luận
Dùng Mosdns-x ít ngày khá là thích, vì đáp ứng được các yêu cầu mình cần, có điều công đoạn cấu hình rất lú người, dùng thông thường AdGuard Home vẫn tiện hơn, có điều nếu bạn cài đặt theo script như ở bài này, tính ra còn đơn giản hơn so với dùng AdGuard Home, gần như cài vào phát là có thể dùng được ngay, không phải cấu hình thêm cái gì nữa cả
Mặc định Mosdns-x đã có lưu cache vào RAM, dùng Redis kể ra hơi thừa, nhưng nó giúp đỡ phải tính toán lưu bao nhiêu key lằng nhằng, cứ tính 1/2 RAM hệ thống có cho khỏe, với nó có ghi vào ổ cứng, khi reboot VPS hay restart Mosdns-x không mất cache cũ, thấy cũng hợp lý, nên bổ sung thêm vào, nhờ dùng nó mới tính toán sơ bộ trung bình cache 1 key ~ 1kb, tính ra 1GB RAM ~ 1 triệu keys, 100 user dùng khá thoải mái
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!