Tôi đã ngừng tin tưởng Cloudflare với DNS của mình và tự thiết lập DNS riêng
Thay đổi cài đặt DNS của bạn là một trong những cách dễ nhất để mang lại chút riêng tư bổ sung cho mạng của bạn. Tôi đã thay đổi cài đặt DNS trên hầu hết các thiết bị của mình trong nhiều năm để có các lựa chọn thay thế nhanh hơn và bảo mật hơn so với cài đặt DNS mặc định của nhà cung cấp dịch vụ Internet của tôi, và đạt được thành công lớn.
Nhưng tôi muốn đi xa hơn và giữ tất cả các yêu cầu DNS của mình trong mạng riêng của tôi, tăng cường sự riêng tư của tôi hơn nữa.
Vì vậy, tôi đã lấy một chiếc laptop cũ, một bản sao của máy chủ mã nguồn mở Proxmox, và bắt tay vào làm việc. Và xét rằng tôi không có nhiều kinh nghiệm với Linux, máy chủ, v.v., việc thiết lập và chạy DNS của riêng mình lại là một quá trình bất ngờ dễ dàng và suôn sẻ.
Những gì tôi đã sử dụng cho máy chủ DNS tại nhà của mình
Tuy nhiên, vẫn có những lựa chọn khác
Để làm điều này, tôi đang sử dụng một chiếc Honor MagicBook 14 năm 2021 với CPU Intel i5-1135G7, card đồ họa tích hợp Intel Xe, RAM 8GB DDR4 và ổ SSD 512GB. Nó không phải là laptop mạnh nhất, nhưng nó có sức mạnh đủ để chạy một máy chủ Proxmox cơ bản với vài máy ảo cho các dịch vụ khác nhau (sẽ có thêm trong vài tuần tới!).
Bạn có thể chạy Proxmox trên phần cứng cũ hơn nhiều nếu đó là những gì bạn có, miễn là nó có CPU 64-bit (cơ bản là tất cả các máy tính và laptop hiện đại), hỗ trợ ảo hóa Intel VT/AMD-V, và ít nhất 2GB RAM. À, và một cổng Ethernet tích hợp trên bo mạch cũng hữu ích, nhưng như tôi đã thấy, một bộ chuyển đổi Ethernet sang USB tốt cũng có thể làm được công việc.
Về vấn đề đó, nếu bạn đang sử dụng một bộ chuyển đổi, hãy đảm bảo nó sử dụng chipset Realtek RTL8153, vì nó có một trong những hỗ trợ Linux tốt nhất và giúp việc thiết lập mạng của bạn dễ dàng hơn một chút so với một số lựa chọn thay thế. Ví dụ, một trong những lựa chọn thay thế chipset bộ chuyển đổi Ethernet-to-USB chính, AX88179, được biết là gây ra vấn đề với Proxmox.
Sau đó, tôi đã quyết định kết hợp Unbound DNS với AdGuard để tạo ra một giải pháp DNS toàn diện tại chỗ. Trong bộ DNS cơ bản này, Unbound xử lý các yêu cầu DNS (về cơ bản là biến tên miền dễ đọc thành địa chỉ IP mà máy có thể đọc được), và AdGuard cung cấp tính năng chặn, lọc và nhiều hơn thế.
Kết hợp lại, nó mang đến cho bạn một DNS rất mạnh, riêng tư và có khả năng không có quảng cáo cho tất cả các thiết bị trong mạng của bạn, tất cả chỉ với vài giờ làm việc.
Ngoài ra, hãy lưu ý rằng mặc dù tôi đang sử dụng một chiếc laptop cũ với Proxmox, đó không phải là cách duy nhất để thực hiện việc này. Bạn cũng có thể sử dụng một Raspberry Pi với Unbound và Pi-hole để đạt được kết quả tương tự; nó chỉ là những gì bạn có sẵn (hoặc muốn đầu tư mua).
Trước khi xóa dữ liệu máy của bạn, hãy lấy một số thông tin mạng
Bạn sẽ cần nó trong quá trình cài đặt Proxmox
Một ghi chú nhanh về địa chỉ IP: các địa chỉ được sử dụng trong hướng dẫn này — 192.168.1.1 cho cổng (gateway), 192.168.1.10 cho Proxmox, 192.168.1.11 cho container DNS — phản ánh thiết lập mạng của riêng tôi. Mạng của bạn có thể sử dụng một phạm vi hoàn toàn khác, chẳng hạn như 192.168.0.x hoặc 10.0.0.x. Luôn sử dụng thông tin cổng và mạng con (subnet) từ kết quả ipconfig của riêng bạn thay vì sao chép trực tiếp các địa chỉ của tôi. Sai địa chỉ là lỗi thiết lập phổ biến nhất. Nó có thể được sửa (như tôi đã phát hiện ra!), nhưng có các địa chỉ IP đúng ngay từ đầu sẽ giúp mọi thứ trở nên dễ dàng hơn rất nhiều.
Bước đầu tiên của quá trình này là ghi lại một vài thông tin mạng từ máy hiện tại của bạn.
- Mở Command Prompt/Terminal và chạy
ipconfig - Ghi lại Cổng mặc định của bạn (địa chỉ IP của bộ định tuyến của bạn, thường là 192.168.1.1) và địa chỉ IPv4 của máy hiện tại của bạn.
Bạn sẽ sử dụng địa chỉ IP gateway trong quá trình cài đặt Proxmox, và việc biết phạm vi IP hiện tại của bạn có nghĩa là bạn có thể chọn một địa chỉ IP tĩnh cho Proxmox mà sẽ không xung đột với bất cứ thứ gì khác trên mạng của bạn.
Ví dụ, nếu gateway của bạn là 192.168.1.1 và máy tính của bạn là 192.168.1.50, bạn có thể gán cho Proxmox một địa chỉ như 192.168.1.10 — chỉ cần đảm bảo nó nằm ngoài phạm vi DHCP của router của bạn.
Chỉ là đừng làm như tôi đã làm trong quá trình cài đặt và thêm IP cho giao diện mạng sai... để tôi nói với bạn, việc đó tốn hơn vài phút mới có thể phát hiện ra.
Tải xuống và cài đặt Proxmox
Bạn sẽ cần xóa thiết bị của mình
Proxmox VE là một hypervisor bare-metal — bạn cài đặt nó thay vì một hệ điều hành, và nó cho phép bạn chạy nhiều máy ảo và các container nhẹ từ giao diện dựa trên trình duyệt. Nó là thứ biến một chiếc laptop cũ thành một máy chủ homelab thực thụ. Nó cũng có nghĩa là bất cứ thứ gì trên laptop cũ của bạn sẽ bị xóa trong quá trình cài đặt, vì vậy hãy chắc chắn sao lưu mọi thứ quan trọng.
Đối với phần này của quy trình, bạn sẽ cần một USB. Nó sẽ bị xóa trong quá trình tạo ISO, vì vậy hãy đảm bảo bạn đã xóa mọi dữ liệu từ nó.
- Truy cập trang tải về Proxmox và tải phiên bản mới nhất của Proxmox VE.
- Tiếp theo, truy cập Rufus và tải xuống phiên bản mới nhất. Khi Rufus đã tải xong, hãy khởi động nó.
- Nhấn nút Chọn và duyệt đến file tải xuống máy chủ Proxmox. Rufus sẽ tự động nhận dạng loại ISO và điều chỉnh cài đặt của nó tự động.
Khi bạn đã chắc chắn, nhấn Bắt đầu và để quá trình cài đặt từ ISO sang USB hoàn tất.
Khởi động từ USB và cài đặt Proxmox
Proxmox chạy trực tiếp trên phần cứng của bạn
Bây giờ, bạn sẽ cần cắm laptop cũ của mình vào router. Hãy làm điều này bằng cáp Ethernet. Như đã nói, nếu laptop của bạn không có cổng Ethernet, bạn sẽ cần một bộ chuyển đổi.
Khi đã kết nối, hãy cắm USB của bạn. Sau đó, bạn cần bật laptop trong khi nhấn phím thứ tự khởi động để vào trình tự thứ tự khởi động. Thông thường là F12, nhưng tùy vào nhà sản xuất — một tìm kiếm nhanh trên internet thường sẽ cho bạn biết cần làm gì.
Chọn ổ đĩa mà bạn đã cài đặt Proxmox. Nó sẽ khởi động vào quá trình cài đặt Proxmox, tại đây bạn muốn chọn Cài đặt Proxmox VE (Giao diện đồ họa). Từ đây, bạn sẽ cần chọn ổ đĩa đích, quốc gia và múi giờ của bạn, giao diện mạng (tức là nơi Proxmox sẽ truy cập internet), tên máy chủ, địa chỉ IP, máy chủ DNS, và tổ hợp email/mật khẩu.
Đây là nơi bạn sẽ cần thông tin mà bạn đã ghi lại từ ipconfig trước khi cài đặt Proxmox. Nhập Cổng Mặc Định của bạn và chọn một địa chỉ IP phù hợp. Ví dụ, Cổng Mặc Định của tôi là 192.168.1.1, vì vậy tôi sẽ đặt một IP tĩnh như 192.168.1.10/24, và bạn đã sẵn sàng để sử dụng.
Trong phần máy chủ DNS: vâng, chúng tôi đang thiết lập một giải pháp DNS, nhưng bạn vẫn cần thêm một cái ở đây để Proxmox sử dụng. Tôi đã chọn 9.9.9.9, vì Quad9 là một trong những lựa chọn ưa thích của tôi, nhưng điều này có thể được thay đổi sau.
Xem lại bản tóm tắt, và nhấn Cài đặt. Bạn đang trên đường hoàn tất.
Kết nối với Proxmox và tạo container DNS
Đảm bảo rằng máy chủ của bạn đang hoạt động
Khi quá trình cài đặt hoàn tất, bạn có thể khởi động lại máy chủ. Khi nó tải lại, nó sẽ hiển thị địa chỉ IP đang lưu trữ Proxmox trên mạng của bạn.
Đây là nơi bạn cần một máy tính khác. Nhập địa chỉ IP đó trên một thiết bị khác, và Proxmox sẽ được tải lên. Tên đăng nhập mặc định là root, và bạn sẽ cần mật khẩu mà bạn đã tạo trong quá trình cài đặt máy chủ.
Khi bạn đã đăng nhập, đã đến lúc thiết lập một container cho ngăn xếp DNS. Thay vì cài đặt trực tiếp Unbound và AdGuard trên máy chủ Proxmox, chúng ta sẽ sử dụng một container LXC — một môi trường Linux nhẹ, tách biệt giúp mọi thứ gọn gàng và riêng biệt khỏi hệ thống máy chủ. Hãy nghĩ về nó như một chiếc hộp tự chứa bên trong máy chủ của bạn, chạy phần mềm của riêng nó một cách độc lập.
- Nhấp vào nút của bạn trong bảng bên trái. Nó sẽ được đặt tên theo những gì bạn đã đặt làm tên máy chủ của mình. Ví dụ, của tôi chỉ là DNS.
- Tiếp theo, chọn cục bộ.
- Ở bảng giữa, chọn CT Templates, sau đó nhấn nút Templates ở phía trên.
- Tìm kiếm debian 12 bookworm, sau đó tải về.
Việc tải xuống sẽ không mất nhiều thời gian. Trong khi tải xuống, còn có nhiều cấu hình khác cần hoàn thành. Ở góc trên bên phải, chọn Tạo CT. Từ đây, làm việc qua các tab khác nhau:
- Chung: Thêm một tên máy chủ (lại một lần nữa, dns là ổn), và một mật khẩu gốc.
- Mẫu: Chọn mẫu Debian 12 Bookworm.
- Đĩa: 8GB là quá đủ cho Unbound và AdGuard
- CPU: 1 lõi là đủ
- Bộ nhớ: 512MB RAM và 512MB swap
- Mạng: Đặt IPv4 thành Tĩnh, sau đó thêm địa chỉ IP tĩnh mà bạn sẽ sử dụng để truy cập AdGuard. Ví dụ, tôi đã thêm 192.168.1.11/24, đặt cổng mặc định là 192.168.1.1 (như trước).
- DNS: Giữ nguyên mặc định.
Từ đây, bạn có thể chọn Hoàn tất, và Proxmox sẽ tạo container. Khi nó xuất hiện trong bảng điều khiển bên trái, chọn nó, nhấn Bắt đầu, và để nó khởi động. Khi máy ảo đang chạy, nhấn Bảng điều khiển để mở một shell, nơi bạn có thể nhập lệnh, sau đó nhập: apt update && apt upgrade -y
Nếu bạn thấy lỗi về việc không thể giải quyết các nguồn gói, có thể container của bạn không có kết nối mạng — hãy kiểm tra lại cài đặt IP và gateway trong tab Mạng của container để đảm bảo chúng khớp với phạm vi mạng thực tế của bạn. Khi vấn đề đó được giải quyết, bạn sẵn sàng để cài đặt stack DNS.
Cài đặt và cấu hình Unbound
Động cơ phía sau DNS riêng của bạn
Unbound là một trình phân giải DNS xác thực và đệ quy. Không giống như chỉ chuyển tiếp các truy vấn của bạn đến Cloudflare hoặc Google, Unbound bắt đầu từ các máy chủ gốc DNS, gửi các truy vấn của bạn trực tiếp đến các máy chủ tên và bỏ qua các bên thứ ba ở giữa.
Mở lại Bảng điều khiển từ phần trước và nhập apt install unbound -y
Sau khi Unbound được cài đặt, nhập nano /etc/unbound/unbound.conf.d/local.conf và sau đó dán vào nội dung sau:
máy chủ :
độ dài dòng chữ: 1
giao diện: 127.0.0.1
cổng: 5335
do-ip4: có
do-udp: có
do-tcp: có
truy cập-kiểm soát: 127.0.0.0/8 cho phép
ẩn-danh-tính: có
ẩn Phiên Bản: có
keo cứng: có
harden-dnssec-stripped: có
sử-dụng-chữ-in-hoa-cho-id: có
tải trước: có
số luồng: 1
thời gian sống tối thiểu của bộ nhớ đệm: 300
cache-max-ttl: 86400
kích thước-bộ nhớ-đệm-tin-nhắn: 50m
rrset-cache-size: 100m
Lưu tập tin bằng Ctrl+O, Enter, sau đó Ctrl+X để thoát.
Unbound được cấu hình để lắng nghe trên cổng 5335 thay vì cổng DNS tiêu chuẩn 53. Điều này là vì AdGuard Home sẽ chiếm cổng 53 như bộ phân giải phía trước của bạn, trong khi Unbound nằm phía sau nó.
Prefetch cho Unbound biết làm mới các mục đã lưu trong bộ nhớ đệm phổ biến trước khi chúng hết hạn, giữ thời gian phản hồi thấp cho các miền được truy cập thường xuyên, trong khi các thiết lập kích thước bộ nhớ đệm cung cấp cho Unbound nhiều bộ nhớ để lưu trữ kết quả, vì vậy các truy vấn lặp lại trả về gần như ngay lập tức.
Bây giờ, nhập unbound-checkconf để xác thực tệp. Nếu bạn chạy lệnh đó và nhận được không có lỗi trong tệp cấu hình, bạn đã sẵn sàng. Nếu bạn gặp lỗi tại đây (có một số vấn đề tiềm ẩn), hãy thử tìm kiếm trên internet hoặc tham khảo một chatbot AI như Claude.
- Tiếp theo, khởi động lại Unbound bằng lệnh sau:
systemctl restart unbound - Sau đó, chạy một bài kiểm tra nhanh để xác nhận Unbound đang phân giải đúng:
dig google.com @127.0.0.1 -p 5335
Nếu mọi thứ ổn, bạn sẽ thấy Mục Trả Lời chứa các địa chỉ IP. Lần đầu tiên bạn thực hiện sẽ cảm giác như mất một chút thời gian, vì Unbound truy vấn từ các máy chủ DNS gốc. Mọi thứ đều ổn và bình thường. Khi bộ nhớ đệm DNS đầy, các tìm kiếm tiếp theo và những thao tác sau đó sẽ nhanh hơn.
Với Unbound hoạt động, bạn đã có một bộ phân giải đệ quy hoàn toàn riêng tư chạy trên mạng của mình. Tiếp theo, chúng ta sẽ thêm AdGuard Home lên trên để bổ sung chặn, lọc và một giao diện web đầy đủ.
Cài đặt và cấu hình AdGuard Home
Cánh cửa trước mới của mạng bạn cho DNS
Unbound xử lý việc phân giải đệ quy, nhưng nó không có giao diện web, không có khả năng chặn và không có khả năng quan sát theo từng thiết bị. AdGuard Home lấp đầy tất cả những khoảng trống đó — nó nằm trước Unbound, xử lý việc chặn quảng cáo và trình theo dõi trên toàn bộ mạng của bạn, và cung cấp cho bạn một bảng điều khiển sạch sẽ hiển thị chính xác mỗi thiết bị đang truy vấn gì theo thời gian thực.
Cài đặt nó bằng các lệnh sau:
curl -L https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz -o AdGuardHome.tar.gztar -xzf AdGuardHome.tar.gz
cd AdGuardHome
./AdGuardHome -s cài đặt
Khi hoàn tất, bạn sẽ thấy một danh sách các địa chỉ mà AdGuard Home có sẵn. Từ một thiết bị khác trong mạng của bạn, hãy mở trình duyệt và truy cập:
http://192.168.1.11:3000Khi AdGuard Home mở ra, bạn sẽ cần chạy qua trình hướng dẫn cài đặt, trình này sẽ hướng dẫn bạn hầu hết các cài đặt mà bạn cần.
- Cổng giao diện quản trị web: Tôi đã đổi sang cổng 80, để tôi có thể truy cập bảng điều khiển tại http://192.168.1.11 mà không phải nhập số cổng mỗi lần
- Cổng máy chủ DNS: Giữ nguyên là 53 — đây là cổng DNS chuẩn mà tất cả thiết bị đều mong đợi
- Tên đăng nhập và mật khẩu: Đặt một thứ gì đó an toàn, bạn sẽ sử dụng nó để đăng nhập vào bảng điều khiển
Tiếp tục qua các màn hình hướng dẫn còn lại, và bạn sẽ đến giao diện bảng điều khiển của AdGuard Home. Bây giờ, bạn cần chỉ định AdGuard Home đến Unbound để liên kết mọi thứ.
Trong bảng điều khiển AdGuard, đi tới Cài đặt > Cài đặt DNS. Dưới mục Máy chủ DNS đầu nguồn, xóa bất cứ thứ gì đã có ở đó và nhập 127.0.0.1:5335 sau đó đảm bảo cân bằng tải được chọn.
Đó là phiên bản Unbound của bạn. Cuộn xuống và nhấp vào Kiểm tra nguồn cấp dữ liệu — nó nên trả về xác nhận màu xanh lá. Nếu đúng, nhấn Áp dụng.
Thêm danh sách chặn vào AdGuard Home
Bước tiếp theo là thêm một số danh sách chặn vào ngăn xếp DNS mới của bạn. Theo mặc định, AdGuard chặn một số quảng cáo và trình theo dõi, nhưng cũng có tùy chọn thêm các danh sách chặn của bên thứ ba, điều này là lý do khiến việc sở hữu DNS riêng trở nên mạnh mẽ.
Đi tới Bộ lọc > Danh sách chặn DNS > Thêm danh sách chặn và xem qua các tùy chọn có sẵn. Tôi đang sử dụng bốn danh sách:
- Bộ Lọc DNS AdGuard: Danh sách quảng cáo và theo dõi chung với hơn 165.000 quy tắc
- Danh sách chặn Pro của HaGeZI: Một danh sách chặn quảng cáo, theo dõi và phần mềm độc hại toàn diện hơn với hơn 203.000 quy tắc
- OISD Nhỏ: Danh sách nhỏ hơn, chuyên biệt hơn với hơn 57.000 quy tắc
- Danh sách chặn URL độc hại (URLhaus): Một danh sách chặn dành riêng cho phần mềm độc hại và lừa đảo, được thiết kế cho bảo mật và quyền riêng tư, với hơn 14.000 quy tắc
Tất nhiên, bạn có thể tự do lựa chọn từ các danh sách theo cách bạn thấy phù hợp. Mỗi danh sách đều có phần giải thích về những gì nó chặn và cách nó hoạt động. Nhưng sự kết hợp của các danh sách này mang lại cho bạn hơn 440.000 quy tắc bao gồm quảng cáo, theo dõi và phần mềm độc hại — tương đương với những gì các dịch vụ bảo mật DNS chuyên dụng như Quad9 cung cấp, nhưng hoàn toàn nằm dưới sự kiểm soát của bạn.
Định hướng mạng của bạn đến AdGuard Home
Mọi thiết bị đều được bảo vệ tự động
Bạn đọc, chúng ta gần đến đích rồi; vạch kết thúc đã hiện ra trước mắt.
Với AdGuard Home và Unbound đang chạy, bước cuối cùng là thông báo cho mạng của bạn thực sự sử dụng chúng. Hiện tại, các thiết bị của bạn vẫn đang sử dụng bất kỳ DNS nào mà router của bạn cung cấp mặc định, nhưng đó chính xác là điều mà chúng ta đang thiết lập để thay đổi.
Đối với phần này, bạn cần truy cập vào router của mình. Truy cập vào bảng quản trị router và đăng nhập. Địa chỉ của bảng quản trị router của bạn thay đổi tùy theo nhà sản xuất và mạng, vì vậy nếu không chắc chắn, một tìm kiếm nhanh trên internet sẽ cho bạn biết địa chỉ IP chính xác.
Bạn đang tìm một trường được gắn nhãn giống như Máy chủ DNS tùy chỉnh hoặc Máy chủ DNS. Nhập 192.168.1.11 và lưu lại.
Bộ định tuyến của bạn bây giờ sẽ phân phát 192.168.1.11 làm máy chủ DNS cho mọi thiết bị trong mạng của bạn thông qua DHCP. Các thiết bị sẽ tự động nhận thông tin này khi gia hạn thuê bao — ngắt kết nối và kết nối lại WiFi sẽ buộc gia hạn ngay lập tức nếu bạn muốn thử ngay lập tức.
Mỗi bảng quản trị router trông hơi khác nhau, vì vậy vị trí chính xác của cài đặt này có thể khác nhau. Nếu bạn không thể tìm thấy ngay, việc tìm kiếm "DNS" trong bảng quản trị của router thường sẽ nhanh chóng hiển thị trang đúng.
Kiểm tra cấu hình DNS mới của bạn
Bây giờ, bạn nên đã hoàn toàn hoạt động với DNS tùy chỉnh.
Đi tới bảng điều khiển AdGuard và theo dõi nhật ký truy vấn khi các thiết bị trên mạng của bạn kết nối và bắt đầu gửi yêu cầu. Trong ngày đầu tiên với cài đặt đang chạy, AdGuard đã chặn khoảng 25% tất cả các truy vấn DNS trên mạng của tôi, chủ yếu là các cuộc gọi theo dõi và các điểm cuối telemetery từ các thiết bị mà tôi chưa từng nghĩ đến việc cấu hình.
Một khi nhiều thiết bị hơn kết nối với giải pháp DNS tại nhà của tôi, tôi đang ở mức 47,5% bị chặn.
Một điều đáng biết: thời gian phản hồi sẽ có vẻ cao ngay sau khi thêm danh sách chặn; tôi đã thấy khoảng 280ms vào ngày đầu tiên. Điều đó là bình thường. Bộ nhớ đệm đang trống, và AdGuard đang xử lý một lô quy tắc mới. Sau 24 giờ sử dụng bình thường trong gia đình, các miền được truy cập thường xuyên sẽ được lưu trong bộ nhớ đệm, và mức trung bình giảm đáng kể. Sau vài ngày sử dụng, con số này đã giảm xuống khoảng 60ms.
Điều đó vẫn hơi chậm so với các tùy chọn DNS khác như Cloudflare và Quad9, nhưng quyền riêng tư và khả năng kiểm soát bổ sung thì hoàn toàn xứng đáng.

























