- 1 1. Giới thiệu
- 2 2. Kiến thức cơ bản về DNS (Thuật ngữ chính)
- 2.1 2.1 DNS là gì? (Giải thích nhanh gọn)
- 2.2 2.2 Khi nào cài đặt DNS quan trọng
- 2.3 2.3 Máy chủ DNS là gì? (Bạn đang hỏi ở đâu?)
- 2.4 2.4 Tại sao cài đặt DNS lại hơi khó trên Ubuntu
- 2.5 2.5 Các tệp và thành phần chính bạn sẽ gặp trong quản lý DNS trên Ubuntu
- 2.6 2.6 Điều quan trọng nhất khi thay đổi DNS: Tính bền vững
- 3 3. Cách Kiểm Tra Cài Đặt DNS Hiện Tại trên Ubuntu
- 3.1 3.1 Kiểm Tra DNS bằng resolvectl (Được Khuyến Nghị)
- 3.2 3.2 Kiểm Tra /etc/resolv.conf (Nhưng Cẩn Thận)
- 3.3 3.3 Xác Nhận /etc/resolv.conf Có Phải Là Liên Kết Tượng (Symlink) Không
- 3.4 3.4 Kiểm Tra DNS Qua NetworkManager (Người Dùng Desktop)
- 3.5 3.5 Kiểm Tra Nhanh Chức Năng DNS (Phân Giải Tên Có Hoạt Động Không?)
- 4 4. Cách Thay Đổi Cài Đặt DNS trên Ubuntu Desktop (Phương Pháp GUI)
- 5 5. Cách thay đổi cài đặt DNS trên Ubuntu Server (Phương pháp Netplan)
- 6 6. Các nhà cung cấp DNS công cộng được đề xuất (Bạn nên chọn nào?)
- 7 7. Khắc phục sự cố: Thay đổi DNS không áp dụng hoặc phân giải tên vẫn thất bại
- 7.1 7.1 Kiểm tra đầu tiên: Bạn có thể ping một địa chỉ IP không?
- 7.2 7.2 Kiểm tra DNS thực tế đang được sử dụng
- 7.3 7.3 Xóa bộ nhớ đệm DNS (systemd-resolved)
- 7.4 7.4 Khởi động lại dịch vụ phân giải tên
- 7.5 7.5 DNS bị ghi đè bởi DHCP (Cài đặt Router)
- 7.6 7.6 VPN hoặc Mạng Doanh Nghiệp Ghi Đè DNS
- 7.7 7.7 Kiểm Tra DNS Trực Tiếp bằng dig hoặc nslookup
- 7.8 7.8 Tường Lửa hoặc Hạn Chế Mạng Ngăn Chặn DNS
- 8 8. Nâng Cao: Hiểu /etc/resolv.conf và systemd-resolved
- 9 9. Tùy Chọn: Đặt DNS Dự Phòng với systemd-resolved (Nâng Cao)
- 10 10. Câu hỏi thường gặp (FAQ)
- 10.1 10.1 Có an toàn khi sử dụng Google DNS hoặc Cloudflare DNS trên Ubuntu không?
- 10.2 10.2 Tại sao cài đặt DNS của tôi lại trở lại sau khi khởi động lại?
- 10.3 10.3 Tại sao /etc/resolv.conf hiển thị 127.0.0.53?
- 10.4 10.4 DNS của tôi hoạt động trong trình duyệt nhưng apt update thất bại. Tại sao?
- 10.5 10.5 Tôi có nên tắt IPv6 nếu DNS cảm thấy không ổn định không?
- 11 11. Tóm tắt
1. Giới thiệu
Khi bạn sử dụng internet trên Ubuntu, bạn có thể đột ngột gặp các vấn đề như “các trang web không tải,” “apt update thất bại,” hoặc “không thể phân giải tên máy chủ nội bộ.”
Một nguyên nhân khá phổ biến là cấu hình DNS (giải quyết tên).
Nói một cách đơn giản, DNS là hệ thống chuyển đổi tên miền (ví dụ, google.com) thành địa chỉ IP.
Nếu DNS không hoạt động đúng, bạn vẫn có thể kết nối mạng, nhưng sẽ không truy cập được các trang web hay máy chủ.
Trong bài viết này, theo từ khóa chính “ubuntu dns settings,” chúng tôi sẽ sắp xếp và giải thích rõ ràng cách kiểm tra và thay đổi cài đặt DNS trên Ubuntu một cách thân thiện với người mới bắt đầu.
1.1 Những gì bạn sẽ học trong bài viết này
Khi đọc xong bài viết, bạn sẽ có thể thực hiện các việc sau:
- Kiểm tra cài đặt DNS hiện tại trên Ubuntu
- Thay đổi cài đặt DNS trên Ubuntu Desktop (GUI)
- Cấu hình DNS một cách cố định trên Ubuntu Server (CLI)
- Hiểu mối quan hệ giữa
systemd-resolvedvà/etc/resolv.conf - Khắc phục các trường hợp DNS không áp dụng hoặc việc phân giải tên thất bại
1.2 Đối tượng phù hợp với bài viết này
Nội dung này phù hợp với những người sau đây:
- Bạn mới dùng Ubuntu và thuật ngữ “DNS” vẫn còn hơi mơ hồ
- Bạn chạy Ubuntu Server trên VPS hoặc máy chủ gia đình
- Mạng của bạn đã kết nối, nhưng web và các bản cập nhật không hoạt động
- Bạn muốn “đóng” DNS (sử dụng Google DNS / Cloudflare DNS, v.v.)
1.3 Cài đặt DNS trên Ubuntu có thể gây nhầm lẫn: “Bạn nên thay đổi ở đâu?”
Cài đặt DNS trên Ubuntu thường cảm thấy khó khăn vì không có một nơi duy nhất để “nhập DNS.”
Tùy vào môi trường, Ubuntu có thể quản lý DNS theo các cách khác nhau:
- Ubuntu Desktop : Thường được cấu hình qua giao diện GUI (Cài đặt Mạng)
- Ubuntu Server : Thường được quản lý qua Netplan (các tệp cấu hình)
- Thành phần chung :
systemd-resolvedcó thể quản lý việc phân giải tên phía sau hậu trường
Ngoài ra, /etc/resolv.conf—được nhắc tới thường xuyên trong các hướng dẫn mạng—có thể hoạt động khác nhau tùy vào cách cài đặt Ubuntu của bạn, và trong một số trường hợp việc chỉnh sửa trực tiếp sẽ không có hiệu lực.
Nếu bạn không biết điều này, bạn dễ dàng rơi vào các tình huống như:
- Bạn đã thay đổi cài đặt, nhưng không có gì cải thiện
- Nó hoạt động—rồi lại trở lại sau khi khởi động lại
- Bạn không biết nên tin vào hướng dẫn của bài viết nào
Trong bài viết này, để tránh sự nhầm lẫn, chúng tôi sẽ sắp xếp các cài đặt DNS trên Ubuntu một cách có hệ thống và giải thích chúng một cách rõ ràng.
1.4 Các phiên bản Ubuntu được hỗ trợ
Bài viết này chủ yếu giả định các phiên bản Ubuntu thường dùng sau đây:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
Tuy nhiên, các khái niệm cơ bản về DNS và các phương pháp kiểm tra chủ yếu giống nhau trên các phiên bản khác.
Chỉ có một số chi tiết nhỏ (như tên tệp Netplan) có thể khác nhau.
2. Kiến thức cơ bản về DNS (Thuật ngữ chính)
Để cấu hình DNS đúng trên Ubuntu, việc hiểu—ở mức độ cao—DNS làm gì và nơi nó được quản lý là rất hữu ích.
Ở đây, chúng tôi sẽ giữ cho nội dung thân thiện với người mới và chỉ tập trung vào những điều cần thiết.
2.1 DNS là gì? (Giải thích nhanh gọn)
DNS (Domain Name System) là cơ chế chuyển đổi tên miền thành địa chỉ IP.
Ví dụ, bạn có thể truy cập địa chỉ sau trong trình duyệt của mình:
https://www.google.com
Nhưng máy tính thường giao tiếp bằng địa chỉ IP.
- Một “địa chỉ” dạng số như
142.250.xxx.xxx
Vì vậy DNS hoạt động phía sau để thực hiện chuyển đổi như sau:
www.google.com→142.250.xxx.xxx
Quá trình chuyển đổi này được gọi là phân giải tên, và nó cho phép hệ thống của bạn kết nối tới máy chủ đúng.
Nói cách khác, DNS giống như “sổ điện thoại” hoặc “sổ địa chỉ” của internet.
2.2 Khi nào cài đặt DNS quan trọng
Cấu hình DNS trở nên đặc biệt quan trọng trên Ubuntu trong các trường hợp như sau:
- Các trang web không tải được (nhưng Wi‑Fi/LAN đã kết nối)
apt updatehoặc cập nhậtsnapthất bại- Phân giải tên không hoạt động trong môi trường Docker hoặc Kubernetes
- Tên máy nội bộ (ví dụ:
intra-server.local) không thể phân giải - Chỉ khi kết nối VPN, một số miền không thể phân giải
- Bạn muốn sử dụng DNS chặn quảng cáo hoặc DNS nhanh hơn
Vì DNS gần như là “cốt lõi” của việc mạng hoạt động, nó thường xuất hiện trong quá trình khắc phục sự cố.
2.3 Máy chủ DNS là gì? (Bạn đang hỏi ở đâu?)
Việc chuyển đổi DNS không phải là thứ máy tính của bạn tự tính toán.
Thông thường, nó truy vấn một máy chủ DNS và nhận kết quả.
Khi Ubuntu thực hiện phân giải tên, nó thường tuân theo luồng này:
- Ubuntu truy vấn một máy chủ DNS
- Máy chủ DNS trả lời: “Tên miền này ánh xạ tới địa chỉ IP này”
- Ubuntu kết nối tới địa chỉ IP đó
Các máy chủ DNS thường đến từ các nguồn như:
- Bộ định tuyến của bạn (bộ định tuyến Wi‑Fi gia đình cung cấp DNS)
- Máy chủ DNS công ty/nội bộ
- DNS công cộng (Google DNS / Cloudflare DNS, v.v.)
Dưới đây là các tùy chọn DNS công cộng nổi tiếng:
- Google Public DNS :
8.8.8.8/8.8.4.4 - Cloudflare DNS :
1.1.1.1/1.0.0.1
Không có một “lựa chọn đúng” duy nhất — điều quan trọng là chọn lựa phù hợp với môi trường và mục tiêu của bạn.
2.4 Tại sao cài đặt DNS lại hơi khó trên Ubuntu
Trên Windows và một số hệ điều hành khác, nơi thay đổi DNS khá đơn giản.
Tuy nhiên, trên Ubuntu, cấu hình có thể khác nhau, ví dụ:
- Được quản lý qua giao diện GUI (NetworkManager)
- Được quản lý qua Netplan
systemd-resolvedtập trung xử lý DNS/etc/resolv.confcó thể là một liên kết thay vì file “thực”
Do đó, khi bạn đọc các hướng dẫn trực tuyến, bạn có thể thấy những lời khuyên mâu thuẫn như:
- “Chỉ cần chỉnh sửa
/etc/resolv.conf” - “Không—bạn phải cấu hình Netplan”
- “Bạn nên thay đổi cài đặt
systemd-resolved”
Rất dễ gây nhầm lẫn.
Nhưng đừng lo.
Không phải mọi thứ “đều sai”—chỉ là quy trình đúng phụ thuộc vào cấu hình Ubuntu của bạn.
Bài viết này cũng sẽ giải thích cách xác định phương pháp nào áp dụng cho cấu hình của bạn.
2.5 Các tệp và thành phần chính bạn sẽ gặp trong quản lý DNS trên Ubuntu
Hãy nhanh chóng định nghĩa các thuật ngữ thường xuất hiện trong các hướng dẫn cấu hình DNS.
2.5.1 /etc/resolv.conf là gì?
/etc/resolv.conf là tệp cấu hình DNS truyền thống được sử dụng trong Linux từ lâu.
Nội dung của nó thường trông như sau:
nameserver 8.8.8.8
nameserver 1.1.1.1
Tuy nhiên, trên Ubuntu, tệp này không phải lúc nào cũng được sử dụng trực tiếp.
Trên Ubuntu hiện đại, /etc/resolv.conf thường là một liên kết tượng trưng trỏ tới một tệp khác, chẳng hạn như:
- Một tệp được systemd-resolved tự động tạo
- Một tệp do NetworkManager tạo
Đó là lý do tại sao việc chỉnh sửa trực tiếp có thể bị ghi đè.
2.5.2 systemd-resolved là gì?
systemd-resolved là một dịch vụ quản lý việc phân giải tên DNS trên Ubuntu.
Các đặc điểm chính bao gồm:
- Giúp việc tập trung cấu hình DNS dễ dàng hơn
- Cung cấp bộ nhớ đệm DNS
- Có thể xử lý nhiều giao diện (Wi‑Fi, VPN, v.v.)
Tùy thuộc vào môi trường của bạn, đây có thể là “trung tâm” thực tế của cấu hình DNS.
2.5.3 Netplan là gì?
Netplan là hệ thống cấu hình mạng thường được sử dụng trên Ubuntu Server.
Bạn định nghĩa các cài đặt mạng bằng các tệp YAML.
DNS cũng có thể được bao gồm trong cấu hình Netplan, cùng với:
- Địa chỉ IP
- Cổng (gateway)
- Máy chủ DNS
Vì bạn có thể quản lý mọi thứ cùng nhau, đây là cách tiếp cận tiêu chuẩn cho máy chủ.
2.6 Điều quan trọng nhất khi thay đổi DNS: Tính bền vững
Khi thiết lập DNS trên Ubuntu, điểm quan trọng nhất—đặc biệt trên máy chủ—là:
- Cài đặt có tồn tại sau khi khởi động lại không? (Tính bền vững)
Bạn có thể thay đổi DNS tạm thời, nhưng nó có thể trở lại khi:
- Bạn khởi động lại
- Bạn kết nối lại mạng
- DHCP làm mới
- VPN ngắt kết nối
Trong bài viết này, chúng tôi sẽ không tập trung vào “cách khắc phục nhanh”, mà vào cách duy trì cài đặt DNS một cách chính xác dựa trên mục tiêu của bạn.
3. Cách Kiểm Tra Cài Đặt DNS Hiện Tại trên Ubuntu
Trước khi thay đổi cài đặt DNS, bạn nên xác nhận trước Ubuntu hiện đang sử dụng gì.
Nếu bỏ qua bước này, bạn có thể thay đổi sai nơi và không có gì cải thiện.
Trong phần này, chúng ta sẽ đi qua các cách đáng tin cậy để kiểm tra cài đặt DNS trên Ubuntu, bao gồm cả môi trường Desktop và Server.
3.1 Kiểm Tra DNS bằng resolvectl (Được Khuyến Nghị)
Nếu Ubuntu của bạn sử dụng systemd-resolved, cách chính xác nhất để kiểm tra DNS là resolvectl.
Chạy lệnh này:
resolvectl status
Bạn sẽ thấy thông tin như:
- Các máy chủ DNS hiện đang được sử dụng
- Giao diện nào (Wi‑Fi / Ethernet / VPN) đang cung cấp DNS
- Các miền tìm kiếm (nếu được cấu hình)
Nếu kết quả hiển thị một máy chủ DNS mà bạn không mong đợi (chẳng hạn địa chỉ IP của router), điều đó có thể giải thích việc phân giải tên chậm hoặc không ổn định.
3.2 Kiểm Tra /etc/resolv.conf (Nhưng Cẩn Thận)
Nhiều hướng dẫn đề cập đến việc kiểm tra /etc/resolv.conf vì nó truyền thống chứa các cài đặt DNS.
Bạn có thể kiểm tra nó bằng:
cat /etc/resolv.conf
Kết quả điển hình có thể trông như sau:
nameserver 127.0.0.53
options edns0 trust-ad
search example.local
Nếu bạn thấy 127.0.0.53, thường có nghĩa là Ubuntu đang sử dụng systemd-resolved và /etc/resolv.conf đang trỏ tới một trình giải quyết stub cục bộ.
Trong trường hợp đó, các máy chủ DNS “thực” nên được xác nhận bằng cách sử dụng resolvectl status.
3.3 Xác Nhận /etc/resolv.conf Có Phải Là Liên Kết Tượng (Symlink) Không
Trên Ubuntu, /etc/resolv.conf thường là một liên kết tượng (symlink).
Nếu vậy, việc chỉnh sửa trực tiếp có thể không được lưu lại.
Kiểm tra nó bằng:
ls -l /etc/resolv.conf
Nếu bạn thấy một thứ gì đó như thế này, đó là một symlink:
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Điều này là bình thường trên Ubuntu hiện đại, và nó có nghĩa là DNS được quản lý qua các dịch vụ hệ thống thay vì chỉnh sửa trực tiếp file này.
3.4 Kiểm Tra DNS Qua NetworkManager (Người Dùng Desktop)
Nếu bạn đang sử dụng Ubuntu Desktop, DNS thường được quản lý bởi NetworkManager.
Bạn có thể kiểm tra cài đặt kết nối đang hoạt động bằng lệnh này:
nmcli dev show
Tìm các dòng như:
IP4.DNS[1]IP4.DNS[2]
Điều này cho thấy các máy chủ DNS mà NetworkManager hiện đang sử dụng cho kết nối của bạn.
3.5 Kiểm Tra Nhanh Chức Năng DNS (Phân Giải Tên Có Hoạt Động Không?)
Ngay cả khi các máy chủ DNS của bạn đã được cấu hình, việc phân giải tên vẫn có thể thất bại do vấn đề mạng hoặc tường lửa.
Vì vậy, việc chạy một bài kiểm tra đơn giản là hữu ích.
Thử lệnh này:
ping -c 1 google.com
Nếu nó phân giải và ping thành công, DNS có khả năng đang hoạt động.
Nếu bạn nhận được lỗi như:
ping: google.com: Temporary failure in name resolution
Điều đó mạnh mẽ gợi ý DNS đang gặp sự cố.
Để xác nhận mạng bản thân hoạt động, bạn cũng có thể ping trực tiếp một địa chỉ IP công cộng:
ping -c 1 1.1.1.1
Nếu ping IP thành công nhưng tên miền thất bại, vấn đề gần như chắc chắn liên quan đến DNS.
4. Cách Thay Đổi Cài Đặt DNS trên Ubuntu Desktop (Phương Pháp GUI)
Nếu bạn đang sử dụng Ubuntu Desktop, cách dễ nhất và an toàn nhất để thay đổi cài đặt DNS là thông qua giao diện GUI của cài đặt mạng.
Phương pháp này thân thiện với người mới và các cài đặt sẽ được giữ lại sau khi khởi động lại.
4.1 Thay Đổi DNS trên Ubuntu Desktop (Wi‑Fi)
Thực hiện các bước sau để thay đổi DNS cho kết nối Wi‑Fi:
- Mở Settings
- Vào Network (hoặc Wi‑Fi )
- Chọn mạng Wi‑Fi đang kết nối của bạn
- Nhấn vào biểu tượng bánh răng (cài đặt kết nối)
- Mở tab IPv4
- Tìm DNS và chuyển từ Automatic sang Manual
- Nhập các máy chủ DNS bạn muốn
- Lưu cài đặt
Ví dụ các máy chủ DNS bạn có thể nhập:
- Cloudflare:
1.1.1.1, 1.0.0.1 - Google:
8.8.8.8, 8.8.4.4
Sau khi lưu, ngắt kết nối và kết nối lại Wi‑Fi, hoặc tắt và bật Wi‑Fi, để đảm bảo thay đổi được áp dụng.
4.2 Thay Đổi DNS trên Ubuntu Desktop (Ethernet Có Dây)
Đối với kết nối có dây, các bước gần như giống nhau:
- Mở Settings
- Đi tới Network
- Dưới Wired, nhấp vào gear icon
- Mở tab IPv4
- Chuyển DNS từ Automatic sang Manual
- Nhập các máy chủ DNS
- Lưu
Đây là một cách tiếp cận ổn định cho máy tính để bàn, đặc biệt khi bạn muốn hành vi DNS nhất quán cho công việc phát triển hoặc truy cập từ xa.
4.3 Cài đặt DNS IPv6 (Tùy chọn)
Nếu môi trường của bạn sử dụng IPv6, bạn cũng có thể muốn cấu hình DNS trong tab IPv6.
Ví dụ các máy chủ DNS IPv6:
- Cloudflare IPv6:
2606:4700:4700::1111/2606:4700:4700::1001 - Google IPv6:
2001:4860:4860::8888/2001:4860:4860::8844
Nếu bạn không sử dụng IPv6 hoặc không chắc chắn, bạn có thể để DNS IPv6 ở chế độ tự động.
4.4 Xác minh thay đổi đã hoạt động
Sau khi thay đổi DNS qua giao diện đồ họa, hãy xác minh bằng cách sử dụng:
resolvectl status
Hoặc nếu bạn muốn xem đầu ra của NetworkManager:
nmcli dev show | grep DNS
Sau đó kiểm tra lại việc phân giải tên:
ping -c 1 google.com
Nếu nó hoạt động, các cài đặt DNS của bạn đã được áp dụng thành công.
4.5 Lỗi thường gặp: “Vẫn sử dụng DNS của Router”
Đôi khi, ngay cả khi đã thiết lập DNS thủ công, bạn vẫn có thể thấy địa chỉ IP của router được sử dụng làm máy chủ DNS.
Điều này có thể xảy ra nếu:
- Kết nối không được kết nối lại đúng cách
- Một hồ sơ mạng khác đang hoạt động
- VPN đang ghi đè cài đặt DNS
Trong những trường hợp đó, hãy thử ngắt kết nối và kết nối lại, hoặc tạm thời tắt VPN, sau đó kiểm tra lại bằng lệnh resolvectl status.
5. Cách thay đổi cài đặt DNS trên Ubuntu Server (Phương pháp Netplan)
Trên Ubuntu Server, cấu hình DNS thường được quản lý thông qua Netplan.
Phương pháp này khác với Ubuntu Desktop, vì bạn thường chỉnh sửa một tệp YAML và áp dụng cấu hình.
Trong phần này, bạn sẽ học cách cập nhật an toàn các cài đặt DNS bằng Netplan, bao gồm cách tránh các lỗi thường gặp trong YAML.
5.1 Xác nhận tên giao diện mạng của bạn
Đầu tiên, xác nhận tên của giao diện mạng của bạn.
Trên máy chủ, tên giao diện thường có dạng ens3, ens160, enp0s3, v.v.
Sử dụng lệnh này:
ip link
Tìm một giao diện có trạng thái “UP” và được sử dụng cho kết nối hiện tại của bạn.

