Đâ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 dns.bibica.net, ưu tiên cao nhất vẫn là độ ổn định, sau đó tới tính năng, bảo mật, sự riêng tư, phiên bản v2 hiện tại, đã tinh chỉnh đơn giản khá 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
Core Architecture & Query Flow: dns.bibica.net
Hệ thống được thiết kế theo mô hình Pipeline Multi-Phase kết hợp với Multi-Tier Redis Caching để tối ưu hóa tốc độ, quyền riêng tư và khả năng phân giải CDN chính xác theo vị trí người dùng.
Hệ thống vận hành trên mô hình Pipeline Multi-Phase kết hợp Multi-Tier Redis Caching, đảm bảo sự cân bằng giữa tốc độ truy cập, tính bảo mật và khả năng tối ưu hóa node CDN theo vị trí địa lý.
PHASE 1: Traffic Filtering (Sàng lọc)
Ngắt sớm các truy vấn rác để bảo vệ tài nguyên hệ thống:
- Chặn loại bản ghi:
ANY(DDoS prevention),IPv6(AAAA),PTR(Reverse DNS). - Chặn tên miền nội bộ: Các TLD như
.lan,.local,.home… - Hành vi: Trả về
REFUSED,NOTIMPhoặcNXDOMAIN
PHASE 2: Normalization & Optimization (Chuẩn hóa)
Làm sạch gói tin trước khi xử lý logic:
- Strip ECS: Xóa thông tin Client Subnet cũ do thiết bị khách tự gửi (nếu có)
- Optimized MTU: Giới hạn gói tin 1232 bytes để chống phân mảnh (fragmentation), tối ưu cho hạ tầng mạng Việt Nam.
- Internal Redirect: điều hướng tên miền nội bộ theo quy tắc tùy chỉnh.
PHASE 3: Security & Adblock (Chặn quảng cáo)
- Đối chiếu với danh sách
blocklists.txtvàallowlists.txt - Hành vi: Nếu tên miền nằm trong
allowlists.txt, hệ thống sẽ cho qua ngay cả khi nó có tên trong danh sách chặn. Nếu chỉ nằm trongblocklists.txt, trả vềNXDOMAIN.
PHASE 4: Smart Routing (Định tuyến thông minh)
Phân loại tên miền và điều hướng đến các Upstream phù hợp
- Google Upstream: các tên miền chủ động sử dụng Google DNS, bổ xung ECS /24, lưu cache riêng cho từng người dùng
- Cloudflare Gateway Upstream: các tên miền CDN đã xác định, bổ xung ECS /24, lưu cache riêng cho từng người dùng
- Mullvad Upstream: các tên miền cần quyền riêng tư cao, hoặc gắp vấn đề với ECS Việt Nam, dùng chung kết quả cache cho nhiều người dùng
- Nhánh mặc định: toàn bộ tên miền còn lại được gửi đến Cloudflare DNS, không dùng ECS, dùng chung kết quả cache cho nhiều người dùng
PHASE 5: Recursive CDN Discovery (Tối ưu CNAME CDN)
Áp dụng cho các tên miền thuộc nhánh mặc định phân giải ra CNAME CDN
- Hệ thống quét bản ghi CNAME trong kết quả trả về.
- Nếu phát hiện dấu hiệu của hạ tầng CDN (Cloudfront, Akamai…), bổ xung ECS /24, tự động định tuyến qua Cloudflare Gateway để lấy IP máy chủ CDN gần nhất, lưu cache riêng cho từng người dùng
Cấu trúc Multi-Tier Redis Cache
Hệ thống sử dụng 5 Database Redis riêng biệt để cô lập dữ liệu và tối ưu logic định tuyến:
| Database | Tên gọi | Đặc điểm kỹ thuật |
| Redis 0 | google_cache |
Cache riêng cho từng người dùng |
| Redis 1 | cdn_cache |
Cache riêng cho từng người dùng |
| Redis 2 | cname_cdn_cache |
Cache riêng cho từng người dùng |
| Redis 3 | mullvad_cache |
Cache dùng chung cho nhiều người dùng |
| Redis 4 | cloudflare_cache |
Cache dùng chung cho nhiều người dùng |
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, chạy script, nhập domain muốn dùng và thông tin Cloudflare API Token
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
- Mosdns-x dùng ~ 60MB – 80MB RAM, Caddy dùng ~ 20MB – 50MB RAM, Redis cache sử dụng tối đa 50% RAM thực
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ị!