DNS riêng tư Android hay ứng dụng DoH?
Private DNS của Android mã hoá DNS bằng DNS over TLS, không cần ứng dụng. Khi nào ứng dụng DoH tốt hơn, hai cách xung đột ra sao, và giới hạn của cả hai.
Nếu bạn từng tìm “DNS mã hoá trên Android”, có lẽ bạn đã gặp hai câu trả lời. Một bên nói: không cần ứng dụng, chỉ cần bật Private DNS. Bên kia nói: cài một ứng dụng làm DNS over HTTPS. Cả hai đều hợp lý. Chúng giải cùng một bài toán theo những cách khác nhau và hỏng ở những chỗ khác nhau. Bài này giải thích từng cách hoạt động ra sao, gặp khó ở đâu, và nên chọn thế nào. Chúng tôi làm ra GreenTunnel, ứng dụng có sẵn một trình khách DoH, nên bạn hãy nhớ điều đó khi đọc.
Private DNS thực chất là gì
Google thêm Private DNS vào Android 9. Nó thường nằm ở Cài đặt → Mạng và Internet → DNS riêng tư, dù đường dẫn chính xác khác nhau giữa các hãng điện thoại. Nó có ba lựa chọn:
- Tắt: việc tra cứu đi dạng văn bản thường tới máy chủ DNS mà mạng hiện tại cấp.
- Tự động: mặc định. Android thử DNS over TLS với chính máy chủ DNS của mạng và dùng nếu máy chủ đó hỗ trợ. Nếu không, việc tra cứu vẫn ở dạng văn bản thường. Chế độ này hay được gọi là chế độ cơ hội (opportunistic), và trên đa số mạng gia đình và mạng di động nó có nghĩa là không mã hoá gì cả.
- Tên máy chủ của nhà cung cấp DNS riêng tư: bạn nhập tên máy chủ của một nhà cung cấp, ví dụ
dns.googlecho Google Public DNS. Khi đó Android bắt buộc dùng máy chủ ấy. Nếu không kết nối được, nó không lặng lẽ quay về DNS thường. Thông báo của Google cho biết thay vào đó Android đánh dấu mạng là không có Internet.
DNS over TLS được chuẩn hoá trong RFC 7858 và dùng cổng riêng là 853. Cổng riêng ấy vừa là điểm mạnh vừa là điểm yếu: gọn gàng và nhẹ, nhưng cũng dễ để một mạng nhận ra và chặn.
Còn DNS over HTTPS trong Android thì sao?
Có một chi tiết nhiều bài hướng dẫn bỏ sót. Tháng 7/2022, Google thông báo rằng qua một bản cập nhật hệ thống Google Play, các thiết bị Android 11 trở lên dùng DNS over HTTP/3 thay cho DNS over TLS với những máy chủ DNS phổ biến có hỗ trợ. Lúc ra mắt, Google và Cloudflare là các nhà cung cấp được áp dụng. Bài viết của Google nhấn mạnh rằng dịch vụ DNS bạn dùng không đổi, chỉ cách truyền thay đổi. Bạn vẫn nhập tên máy chủ vào đúng ô Private DNS đó. Không có ô nào cho một địa chỉ DoH tuỳ ý, và với các nhà cung cấp khác Private DNS vẫn là DNS over TLS.
Ứng dụng DoH làm khác ở chỗ nào
Một ứng dụng DoH, hoặc ứng dụng VPN có trình khách DoH, đảm nhận DNS cho cả thiết bị thông qua vị trí VPN của Android. Mỗi lần tra cứu đi bên trong HTTPS tới một máy chủ DoH như https://cloudflare-dns.com/dns-query, theo định nghĩa trong RFC 8484.
- Nó dùng cổng 443. Với mạng, nó trông khá giống mọi kết nối HTTPS khác. Một mạng chặn cổng 853 để ngăn DNS over TLS thường để yên cho nó.
- Bạn chọn máy chủ và giao thức. Ứng dụng có thể cung cấp cả nhà cung cấp DoH lẫn DoT và chuyển qua lại giữa chúng.
- Nó có thể bỏ qua hoàn toàn bộ phân giải của mạng. Một trình khách tốt kết nối tới các địa chỉ IP khởi động (bootstrap) cố định của máy chủ DoH, nên ngay cả việc tìm máy chủ DNS cũng không phụ thuộc DNS của mạng.
- Nó chiếm vị trí VPN. Android chỉ cho chạy một VPN mỗi lúc. Ứng dụng DoH không chạy song song được với một ứng dụng VPN khác.
So sánh song song
| Private DNS (tên máy chủ) | Ứng dụng DoH | |
|---|---|---|
| Cần cài thêm ứng dụng | Không | Có |
| Giao thức | DNS over TLS, hoặc DNS over HTTP/3 cho một số nhà cung cấp phổ biến trên Android 11+ | DNS over HTTPS (một số ứng dụng có cả DoT) |
| Cổng | 853 cho DoT | 443 |
| Nếu máy chủ bị chặn | Mạng báo không có Internet cho tới khi bạn đổi cài đặt | Tuỳ ứng dụng. Một số chuyển sang nhà cung cấp khác |
| Dùng vị trí VPN | Không | Có |
| Chạy cùng ứng dụng VPN khác | Có, kèm các xung đột nói ở dưới | Không, chỉ một VPN mỗi lúc |
| Giúp vượt lọc tên miền trong HTTPS | Không | Chỉ khi ứng dụng làm cả việc đó |
Private DNS gặp khó ở đâu
- Mạng chặn cổng 853. Một số nơi làm việc, trường học và Wi-Fi công cộng chặn cổng này. Ở chế độ tên máy chủ, mạng khi đó trông như bị hỏng. Xem Trang vào được bằng 4G mà không vào được bằng Wi-Fi? để biết nó biểu hiện ra sao.
- Mỗi mạng một kiểu. Cài đặt áp dụng chung, nhưng các mạng thì không giống nhau. Một tên máy chủ chạy tốt trên dữ liệu di động có thể hỏng trên một Wi-Fi cụ thể.
- Trang đăng nhập trên Wi-Fi công cộng. Mạng của khách sạn và quán cà phê có trang đăng nhập có thể trục trặc với tên máy chủ cố định cho tới khi bạn đăng nhập xong. Chuyển tạm sang Tự động thường giải quyết được.
- Tự động thường không mã hoá. Đa số máy chủ DNS của nhà mạng không hỗ trợ DNS over TLS, nên Tự động lặng lẽ ở lại với DNS thường.
Ứng dụng DoH gặp khó ở đâu
- Nó phải chạy liên tục. Nếu Android dừng ứng dụng để tiết kiệm pin, việc bảo vệ DNS cũng dừng. Xem giữ VPN luôn chạy trên Android.
- Nó chặn các VPN khác. Bạn không dùng chung được với VPN công ty trên cùng điện thoại.
- Máy chủ của nó có thể bị chặn theo địa chỉ IP. Cổng 443 không giúp được gì nếu mạng chặn địa chỉ của máy chủ DoH. Trình khách nào chuyển được sang nhà cung cấp khác sẽ xử lý tốt hơn.
Xung đột: Private DNS cộng với ứng dụng VPN
Từ Android 10, tên máy chủ Private DNS vẫn được áp dụng khi một ứng dụng VPN đang chạy. Chính hướng dẫn Google Public DNS ghi rằng trên Android 9 VPN đè lên Private DNS, và điều này đã được sửa trong Android 10. Trên thực tế, nếu bạn đặt tên máy chủ rồi bật một ứng dụng VPN có DNS riêng, Android sẽ gửi việc tra cứu tới nhà cung cấp Private DNS của bạn. DNS mã hoá và danh sách chặn của VPN không bao giờ thấy những tên miền đó. Nếu nhà cung cấp đó bị chặn trên mạng hiện tại, trang nào cũng không vào được.
Với GreenTunnel, hãy đặt Private DNS là Tắt hoặc Tự động trong lúc dùng. Đây là một trong những bước kiểm tra đầu tiên trong Trang vẫn bị chặn?
GreenTunnel xử lý DNS thế nào
GreenTunnel là một VPN cục bộ có sẵn trình khách DNS mã hoá. Trong Cài đặt → DNS, bạn chọn một trong ba nhà cung cấp, hoặc Tự động:
- Cloudflare, DoH,
https://cloudflare-dns.com/dns-query - Google, DoH,
https://dns.google/dns-query - Quad9, DoT,
dns.quad9.net:853
Tự động thử Cloudflare, rồi Google, rồi Quad9, và tiếp tục dùng nhà cung cấp nào đã trả lời. Mỗi nhà cung cấp được kết nối qua các IP khởi động có sẵn, nên DNS của nhà mạng không bao giờ được hỏi tới. DoQ không được hỗ trợ. Hướng dẫn đầy đủ ở Giải thích DoH và DoT.
Khác biệt so với một ứng dụng chỉ làm DNS nằm ở những gì diễn ra sau khi tra cứu. GreenTunnel còn định hình lại gói tin đầu tiên của kết nối HTTPS để vượt qua kiểu lọc tên miền đơn giản, hiện kết nối theo từng ứng dụng trong Requester, và có thể kiểm tra một trang bằng Kiểm tra URL. Chúng tôi không bao giờ thu thập các tên miền bạn tra cứu.
Giới hạn thật của DNS mã hoá
DNS mã hoá, dù bạn có nó bằng cách nào, chỉ gỡ được một kiểu chặn: mạng làm giả hoặc bỏ câu trả lời DNS. Nó không ngăn mạng đọc tên trang trong bước bắt tay HTTPS, việc đó cần định hình lại gói tin hoặc ECH. Nó không vượt được chặn IP. Nó không giấu địa chỉ IP của bạn, và nhà mạng vẫn thấy bạn kết nối tới những địa chỉ nào. Nhà cung cấp DNS bạn chọn sẽ thấy việc tra cứu thay cho nhà mạng, nên hãy chọn bên có chính sách bạn tin tưởng. GreenTunnel cũng không phải công cụ ẩn danh.
Bạn nên dùng cách nào?
- Chỉ muốn mã hoá việc tra cứu trên những mạng bình thường? Private DNS với tên máy chủ của nhà cung cấp đơn giản và không cần ứng dụng.
- Mạng của bạn chặn cổng 853, làm giả DNS, hoặc lọc tên trang? Một ứng dụng DoH, tốt nhất là loại xử lý được cả lọc tên miền, sẽ hợp hơn. Hãy đặt Private DNS về Tắt hoặc Tự động.
- Bạn đang dùng VPN công ty? Hãy giữ Private DNS, vì chỉ một ứng dụng VPN chạy được mỗi lúc.
GreenTunnel miễn phí trên Android và iPhone, có Premium tuỳ chọn. Xem cách nó hoạt động ở trang chủ.
Câu hỏi thường gặp
Private DNS của Android dùng DoH hay DoT?
DNS over TLS trên cổng 853. Từ một bản cập nhật hệ thống Google Play năm 2022, Android 11 trở lên dùng DNS over HTTP/3 thay thế cho một số nhà cung cấp phổ biến có hỗ trợ, bắt đầu với Google và Cloudflare. Bạn không nhập được địa chỉ DoH tuỳ chỉnh.
Có nên bật Private DNS khi dùng GreenTunnel không?
Hãy đặt nó là Tắt hoặc Tự động. Tên máy chủ của nhà cung cấp khiến Android gửi thẳng việc tra cứu tới nhà cung cấp đó, nên DNS mã hoá của GreenTunnel và danh sách chặn của bạn bị bỏ qua.
DoH có riêng tư hơn DoT không?
Cả hai mã hoá việc tra cứu tốt như nhau. Khác biệt là mức độ dễ bị nhận ra và chặn. DoT dùng một cổng riêng, còn DoH hoà lẫn với HTTPS trên cổng 443.
DNS mã hoá có mở chặn được mọi trang không?
Không. Nó chỉ gỡ kiểu chặn bằng DNS. Trang bị chặn bằng lọc tên miền cần thêm biện pháp khác, còn trang bị chặn theo địa chỉ IP cần một đường đi hoàn toàn khác.
Nguồn
- Android Developers Blog, DNS over TLS support in Android P Developer Preview (tháng 4/2018).
- Google Security Blog, DNS-over-HTTP/3 in Android (tháng 7/2022).
- Google Public DNS, Get started (cách cài Private DNS trên Android và ghi chú về VPN trên Android 9), đọc vào tháng 11/2026.
- IETF, RFC 7858: DNS over TLS.
- IETF, RFC 8484: DNS Queries over HTTPS.