5.2 Tìm tệp cấu hình Netplan của bạn
Các tệp cấu hình Netplan thường nằm trong thư mục /etc/netplan/.
Liệt kê chúng bằng:
ls /etc/netplan/
Bạn có thể thấy các tệp như:
00-installer-config.yaml
01-netcfg.yaml
Thông thường có một tệp YAML chính. Đó là tệp bạn sẽ chỉnh sửa.
5.3 Chỉnh sửa YAML Netplan để đặt máy chủ DNS
Mở tệp bằng một trình soạn thảo như nano:
sudo nano /etc/netplan/00-installer-config.yaml
Dưới đây là một ví dụ điển hình cho máy chủ sử dụng DHCP, trong đó chúng ta thiết lập DNS thủ công:
network:
version: 2
ethernets:
ens3:
dhcp4: true
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
Các điểm quan trọng:
nameserversphải được căn chỉnh đúng (khoảng thụt lề YAML rất quan trọng).addresseslà một danh sách, vì vậy sử dụng-cho mỗi máy chủ DNS.
Nếu máy chủ của bạn sử dụng IP tĩnh, cấu hình DNS sẽ được đặt cùng với cấu hình địa chỉ tĩnh. Ví dụ:
network:
version: 2
ethernets:
ens3:
dhcp4: false
addresses:
- 192.168.1.50/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Cấu hình này thường dùng cho các máy chủ cần mạng ổn định, dự đoán được.
5.4 Áp dụng thay đổi Netplan một cách an toàn
Sau khi chỉnh sửa YAML, áp dụng cấu hình.
Cách tiếp cận an toàn nhất được khuyến nghị:
sudo netplan try
netplan try sẽ áp dụng tạm thời các thay đổi và yêu cầu xác nhận.
Nếu bạn mất kết nối mạng (ví dụ, SSH bị ngắt), các thay đổi sẽ tự động quay lại sau một khoảng thời gian chờ.
Nếu mọi thứ ổn, bạn có thể áp dụng vĩnh viễn:
sudo netplan apply
5.5 Xác minh cài đặt DNS trên máy chủ
Kiểm tra DNS hiện tại bằng:
resolvectl status
Sau đó xác minh việc phân giải tên hoạt động:
ping -c 1 google.com
Nếu nó phân giải thành công, cấu hình DNS đang hoạt động.
5.6 Các lỗi Netplan thường gặp và cách tránh chúng
Netplan YAML rất nghiêm ngặt. Nhiều vấn đề xảy ra do lỗi thụt lề hoặc cú pháp.
Lỗi thụt lề
YAML sử dụng dấu cách, không phải tab. Một mức thụt lề sai duy nhất có thể làm mọi thứ bị hỏng.
Tên giao diện sai
Nếu bạn cấu hình ens3 nhưng giao diện thực tế của bạn là ens160, các thay đổi DNS sẽ không được áp dụng.
Quên áp dụng cấu hình
Nếu bạn chỉnh sửa tệp nhưng không chạy netplan apply, sẽ không có gì thay đổi.
6. Các nhà cung cấp DNS công cộng được đề xuất (Bạn nên chọn nào?)
Việc chọn nhà cung cấp DNS ảnh hưởng đến tốc độ, độ ổn định, quyền riêng tư và độ tin cậy.
Dưới đây là các dịch vụ DNS công cộng phổ biến mà nhiều người dùng trên Ubuntu.
6.1 DNS của Cloudflare (Nhanh và Phổ biến)
DNS của Cloudflare nổi tiếng với tốc độ và hạ tầng toàn cầu mạnh mẽ.
- IPv4:
1.1.1.1/1.0.0.1 - IPv6:
2606:4700:4700::1111/2606:4700:4700::1001
6.2 Google Public DNS (Ổn định và Rộng rãi sử dụng)
Google DNS rất nổi tiếng và thường ổn định, đặc biệt hữu ích cho việc khắc phục sự cố.
- IPv4:
8.8.8.8/8.8.4.4 - IPv6:
2001:4860:4860::8888/2001:4860:4860::8844
6.3 Quad9 (Tập trung vào bảo mật)
Quad9 thường được người dùng chọn khi muốn DNS chặn phần mềm độc hại và tập trung vào bảo mật.
- IPv4:
9.9.9.9/149.112.112.112 - IPv6:
2620:fe::fe/2620:fe::9
6.4 Bạn nên chọn DNS nào?
Không có một lựa chọn tốt nhất cho mọi người, nhưng đây là một hướng dẫn đơn giản:
- Ưu tiên tốc độ: Cloudflare
- Ổn định/khắc phục sự cố: Google DNS
- Tập trung bảo mật: Quad9
Nếu bạn không chắc, hãy bắt đầu với Cloudflare hoặc Google DNS và xem việc duyệt web và cập nhật có ổn định hơn không.
7. Khắc phục sự cố: Thay đổi DNS không áp dụng hoặc phân giải tên vẫn thất bại
Bạn đã thay đổi cài đặt DNS trên Ubuntu, nhưng nó vẫn không hoạt động.
Tình huống này thường gặp, và nguyên nhân thường là những thứ đơn giản như bộ nhớ đệm, cài đặt xung đột, hoặc VPN ghi đè.
Trong phần này, chúng ta sẽ đi qua các bước khắc phục thực tế hoạt động tốt trên Ubuntu 22.04/24.04.
7.1 Kiểm tra đầu tiên: Bạn có thể ping một địa chỉ IP không?
Trước khi chỉ tập trung vào DNS, hãy xác nhận mạng có hoạt động hay không.
Thử ping một IP công cộng:
ping -c 1 1.1.1.1
Nếu điều này hoạt động, kết nối mạng của bạn có thể ổn.
Tiếp theo, kiểm tra một tên miền:
ping -c 1 google.com
Nếu ping IP thành công nhưng tên miền thất bại, điều này mạnh mẽ chỉ ra vấn đề DNS.
7.2 Kiểm tra DNS thực tế đang được sử dụng
Đôi khi bạn đã đặt DNS, nhưng Ubuntu vẫn sử dụng máy chủ DNS khác do DHCP, VPN hoặc giao diện khác.
Kiểm tra các máy chủ DNS đang hoạt động bằng:
resolvectl status
Tìm kiếm:
- Giao diện nào là “Current DNS Server”
- Các máy chủ DNS có khớp với những gì bạn đã cấu hình không
Nếu bạn vẫn thấy IP router của mình (ví dụ 192.168.1.1), DNS thủ công của bạn có thể chưa được áp dụng đúng.
7.3 Xóa bộ nhớ đệm DNS (systemd-resolved)
Ubuntu có thể lưu trữ kết quả DNS trong bộ nhớ đệm. Ngay cả khi đã thay đổi DNS, các kết quả cũ vẫn có thể còn lại.
Xóa bộ nhớ đệm bằng:
sudo resolvectl flush-caches
Sau đó kiểm tra lại:
ping -c 1 google.com
7.4 Khởi động lại dịch vụ phân giải tên
Nếu việc xóa bộ nhớ đệm không đủ, khởi động lại dịch vụ resolver có thể giúp.
Khởi động lại systemd-resolved:
sudo systemctl restart systemd-resolved
Nếu bạn đang dùng Ubuntu Desktop, bạn cũng có thể khởi động lại NetworkManager:
sudo systemctl restart NetworkManager
Sau đó kiểm tra DNS lại bằng:
resolvectl status
7.5 DNS bị ghi đè bởi DHCP (Cài đặt Router)
Trong nhiều mạng gia đình, DHCP từ router tự động gán cài đặt DNS.
Ngay cả khi bạn đặt DNS thủ công, nó có thể bị ghi đè nếu kết nối của bạn vẫn được cấu hình là “Automatic”.
Để khắc phục điều này:
- Trên Desktop: đảm bảo DNS được đặt thành Manual trong GUI
- Trên Server: đảm bảo DNS được định nghĩa dưới
nameserverstrong Netplan
7.6 VPN hoặc Mạng Doanh Nghiệp Ghi Đè DNS
Phần mềm VPN thường tự động thay đổi DNS để định tuyến việc phân giải tên qua đường hầm VPN.
Các triệu chứng thường gặp bao gồm:
- Chỉ các miền nội bộ được phân giải khi VPN đang kết nối
- Các trang web công cộng ngừng hoạt động sau khi kết nối VPN
- Máy chủ DNS thay đổi khi VPN được bật
Để xác nhận, so sánh DNS trước và sau khi kết nối VPN:
resolvectl status
Nếu DNS thay đổi một cách bất ngờ, có khả năng VPN đang ghi đè nó.
Trong những trường hợp như vậy, bạn có thể cần cấu hình cài đặt DNS trong client VPN, hoặc điều chỉnh cài đặt split-DNS tùy thuộc vào cấu hình VPN của bạn.
7.7 Kiểm Tra DNS Trực Tiếp bằng dig hoặc nslookup
Đôi khi ping không đủ. Việc truy vấn DNS trực tiếp rất hữu ích.
Nếu dig có sẵn:
dig google.com
Nếu dig chưa được cài đặt, bạn có thể cài đặt nó bằng:
sudo apt update
sudo apt install -y dnsutils
Bạn cũng có thể sử dụng nslookup:
nslookup google.com
Nếu truy vấn DNS bị timeout, thường có nghĩa là máy chủ DNS bạn đã cấu hình không thể tiếp cận hoặc bị chặn.
7.8 Tường Lửa hoặc Hạn Chế Mạng Ngăn Chặn DNS
DNS thường sử dụng cổng 53 (UDP và đôi khi TCP).
Một số mạng chặn DNS bên ngoài để buộc bạn phải sử dụng máy chủ DNS của họ.
Trong trường hợp đó, việc sử dụng DNS công cộng như 1.1.1.1 có thể không hoạt động, và bạn có thể cần sử dụng DNS do mạng cung cấp.
Điều này đặc biệt phổ biến trên:
- Wi‑Fi doanh nghiệp
- Mạng khách sạn
- Mạng công cộng
8. Nâng Cao: Hiểu /etc/resolv.conf và systemd-resolved
Nếu bạn tìm kiếm “ubuntu dns settings”, bạn thường sẽ thấy /etc/resolv.conf được đề cập.
Tuy nhiên, trên Ubuntu hiện đại, tệp này có thể không hoạt động như các hướng dẫn Linux cũ mô tả.
Ý tưởng chính là:
/etc/resolv.confthường được tự động tạo- Ubuntu thường sử dụng systemd-resolved để quản lý DNS
8.1 Tại Sao Việc Chỉnh Sửa Trực Tiếp /etc/resolv.conf Thường Thất Bại
Trên nhiều hệ thống Ubuntu, /etc/resolv.conf là một symlink tới một tệp được quản lý bởi các dịch vụ hệ thống.
Xác nhận symlink:
ls -l /etc/resolv.conf
Nếu bạn thấy một cái gì đó như:
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Thì các chỉnh sửa thủ công sẽ không được lưu, vì tệp này được tạo lại tự động.
8.2 Ý Nghĩa của 127.0.0.53
Nếu /etc/resolv.conf của bạn chứa:
nameserver 127.0.0.53
Điều này không có nghĩa là “máy chủ DNS của bạn bị hỏng.”
Nó thường có nghĩa là:
- Ubuntu đang sử dụng một trình giải quyết stub cục bộ
systemd-resolvedđang xử lý các truy vấn DNS nội bộ
Các máy chủ DNS upstream thực tế được cấu hình ở nơi khác và có thể kiểm tra bằng:
resolvectl status
8.3 Khi Nào Bạn Có Thể Cần Cấu Hình systemd-resolved Trực Tiếp
Trong hầu hết các trường hợp, bạn không cần chỉnh sửa cấu hình systemd-resolved bằng tay.
Người dùng Desktop nên sử dụng cài đặt GUI, và người dùng Server nên sử dụng Netplan.
Tuy nhiên, trong các trường hợp đặc biệt bạn có thể cân nhắc, chẳng hạn như:
- Bạn muốn DNS dự phòng cho toàn hệ thống bất kể DHCP
- Bạn muốn cấu hình hành vi DNS cho nhiều giao diện
- Bạn đang khắc phục sự cố phức tạp liên quan đến VPN split-DNS
Trong phần tiếp theo, chúng tôi sẽ chỉ cách thiết lập DNS dự phòng bằng systemd-resolved một cách an toàn.
9. Tùy Chọn: Đặt DNS Dự Phòng với systemd-resolved (Nâng Cao)
Phần này là tùy chọn và dành cho người dùng muốn kiểm soát sâu hơn hành vi DNS trên Ubuntu.
Trong nhiều trường hợp, bạn nên cấu hình DNS thông qua:
- Ubuntu Desktop: GUI (Cài Đặt Mạng)
- Ubuntu Server: Netplan YAML
Tuy nhiên, có những tình huống bạn muốn định nghĩa DNS Dự Phòng để Ubuntu vẫn có thể phân giải tên ngay cả khi DNS chính không khả dụng.
9.1 DNS Dự Phòng là gì?
DNS Dự Phòng là một máy chủ DNS dự phòng mà Ubuntu có thể sử dụng nếu cấu hình DNS hiện tại gặp lỗi.
Ví dụ, nếu máy chủ DNS do mạng cung cấp (router hoặc DNS doanh nghiệp) trở nên không ổn định, DNS dự phòng có thể ngăn ngừa việc mất hoàn toàn khả năng phân giải tên.
9.2 Kiểm tra Cài đặt systemd-resolved hiện tại
Đầu tiên, kiểm tra xem systemd-resolved có đang hoạt động hay không:
systemctl status systemd-resolved
Nếu nó đang chạy, bạn có thể tiếp tục.
9.3 Chỉnh sửa /etc/systemd/resolved.conf
Tệp cấu hình chính là:
/etc/systemd/resolved.conf
Mở nó bằng nano:
sudo nano /etc/systemd/resolved.conf
Bên trong, bạn có thể thấy các dòng được chú thích như sau:
#DNS=
#FallbackDNS=
Để thiết lập DNS dự phòng, thêm hoặc sửa các dòng như sau:
[Resolve]
FallbackDNS=1.1.1.1 1.0.0.1
DNS=
Lưu ý:
FallbackDNScó thể bao gồm nhiều máy chủ, cách nhau bằng dấu cách.- Bạn có thể để
DNS=trống nếu chỉ muốn hành vi dự phòng. - Nếu bạn đặt
DNS=, nó có thể ghi đè DNS theo giao diện trong một số cấu hình, vì vậy hãy cẩn thận.
9.4 Khởi động lại systemd-resolved
Sau khi chỉnh sửa tệp, khởi động lại dịch vụ:
sudo systemctl restart systemd-resolved
9.5 Xác nhận DNS dự phòng đã được nhận dạng
Kiểm tra trạng thái resolver hiện tại:
resolvectl status
Nếu cấu hình đúng, bạn sẽ thấy DNS dự phòng được liệt kê trong kết quả.
10. Câu hỏi thường gặp (FAQ)
10.1 Có an toàn khi sử dụng Google DNS hoặc Cloudflare DNS trên Ubuntu không?
Có, nói chung nó an toàn, và nhiều người dùng chúng vì tốc độ và độ ổn định.
Tuy nhiên, DNS là một phần của quyền riêng tư và hành vi định tuyến mạng của bạn, vì vậy lựa chọn “tốt nhất” phụ thuộc vào sở thích và môi trường của bạn.
10.2 Tại sao cài đặt DNS của tôi lại trở lại sau khi khởi động lại?
Điều này thường xảy ra khi DNS được thay đổi tạm thời (ví dụ, chỉnh sửa trực tiếp /etc/resolv.conf) thay vì sử dụng phương pháp cố định đúng.
Đối với cấu hình DNS cố định:
- Ubuntu Desktop: cấu hình DNS trong cài đặt GUI
- Ubuntu Server: cấu hình DNS trong Netplan YAML
10.3 Tại sao /etc/resolv.conf hiển thị 127.0.0.53?
Đây là hiện tượng bình thường trên Ubuntu hiện đại và có nghĩa là Ubuntu đang sử dụng một trình giải quyết stub cục bộ qua systemd-resolved.
Để xem các máy chủ DNS upstream thực tế, sử dụng:
resolvectl status
10.4 DNS của tôi hoạt động trong trình duyệt nhưng apt update thất bại. Tại sao?
Điều này có thể xảy ra do cài đặt proxy, quy tắc tường lửa, hoặc các vấn đề tạm thời về phân giải DNS ảnh hưởng đến các miền cụ thể.
Hãy thử kiểm tra phân giải DNS cho các kho Ubuntu:
nslookup archive.ubuntu.com
Nếu việc phân giải tên cho các miền kho thất bại, việc điều chỉnh máy chủ DNS có thể giúp.
10.5 Tôi có nên tắt IPv6 nếu DNS cảm thấy không ổn định không?
Không nhất thiết. IPv6 được sử dụng rộng rãi và thường hoạt động tốt.
Tuy nhiên, nếu mạng của bạn chỉ hỗ trợ IPv6 một phần, nó có thể gây ra độ trễ. Cách an toàn hơn là thiết lập DNS IPv4 đúng và kiểm tra hiệu năng trước.
11. Tóm tắt
Cài đặt DNS trên Ubuntu có thể gây nhầm lẫn vì có nhiều hệ thống liên quan, như Netplan, NetworkManager và systemd-resolved.
Nhưng một khi bạn hiểu quy trình đúng, việc khắc phục sự cố sẽ dễ dàng hơn rất nhiều.
11.1 Danh sách kiểm tra nhanh
- Kiểm tra DNS bằng
resolvectl status - Người dùng Desktop: thay đổi DNS qua cài đặt mạng GUI
- Người dùng Server: đặt DNS qua Netplan YAML và áp dụng thay đổi
- Không nên dựa vào việc chỉnh sửa trực tiếp
/etc/resolv.conf - Xóa bộ nhớ cache và khởi động lại dịch vụ nếu thay đổi không có hiệu lực
Nếu bạn làm theo các bước này, bạn sẽ có thể giải quyết nhanh chóng hầu hết các vấn đề “Ubuntu không mở được trang web” hoặc “DNS không hoạt động”.
Các vấn đề DNS có thể gây bực bội, nhưng điểm tốt là chúng thường có thể khắc phục được bằng một quy trình khắc phục sự cố nhất quán.


