Trả lời nhanh
Làm sao để chạy một resolver DNS riêng với Unbound trên VPS?
Để chạy một resolver DNS riêng với Unbound, cài gói unbound, liệt kê các địa chỉ nó được phép lắng nghe, chỉ cho phép mạng của bạn bằng access-control, và kiểm tra bằng dig. Gói Ember của Gloamport, 1 vCPU, 1 GB RAM, 20 GB NVMe, 1 TB traffic ở mức $3.74 mỗi tháng khi đăng ký 12 tháng, đủ cho truy vấn của một người.
Những thiết lập Unbound nào làm cho resolver trở nên riêng tư?
| Thiết lập | Giá trị trong hướng dẫn này | Điều tài liệu Unbound nói |
|---|---|---|
| interface | 127.0.0.1 và địa chỉ đường hầm của bạn | Các địa chỉ mà client có thể truy vấn; nếu không đặt, Unbound lắng nghe trên localhost |
| access-control | Mạng đường hầm của bạn được phép | Khối mạng cụ thể nhất thắng; client không khớp với gì sẽ bị từ chối |
| hide-identity | có | Truy vấn id.server và hostname.bind nhận REFUSED |
| hide-version | có | Truy vấn version.server và version.bind nhận REFUSED |
| qname-minimisation | có | Gửi lượng thông tin tối thiểu tới các máy chủ upstream |
harden-dnssec-stripped | có | Một zone có trust anchor nhưng không có dữ liệu DNSSEC sẽ trở thành bogus |
| prefetch | có | Làm mới các mục được truy cập trong 10% cuối thời gian sống (TTL) của chúng, với khoảng 10% lưu lượng thêm |
| private-address | Các dải riêng tư của bạn | Các câu trả lời như vậy bị loại bỏ với tên công khai, giúp chống tấn công DNS rebinding |
Giá được kiểm tra vào
Một resolver riêng thay đổi điều gì, và không thay đổi điều gì?
Một resolver riêng thay đổi ai trả lời truy vấn DNS của bạn và ai có thể thấy chúng từ mạng. Unbound tự phân giải tên, hỏi các root server rồi đến máy chủ của từng zone, thay vì chuyển tiếp tới một nhà cung cấp DNS công khai. Các thiết bị của bạn chỉ gửi truy vấn tới VPS, và máy chủ của các zone thấy địa chỉ VPS chứ không thấy địa chỉ của bạn.
Nó không che giấu việc duyệt web của bạn. Các trang bạn truy cập vẫn được tới bằng địa chỉ của chúng, và nhà cung cấp VPS mang truy vấn của bạn tới VPS. DNS thuần giữa thiết bị của bạn và VPS không được mã hóa, đó là lý do nơi an toàn nhất để lắng nghe là bên trong một đường hầm như WireGuard trên cùng VPS. Đừng bao giờ để cổng 53 mở cho toàn internet: một resolver mở là thứ người khác sẽ dùng, và các dòng access-control bên dưới sẽ từ chối họ.
Cách chạy Unbound như một resolver riêng
Các lệnh dành cho Debian 13 và Ubuntu 24.04. Ví dụ giả định một đường hầm WireGuard với VPS ở 10.8.0.1.
Cài Unbound và công cụ kiểm tra DNS
Chạy apt install unbound bind9-dnsutils. Gói thứ hai cung cấp dig để kiểm tra. Cả Debian 13 và Ubuntu 24.04 đều có sẵn cả hai.
Viết cấu hình
Tạo một tệp trong /etc/unbound/unbound.conf.d/ với phần server từ khối mã đầu tiên. Thay 10.8.0.1 và 10.8.0.0/24 bằng địa chỉ và mạng đường hầm của bạn, hoặc chỉ dùng 127.0.0.1 nếu bạn truy vấn từ chính VPS.
Kiểm tra tệp
Chạy unbound-checkconf. Hướng dẫn nói lệnh này kiểm tra unbound.conf trước khi dùng; nó báo tệp và dòng của mọi lỗi.
Khởi động lại và xem các bộ lắng nghe
Khởi động lại dịch vụ, rồi chạy ss với -lunt và grep tìm :53. Bạn chỉ nên thấy các địa chỉ đã liệt kê, không phải 0.0.0.0.
Thử truy vấn
Từ VPS, chạy dig @127.0.0.1 example.org. Từ thiết bị trong đường hầm, chạy dig @10.8.0.1 example.org. Câu trả lời bị từ chối từ bên ngoài mạng được phép là kết quả đúng.
Trỏ thiết bị về nó
Đặt máy chủ DNS trong cấu hình đường hầm trên thiết bị của bạn thành địa chỉ đường hầm của VPS. Giữ tường lửa đóng cổng 53 trên giao diện công khai.
server:
interface: 127.0.0.1
interface: 10.8.0.1
access-control: 127.0.0.0/8 allow
access-control: 10.8.0.0/24 allow
hide-identity: yes
hide-version: yes
qname-minimisation: yes
harden-glue: yes
harden-dnssec-stripped: yes
prefetch: yes
private-address: 10.0.0.0/8
private-address: 172.16.0.0/12
private-address: 192.168.0.0/16sudo apt install unbound bind9-dnsutils
sudo unbound-checkconf
sudo systemctl restart unbound
sudo ss -lunt | grep :53
dig @127.0.0.1 example.org
dig @10.8.0.1 example.orgVì sao phải giới hạn Unbound bằng access-control?
Vì một resolver trả lời bất kỳ ai sẽ bị người lạ tìm thấy và sử dụng. Hướng dẫn Unbound nói rằng với access-control, khối mạng cụ thể nhất khớp sẽ được dùng, và client không khớp với khối nào sẽ bị từ chối. Chỉ liệt kê các mạng bạn sở hữu; mọi thứ khác bị từ chối theo mặc định.
Hai mặc định cũng giúp ích. Nếu không có dòng interface, Unbound chỉ lắng nghe trên localhost, và do-not-query-localhost mặc định là yes, nên nó sẽ không gửi truy vấn upstream của chính nó tới địa chỉ localhost. Thêm các dòng private-address cho dải nội bộ của bạn để một tên công khai không thể trỏ thiết bị của bạn vào mạng nội bộ của chính bạn.
Gói nào của Gloamport đủ cho một resolver DNS?
Gói nhỏ nhất đủ cho một resolver cá nhân, và việc chia sẻ nó với VPN trên cùng máy chủ là cách thiết lập thông thường. Ember, 1 vCPU, 1 GB RAM, 20 GB NVMe, 1 TB traffic, có giá $3.74 mỗi tháng khi đăng ký 12 tháng và $7.48 khi thuê một tháng, và Gloamport liệt kê nó cho VPN WireGuard cho vài thiết bị. Một resolver và WireGuard chạy chung được trên đó. Chúng tôi chưa benchmark Unbound; nếu bạn phục vụ nhiều thiết bị, Dusk với $5.25 mỗi tháng khi đăng ký 12 tháng có thêm một GB bộ nhớ (2 GB).
Bộ nhớ đệm là thứ bạn cần chỉnh. Hướng dẫn lưu ý rằng cache-min-ttl, mặc định là tắt, có thể gây rắc rối khi đặt cao hơn khoảng một giờ, nên đừng đụng vào trừ khi bạn biết vì sao cần.
Một resolver tự chạy có tốt hơn nhà cung cấp DNS công khai không?
Tùy vào việc bạn muốn tin ai giữ nhật ký truy vấn, và resolver tự chạy loại bỏ một bên. Nhà cung cấp DNS công khai thấy mọi tên mà thiết bị của bạn tra cứu; với Unbound trên VPS riêng, nơi duy nhất thu thập các truy vấn đó là một máy chủ do bạn kiểm soát. Máy chủ có thẩm quyền của các zone bạn hỏi vẫn thấy truy vấn từ địa chỉ VPS.
Theo khảo sát của Gloamport về 10 tháng 11, 2026, 28 trên 49 nhà cung cấp được liệt kê không yêu cầu giấy tờ tùy thân khi đăng ký, nên VPS chạy nó có thể dùng mà không phải nộp giấy tờ. Để xem toàn bộ lựa chọn đường hầm, đọc VPN tự lưu trữ trên VPS có tốt hơn dịch vụ VPN không? và bảo mật máy chủ bằng Làm sao để tăng cường bảo mật SSH trên VPS mới?.
Tóm tắt
- Cài unbound và bind9-dnsutils; cấu hình trong /etc/unbound/unbound.conf.d/.
- Dùng interface và access-control để chỉ mạng của bạn được truy vấn.
- Client không khớp với khối access-control nào sẽ bị từ chối.
- hide-identity và hide-version khiến các truy vấn identity và version nhận REFUSED.
- Chạy unbound-checkconf trước mỗi lần khởi động lại.
- Đặt nó bên trong đường hầm WireGuard; DNS thuần không được mã hóa.
- Ember, $3.74 mỗi tháng khi đăng ký 12 tháng, chạy được nó.
Resolver riêng với Unbound: các câu hỏi thường gặp
Unbound có xác thực DNSSEC không?
Unbound là một resolver có xác thực, và hướng dẫn của nó mô tả các tùy chọn trust-anchor và harden-dnssec-stripped. Kiểm tra cài đặt bằng dig +dnssec và tìm cờ ad trong câu trả lời.
Tôi có thể chuyển tiếp truy vấn sang nhà cung cấp DNS khác không?
Có, Unbound hỗ trợ chuyển tiếp, nhưng khi đó nhà cung cấp đó sẽ thấy truy vấn của bạn. Hướng dẫn này phân giải đệ quy nên không có nhà cung cấp đơn lẻ nào thấy được.
Vì sao unbound-checkconf báo lỗi?
Nó báo tệp và dòng của lỗi đầu tiên. Nguyên nhân thường gặp là gõ sai từ khóa hoặc thiếu dấu hai chấm. Sửa rồi chạy lại lệnh trước khi khởi động lại dịch vụ.
Tôi có cần mở cổng 53 trên tường lửa không?
Chỉ trên giao diện đường hầm. Giữ nó đóng trên giao diện công khai, và giữ danh sách access-control giới hạn trong mạng của bạn.
prefetch làm gì?
Khi prefetch đặt là yes, một lần trúng bộ nhớ đệm trong 10% cuối thời gian sống của một mục sẽ kích hoạt làm mới nền. Hướng dẫn nói điều này thêm khoảng 10% lưu lượng và tải.
Nguồn (1)
- Hướng dẫn unbound.conf(5): các tùy chọn server — NLnet Labs (checked 2026-11-10)