- 1 1. Giới thiệu: Tại sao Cấu hình DNS Quan trọng trên Ubuntu
- 2 2. Hai Cách Chính để Cấu hình DNS trên Ubuntu
- 3 3. Cấu hình DNS với Netplan (Môi trường Máy chủ)
- 4 4. Sử Dụng NetworkManager (Ubuntu Desktop)
- 5 5. Cách Kiểm Tra DNS Đã Được Áp Dụng
- 6 6. Các Nhà Cung Cấp DNS Phổ Biến (Thân Thiện Với Người Mới Bắt Đầu)
1. Giới thiệu: Tại sao Cấu hình DNS Quan trọng trên Ubuntu
DNS (Domain Name System) là cơ chế chuyển đổi tên miền thành địa chỉ IP.
Mỗi khi chúng ta mở một trang web, hệ điều hành lặng lẽ thực hiện các truy vấn DNS ở nền.
Khi sử dụng Ubuntu, bạn có thể gặp phải các tình huống như:
- Các trang web cảm thấy “đơn giản là chậm” khi tải
- Cùng một mạng cảm thấy chậm hơn so với các thiết bị khác
- Thỉnh thoảng không thể truy cập các dịch vụ web nội bộ trên LAN
Thật ngạc nhiên, những vấn đề này thường không phải do chất lượng kết nối mà do độ phân giải DNS chậm.
Trên Ubuntu, ngay cả từ phiên bản 22.04 trở đi, một điểm gây nhầm lẫn cho người mới là có nhiều cách để cấu hình DNS. Đặc biệt, có hai cách tiếp cận chính:
- Netplan (thường dùng trên máy chủ và môi trường không có GUI)
- NetworkManager (dùng trên môi trường desktop có GUI)
Vì quy trình khác nhau tùy thuộc vào phương pháp đang sử dụng, bất kỳ hướng dẫn nào về cấu hình DNS cho Ubuntu cũng phải xác định môi trường trước và sau đó hướng dẫn bạn đến phương pháp phù hợp.
DNS không chỉ là một thiết lập nhỏ—nó là “điểm vào” của toàn bộ ngăn xếp mạng trên Ubuntu.
Ví dụ, chỉ cần chuyển sang Google Public DNS (8.8.8.8) hoặc Cloudflare (1.1.1.1) có thể cải thiện đáng kể độ phản hồi của trình duyệt.
Hiệu ứng này đặc biệt rõ ràng trong môi trường VPS, đám mây và mạng nước ngoài.
Trong bài viết này, chúng tôi sẽ tách biệt rõ ràng và giải thích:
- Cách cấu hình DNS sử dụng GUI
- Cách cấu hình DNS sử dụng Netplan
- Cách xác minh thiết lập của bạn sau đó
Trong phần tiếp theo, chúng ta bắt đầu bằng cách xác định loại môi trường bạn đang sử dụng.
2. Hai Cách Chính để Cấu hình DNS trên Ubuntu
Trên Ubuntu, mặc dù mục tiêu là “cấu hình DNS”, phương pháp thực tế khác nhau tùy thuộc vào hệ thống quản lý mạng đang sử dụng.
Nếu bạn tiến hành mà không hiểu sự khác biệt này, bạn có thể gặp phải các vấn đề như thiết lập không áp dụng hoặc bị khôi phục sau khi khởi động lại.
Trước tiên, hãy làm rõ rằng có hai đường dẫn cấu hình DNS riêng biệt trên Ubuntu.
Netplan (cấu hình dựa trên YAML)
- Chủ yếu dùng cho môi trường máy chủ
- Được chuẩn hóa trên các bản phát hành Ubuntu LTS từ 18.04 trở đi
- Các tệp cấu hình nằm tại
/etc/netplan/*.yaml - Hoạt động kết hợp với systemd-resolved
Trên các phiên bản VPS hoặc máy chủ vật lý không có GUI, Netplan hầu như luôn là giả định đúng.
Điều này phổ biến trên AWS, Vultr, ConoHa, Oracle Cloud và các nền tảng tương tự.
NetworkManager (dựa trên GUI)
- Chủ yếu dùng trên PC desktop (Ubuntu Desktop)
- DNS có thể được chỉ định qua màn hình thiết lập IPv4 / IPv6
- Dễ hiểu nhờ giao diện trực quan
Nếu bạn đang sử dụng môi trường có GUI, đây là thiết lập có khả năng cao nhất.
Các trường hợp điển hình bao gồm “Tôi sử dụng Ubuntu hàng ngày và chỉ muốn thay đổi DNS vì duyệt web cảm thấy chậm.”
Xác định Môi trường Bạn Đang Sử dụng
Cách đơn giản nhất để kiểm tra là xem liệu các tệp có tồn tại trong /etc/netplan/ hay không.
ls /etc/netplan/
Nếu bạn tìm thấy các tệp YAML, Netplan có lẽ đang được sử dụng.
Nếu thư mục trống hoặc bạn đang ở trên hệ thống dựa trên GUI, việc kiểm tra thiết lập NetworkManager là cách tiếp cận mượt mà hơn.
3. Cấu hình DNS với Netplan (Môi trường Máy chủ)
Netplan sử dụng các tệp YAML để định nghĩa cấu hình mạng.
Trong Ubuntu Server và môi trường VPS không có GUI, phương pháp này hầu như được đảm bảo.
Ở đây, chúng tôi tập trung vào trường hợp phổ biến là sửa chữa giá trị DNS, sử dụng một ví dụ tối thiểu và thực tế.
Mở Tệp Cấu hình Netplan
Các tệp cấu hình Netplan nằm trong /etc/netplan/.
Tên tệp khác nhau tùy theo môi trường (ví dụ, 00-installer-config.yaml).
Trước tiên, xác nhận tên tệp:
ls /etc/netplan/
Sau khi xác định, mở tệp trong trình soạn thảo. Ví dụ:
sudo nano /etc/netplan/00-installer-config.yaml
Ví dụ: Thêm Các Mục DNS trong YAML
Ví dụ này thiết lập cả Google DNS và Cloudflare DNS.
network:
version: 2
ethernets:
ens33:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Tên giao diện ens33 có thể khác nhau tùy hệ thống.
Kiểm tra bằng cách dùng ip a hoặc ip link.
Áp Dụng Cấu Hình
Sau khi chỉnh sửa, áp dụng cấu hình ngay lập tức:
sudo netplan apply
Nếu gặp lỗi, nguyên nhân thường là do thụt lề trong file YAML.
Kiểm tra kỹ khoảng trắng. Tab không được phép sử dụng.
DHCP và DNS Cố Định Có Thể Dùng Cùng Nhau Không?
Đây là câu hỏi thường gặp. Có, bạn có thể nhận địa chỉ IP qua DHCP trong khi chỉ định DNS thủ công.
Ví dụ:
dhcp4: true
nameservers:
addresses: [9.9.9.9]
Trong trường hợp này, địa chỉ IP được cấp tự động, còn DNS được cố định.
4. Sử Dụng NetworkManager (Ubuntu Desktop)
Nếu bạn dùng Ubuntu cho máy để bàn, có thể thay đổi cài đặt DNS mà không cần dùng terminal.
Đối với các trường hợp phổ biến như “trình duyệt chậm” hoặc “muốn chuyển sang DNS công cộng”, cách GUI là nhanh nhất.
Cách Mở Màn Hình Cài Đặt
- Nhấp vào biểu tượng mạng ở góc trên‑phải
- Mở “Settings” hoặc “Network Settings”
- Chọn kết nối đang hoạt động (có dây hoặc Wi‑Fi)
- Chuyển tới tab “IPv4”
Trường nhập DNS nằm ở đây.
Cụm từ chính xác có thể hơi khác nhau tùy phiên bản Ubuntu, nhưng bạn có thể nhập địa chỉ dưới dạng danh sách phân tách bằng dấu phẩy.
Ví Dụ Nhập DNS (IPv4)
Ví dụ sử dụng Google DNS và Cloudflare DNS:
8.8.8.8, 1.1.1.1
Sau khi nhập giá trị, nhấn “Apply” hoặc “Save”, rồi kết nối lại mạng để đảm bảo thay đổi có hiệu lực.
Khi Sử Dụng IPv6
Màn hình tương tự có tab “IPv6” với các trường nhập DNS.
Trong kết nối dual‑stack, để ổn định có thể cần chỉ định DNS cho cả IPv4 và IPv6.
Kết Hợp DHCP với DNS Cố Định
Ngay trong GUI, bạn cũng có thể cấu hình “IP tự động, DNS thủ công”.
Điều này đặc biệt hữu ích cho Wi‑Fi ở nhà hoặc văn phòng, nơi bạn không muốn phải gán IP cố định mỗi lần.
5. Cách Kiểm Tra DNS Đã Được Áp Dụng
Chỉ vì bạn đã nhập và lưu giá trị không có nghĩa là cấu hình DNS đã hoàn tất.
Cần xác minh để chắc chắn các cài đặt thực sự có hiệu lực.
Trên Ubuntu, bạn có thể kiểm tra DNS bằng ba cách sau.
Truy Vấn Bằng Lệnh dig
dig google.com
Tìm dòng có nhãn “SERVER:” trong kết quả.
Dòng này cho biết máy chủ DNS nào đang được truy vấn.
Ví dụ (trích đoạn):
;; SERVER: 8.8.8.8#53(8.8.8.8)
Kiểm tra rằng nó hiển thị 8.8.8.8 (Google) hoặc 1.1.1.1 (Cloudflare).
Dùng resolvectl status
Cách này cung cấp thông tin chính xác thông qua systemd‑resolved.
resolvectl status
Các nameserver hiện đang được tham chiếu sẽ được hiển thị theo từng giao diện mạng.
Trên máy chủ có nhiều NIC, cách này đáng tin cậy hơn so với dig.
Tại Sao Không Nên Chỉnh Sửa Trực Tiếp /etc/resolv.conf
cat /etc/resolv.conf
File này hiển thị DNS đang được sử dụng.
Tuy nhiên, nó là file kết quả được systemd‑resolved tạo ra.
Bất kỳ chỉnh sửa thủ công nào sẽ bị ghi đè, vì vậy việc sửa trực tiếp là không đúng.
6. Các Nhà Cung Cấp DNS Phổ Biến (Thân Thiện Với Người Mới Bắt Đầu)
Địa chỉ DNS không phải do bạn tự tạo.
Trong hầu hết các trường hợp, dịch vụ DNS công cộng được sử dụng.
Nếu bạn muốn một điểm khởi đầu ổn định và an toàn, bất kỳ nhà cung cấp nào dưới đây đều là lựa chọn tốt:
| Provider | DNS Address |
|---|---|
| Google Public DNS | 8.8.8.8 / 8.8.4.4 |
| Cloudflare | 1.1.1.1 |
| Quad9 | 9.9.9.9 |
| OpenDNS | 208.67.222.222 / 208.67.220.220 |
Việc chỉ định hai máy chủ DNS thay vì một sẽ tăng độ tin cậy.
Nếu một máy chủ không khả dụng, hệ thống sẽ tự động chuyển sang máy chủ còn lại.
Khi truy cập hệ thống nội bộ của công ty (ví dụ Active Directory), bạn phải sử dụng DNS nội bộ.
Trong những trường hợp này, việc đảm bảo phân giải tên nội bộ đáng tin cậy là ưu tiên hơn DNS công cộng.
7. DNS Thường Là Điểm Tắc Nghẽn Ẩn
Mặc dù DNS trông giống như một cài đặt khác, nó có tác động lớn đến tốc độ mạng được cảm nhận.
Tác động của nó trở nên đặc biệt rõ ràng trong các tình huống sau:
- Việc tải trang đầu tiên cảm thấy chậm bất thường
- Ping nhanh, nhưng các trang web tải chậm
- Máy chủ nhẹ, nhưng tải ban đầu SPA (React / Vue) nặng
Các triệu chứng này thường cải thiện sau khi truy cập lặp lại, trong khi yêu cầu đầu tiên vẫn chậm.
Điều này là vì DNS đóng vai trò như cổng ban đầu.
Đặc biệt trên VPS hoặc các khu vực nước ngoài (như us-east hoặc eu-west), DNS công cộng thường vượt trội hơn DNS mặc định của ISP.
DNS là một điểm mà độ trễ do tắc nghẽn mạng dễ dàng xuất hiện.
Không chỉ trên Ubuntu, mà đối với các kỹ sư web nói chung, tối ưu hóa DNS là một trong những tối ưu hóa “điểm vào” đầu tiên cần xem xét.
FAQ
Q1: Tôi đã chỉnh sửa /etc/resolv.conf trực tiếp, nhưng nó bị khôi phục sau khi khởi động lại. Tại sao?
→ Trên Ubuntu, systemd-resolved tạo ra /etc/resolv.conf.
Nó không được thiết kế để chỉnh sửa trực tiếp.
Bạn phải cấu hình DNS qua Netplan hoặc NetworkManager.
Q2: Nếu tôi không biết Netplan hay NetworkManager đang được sử dụng?
→ Đầu tiên, kiểm tra /etc/netplan/.
ls /etc/netplan/
Nếu các tệp YAML tồn tại, Netplan có lẽ đang được sử dụng.
Trong môi trường GUI, NetworkManager là ứng cử viên chính.
Q3: Tôi có thể sử dụng DHCP cho IP trong khi sửa DNS không?
→ Có.
Cả Netplan và NetworkManager đều hỗ trợ IP tự động với DNS được chỉ định thủ công.
Q4: Thay đổi DNS có luôn làm web nhanh hơn không?
→ Không phải lúc nào cũng vậy.
DNS chỉ xử lý phân giải tên ban đầu.
Nó thường tăng tốc bước đầu tiên, nhưng hình ảnh chậm, CDNs, hoặc APIs vẫn có thể là nút thắt.
Q5: Quy trình có giống nhau cho WSL2 (Ubuntu trên Windows) không?
→ Không.
WSL2 tạo lại resolv.conf theo thiết kế.
Cần các cài đặt bổ sung như generateResolvConf=false.
WSL có những cân nhắc cấu hình DNS riêng.


