Khi sử dụng Linux, bạn có thể gặp lỗi "temporary failure in name resolution" khi cố gắng truy cập trang web, cập nhật gói, hoặc thực hiện các tác vụ yêu cầu kết nối internet. Lỗi này cho biết hệ thống của bạn không thể phân giải tên miền thành địa chỉ IP, khiến các hoạt động mạng không thể hoàn thành.
Lỗi này thường xuất phát từ các vấn đề kết nối internet hoặc cấu hình DNS. Khắc phục và sửa lỗi này rất đơn giản. Trong hướng dẫn này, chúng tôi sẽ giải thích tất cả những gì bạn cần biết về cách giải quyết lỗi này trên các bản phân phối Linux khác nhau. Chúng tôi sẽ đề cập đến các giải pháp cụ thể cho Ubuntu 22.04 và 24.04.
Temporary Failure In Name Resolution Là Gì?
Lỗi temporary failure in name resolution ngăn hệ thống Linux của bạn kết nối đúng cách với internet. Khi điều này xảy ra, bạn không thể truy cập vào các trang web hoặc sử dụng các ứng dụng yêu cầu kết nối internet tích cực.
Nó hoạt động như một lỗi "thử lại" chung cho DNS. Tra cứu thất bại ở một nơi nào đó trong chuỗi, có thể là do lỗi cục bộ, timeout phía upstream, hoặc vấn đề xác thực.
Bạn thường thấy lỗi này khi cố ping một trang web:

ping google.com
ping: google.com: Temporary failure in name resolution
Cách Khắc Phục Temporary Failure in Name Resolution
Có nhiều cách để giải quyết lỗi này tùy thuộc vào nguyên nhân gốc rễ. Hãy khám phá các giải pháp chính.
Giải pháp 1: Kiểm Tra Kết Nối Internet
Kiểm tra router và các thiết bị mạng của bạn để đảm bảo mọi thứ được cấu hình đúng. Thử mở các ứng dụng khác để xác nhận bạn có thể kết nối internet qua chúng.
Bạn có thể kiểm tra kết nối cơ bản bằng cách ping một địa chỉ IP trực tiếp:
ping -c 4 8.8.8.8
Lệnh này gửi bốn gói tin tới máy chủ DNS công khai của Google. Nếu bạn nhận được phản hồi, kết nối internet của bạn đang hoạt động.
Nếu bạn thấy "Request timed out" hoặc "Network unreachable", bạn gặp vấn đề kết nối chung không liên quan đến DNS.

Nếu các ứng dụng kết nối internet thành công, chuyển sang giải pháp tiếp theo.
Giải pháp 2: Tệp resolv.conf cấu hình sai
Cái /etc/resolv.conf liệt kê các máy chủ DNS mà hệ thống của bạn sử dụng. Nếu tệp này chứa các địa chỉ IP sai, bạn không thể kết nối đến các trang web.
Trên nhiều hệ thống Ubuntu, tệp này là một liên kết đến tệp động được quản lý bởi systemd-resolved. Nó thường chứa cảnh báo: "Không chỉnh sửa". Tuy nhiên, nếu bạn chỉnh sửa tệp này trực tiếp, các thay đổi của bạn có thể chỉ tồn tại vài phút. Hệ thống sẽ ghi đè chúng khi cập nhật cài đặt mạng hoặc khởi động lại.
Trước khi cấu hình cài đặt DNS, hãy đảm bảo người dùng hệ thống của bạn có quyền quản trị. Tìm hiểu cách thêm người dùng vào sudoers nếu cần
Kiểm tra cấu hình DNS hiện tại
Kiểm tra cài đặt DNS của bạn mà không thay đổi gì trước tiên:
cat /etc/resolv.conf
Nếu bạn không thấy các nameserver hợp lệ, bạn đã tìm thấy vấn đề.
Kiểm Tra Tạm Thời
Bạn có thể thêm máy chủ DNS của Google để kiểm tra nhanh.
nameserver 8.8.8.8
nameserver 8.8.4.4
Ngoài ra, bạn có thể sử dụng máy chủ DNS của Cloudflare:
nameserver 1.1.1.1
nameserver 1.0.0.1
Đây là so sánh các máy chủ DNS công cộng phổ biến:

| Nhà cung cấp DNS | DNS chính | DNS Thứ cấp | Các Tính Năng Chính |
| Google DNS | 8.8.8.8 | 8.8.4.4 | Tính khả dụng cao, phạm vi toàn cầu |
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Tập trung vào bảo mật riêng tư, không ghi lại IP |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Chặn các tên miền độc hại đã biết |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Bảo vệ lừa đảo, lọc nội dung |
Nhưng đây không phải là giải pháp vĩnh viễn. Hệ thống sẽ xóa các thay đổi này. Để có bản sửa lâu dài trên Ubuntu, bạn phải cấu hình systemd-resolved hoặc Netplan. Chúng tôi đề cập những bước đó trong các phần cụ thể dưới đây.
Kiểm tra trạng thái dịch vụ Systemd-Resolved.
Nếu nameserver của bạn có vẻ chính xác nhưng phân giải vẫn thất bại, hãy kiểm tra systemd-resolved dịch vụ. Dịch vụ này quản lý các tìm kiếm DNS cục bộ trên hầu hết các hệ thống Linux hiện đại. Sử dụng lệnh này để xem nó có đang chạy hay không: sudo systemctl status systemd-resolved
Nếu kết quả hiển thị dịch vụ không hoạt động, bạn có thể khởi động nó ngay lập tức.
sudo systemctl start systemd-resolved
Bước này là kiến thức bắt buộc cho người dùng Ubuntu vì gián đoạn dịch vụ thường gây ra lỗi phân giải tên.
Giải pháp 3: Hạn chế Tường lửa
Tường lửa bảo vệ hệ thống Linux của bạn khỏi phần mềm độc hại và các mối đe dọa bảo mật. Tuy nhiên, cấu hình tường lửa không đúng có thể chặn các yêu cầu DNS, gây ra lỗi phân giải tên.
Một cách chẩn đoán là tạm thời tắt tường lửa và phần mềm bảo mật để xác định xem chúng có phải nguyên nhân gây ra vấn đề. Nếu tắt tường lửa giải quyết được vấn đề, bạn cần định cấu hình lại cài đặt tường lửa.
Cấu hình Tường lửa UFW
Hầu hết các bản phân phối Debian và Ubuntu sử dụng Tường lửa UFW. Bạn phải cho phép lưu lượng DNS trên Cổng 53 (cả UDP và TCP):
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
DNS sử dụng UDP cho các truy vấn tiêu chuẩn và TCP cho các lần chuyển lớn hơn.
Sau khi mở các cổng này, khởi động lại UFW để áp dụng các thay đổi:

sudo ufw reload
Cấu hình Firewalld
Đối với các hệ thống dựa trên CentOS và Red Hat sử dụng firewalld, hãy mở các cổng cần thiết:
sudo firewall-cmd --add-port=53/udp --permanent
sudo firewall-cmd --add-port=53/tcp --permanent
Khởi động lại tường lửa để áp dụng các thay đổi:
sudo firewall-cmd --reload
Giải pháp 4: Xóa Bộ nhớ đệm DNS
Bộ nhớ đệm DNS lưu trữ địa chỉ IP cục bộ để tăng tốc độ các lần tra cứu trong tương lai. Tuy nhiên, dữ liệu bộ nhớ đệm DNS cũ hoặc bị hỏng có thể ngăn bạn truy cập các trang web đã thay đổi tên miền hoặc nhà cung cấp lưu trữ, gây ra lỗi phân giải tên tạm thời.
Chỉ bạn xóa bộ nhớ đệm DNS khi bạn muốn buộc hệ thống yêu cầu dữ liệu mới. Sử dụng bước này khi bạn gặp lỗi phân giải.

Xác định Dịch vụ DNS của Bạn
Các dịch vụ khác nhau tùy theo cài đặt. Kiểm tra dịch vụ nào đang chạy để tránh lỗi 'unit not found':
sudo systemctl is-active nscd
sudo systemctl is-active dnsmasq
Xóa bộ nhớ đệm nscd
If nscd đang hoạt động, khởi động lại nó:
sudo systemctl restart nscd.service
Xóa cache dnsmasq
If dnsmasq đang hoạt động, khởi động lại nó:
sudo systemctl restart dnsmasq.service
Xóa Bộ nhớ đệm trên Ubuntu (systemd-resolved)
Đối với các hệ thống sử dụng systemd-resolved:
sudo systemctl restart systemd-resolved.service
Hoặc sử dụng lệnh resolvectl:
sudo resolvectl flush-caches
Hiểu về Phân giải Tên Miền
Khi bạn nhập một địa chỉ website như cloudzy.com, máy tính của bạn phải chuyển đổi tên miền dễ đọc này thành địa chỉ IP (chẳng hạn như 172.66.40.212) để định vị trang web trên internet. Quá trình chuyển đổi này gọi là phân giải tên miền, và máy chủ DNS xử lý nó.
Lỗi tạm thời không thể phân giải tên miền xảy ra khi hệ thống Linux của bạn không thể liên hệ được máy chủ DNS để lấy địa chỉ IP tương ứng cho một website. Từ "tạm thời" chỉ ra rằng đây không nhất thiết là một lỗi vĩnh viễn. Thường thì nó do một vấn đề cấu hình hoặc kết nối có thể được giải quyết.
Máy chủ DNS dịch tên miền thành địa chỉ IP mà các máy tính sử dụng để liên lạc. Google Public DNS xử lý hơn một nghìn tỷ truy vấn mỗi ngày, thể hiện quy mô của dịch vụ internet quan trọng này.
Tương tự, trình phân giải 1.1.1.1 của Cloudflare xử lý gần 2 nghìn tỷ truy vấn mỗi ngày. Khối lượng này chứng minh rằng DNS là chìa khóa cho internet.
Nguyên nhân của Lỗi Tạm thời Không Thể Phân giải Tên Miền?
Xác định nguyên nhân gốc rễ là bước đầu tiên để khắc phục lỗi tạm thời không thể phân giải tên miền của Ubuntu. Nhiều yếu tố có thể gây ra vấn đề này.

Vấn đề Kết nối Internet
Một kết nối internet chậm hoặc bị mất là thường xuyên là nguyên nhân chính. Trước khi đi sâu vào các bước khắc phục sự cố phức tạp, hãy xác minh rằng kết nối internet của bạn hoạt động bình thường.
Vấn đề Cấu hình DNS
Lỗi cấu hình DNS là một trong những nguồn phổ biến nhất gây ra lỗi này:
- Máy chủ DNS không phản hồi: Các máy chủ DNS mà hệ thống của bạn cố gắng truy cập có thể không khả dụng
- Phân giải DNS được cấu hình sai: Cơ chế phân giải DNS có thể được cấu hình không đúng
- Bộ nhớ đệm DNS lỗi thời: Các mục nhập bộ nhớ đệm DNS cũ hoặc bị hỏng có thể ngăn phân giải đúng
Hạn chế Tường lửa
Cấu hình tường lửa có thể chặn các yêu cầu DNS ngay cả khi được cấu hình đúng. Các truy vấn DNS sử dụng Cổng 53, và nếu tường lửa của bạn chặn cổng này, phân giải tên miền sẽ thất bại.
Cổng 53 xử lý cả giao thức UDP và TCP. DNS thường sử dụng UDP Cổng 53 cho các truy vấn tiêu chuẩn vì nó nhanh hơn. TCP Cổng 53 được sử dụng cho các chuyển vùng và truy vấn lớn hơn vượt quá giới hạn kích thước của UDP.
Vấn đề Cấu Hình Dịch Vụ
Dịch vụ systemd-resolved, quản lý phân giải DNS trong các bản phân phối Linux hiện đại, có thể bị dừng, vô hiệu hóa hoặc cấu hình sai. Dịch vụ này cung cấp phân giải DNS cho tất cả các ứng dụng trên hệ thống của bạn.
Lỗi Phân Giải Tên Tạm Thời Ubuntu 22.04
Ubuntu 22.04 LTS đã giới thiệu các thay đổi quản lý mạng có thể gây vấn đề phân giải DNS, đặc biệt sau khi nâng cấp hệ thống. Người dùng có thể gặp lỗi Ubuntu không thể phân giải máy chủ, lỗi phân giải tên tạm thời thường xuyên hơn trên phiên bản này.
Các Vấn Đề Phổ Biến Ubuntu 22.04
Người dùng nâng cấp từ Ubuntu 20.04 lên 22.04 thường báo cáo lỗi phân giải DNS. Vấn đề phân giải tên tạm thời Ubuntu 22.04 thường xuất phát từ cấu hình sai dịch vụ systemd-resolved xảy ra trong quá trình nâng cấp.
Sửa Lỗi Cụ Thể Ubuntu 22.04
Nếu bạn gặp vấn đề DNS liên tục trên Ubuntu 22.04, hãy làm theo các bước sau:
Trước tiên, xác minh rằng các dịch vụ mạng systemd được bật đúng cách:
sudo systemctl unmask systemd-networkd.service
sudo systemctl unmask systemd-resolved.service
Kiểm tra trạng thái của systemd-resolved:

sudo systemctl status systemd-resolved.service
Nếu dịch vụ không hoạt động, hãy khởi động nó:
sudo systemctl start systemd-resolved.service
sudo systemctl enable systemd-resolved.service
Xác minh rằng liên kết tượng trưng /etc/resolv.conf của bạn trỏ đến vị trí chính xác:
ls -l /etc/resolv.conf
Cấu hình được đề xuất liên kết đến máy phân giải gốc:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Kiểm Tra Bản Sửa Lỗi
Sau khi thực hiện các thay đổi này, hãy kiểm tra phân giải DNS:
resolvectl status
Lệnh này hiển thị cấu hình DNS hiện tại của bạn. Nó cũng xác nhận rằng systemd-resolved đang quản lý DNS đúng cách.
Lỗi Phân Giải Tên Tạm Thời Ubuntu 24.04
Ubuntu 24.04 LTS, phiên bản hỗ trợ dài hạn mới nhất, sử dụng systemd 255 và bao gồm các thành phần quản lý mạng được cập nhật. Mặc dù ổn định hơn các phiên bản trước đó, nhưng các vấn đề DNS cụ thể vẫn có thể xảy ra.
Các quản trị viên từ xa thường gặp lỗi "SSH không thể phân giải tên máy chủ". Điều này xảy ra khi máy phân giải gốc hệ thống tại 127.0.0.53 gặp sự cố. Vì SSH phụ thuộc vào dịch vụ cục bộ này để dịch tên, một systemd-resolved process bị dừng sẽ chặn ngay lập tức tất cả các nỗ lực kết nối dựa trên tên miền.
Cấu Hình DNS Ubuntu 24.04
Ubuntu 24.04 phụ thuộc rất nhiều vào systemd-resolved để quản lý DNS. Trình lắng nghe gốc trên 127.0.0.53 xử lý các truy vấn DNS cho hệ thống.
Sửa Lỗi DNS trong Ubuntu 24.04
Nếu gặp sự cố phân giải tên trên Ubuntu 24.04, hãy kiểm tra xem systemd-resolved có đang chạy không:
sudo systemctl status systemd-resolved
Xác minh cấu hình DNS bằng resolvectl:
resolvectl status
Lệnh này hiển thị thông tin nameserver và cấu hình DNS cho từng giao diện mạng.
Cấu hình Netplan trên Ubuntu 24.04
Ubuntu 24.04 sử dụng Netplan để cấu hình mạng. Tên tệp và cài đặt renderer phụ thuộc vào việc bạn sử dụng phiên bản Server hay Desktop.
Trước tiên, xác định tệp cấu hình của bạn:
ls /etc/netplan/
Chỉnh sửa tệp bạn tìm được (thường là 50-cloud-init.yaml or 00-installer-config.yaml):
sudo nano /etc/netplan/YOUR_FILE_NAME.yaml
Xác minh cài đặt DNS của bạn. Lưu ý: Các server thường sử dụng networkd, trong khi bản cài đặt Desktop sử dụng NetworkManager. Kiểm tra tên giao diện của bạn (ví dụ: eth0 or ens3) bằng cách sử dụng ip addr trước khi chỉnh sửa.
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Áp dụng cấu hình:

sudo netplan apply
Vấn đề về Stub Listener
Một số ứng dụng có thể xung đột với stub listener của systemd-resolved trên cổng 53. Nếu bạn cần vô hiệu hóa stub listener:
sudo mkdir -p /etc/systemd/resolved.conf.d/
Tạo tệp cấu hình:
echo -e "[Resolve]\nDNSStubListener=no" | sudo tee /etc/systemd/resolved.conf.d/noresolved.conf
Khởi động lại systemd-resolved:
sudo systemctl restart systemd-resolved.service
Mẹo Khắc phục sự cố bổ sung
Nếu lỗi vẫn tiếp diễn, hãy sử dụng những công cụ này để xác định vấn đề. Bạn cần xác định lỗi đến từ kết nối mạng, máy chủ DNS hay xung đột tệp cục bộ.
Xác minh Khả năng truy cập Máy chủ DNS
Bạn nên kiểm tra xem hệ thống của mình có thể truy cập các máy chủ DNS cụ thể trong cấu hình không. Sử dụng ping lệnh theo sau là địa chỉ IP của nameserver chính:
ping -c 4 <your_dns_server_ip>
Nếu thất bại, bạn gặp sự cố kết nối mạng.
Kiểm tra tệp /etc/hosts
Tệp /etc/hosts có thể ghi đè quá trình tra cứu DNS. Các mục không chính xác ở đây có thể gây ra sự cố phân giải:
sudo nano /etc/hosts
Xác minh nó chứa tối thiểu:
127.0.0.1 localhost
127.0.1.1 tên-máy-chủ-của-bạn
Sử dụng dig để chẩn đoán DNS
Lệnh dig giúp chẩn đoán các vấn đề DNS:
dig google.com
Lệnh này hiển thị thông tin truy vấn DNS chi tiết, bao gồm nameserver nào đã phản hồi và truy vấn mất bao lâu.

Kiểm tra Cấu hình Giao diện Mạng
Xác minh các giao diện mạng của bạn được cấu hình đúng:
ip addr show
Đảm bảo giao diện mạng chính của bạn có một địa chỉ IP được gán.
Ngăn chặn Vấn đề DNS trong Tương lai
Sửa lỗi ngay lập tức sẽ khôi phục quyền truy cập, nhưng bạn cần một thiết lập có khả năng phục hồi để ngăn chặn nó quay trở lại. Các biện pháp này xây dựng tính dự phòng vào cấu hình mạng của bạn để hệ thống của bạn có thể xử lý những sự cố kết nối nhỏ mà không mất phân giải tên miền.
Độ tin cậy mạng phụ thuộc vào chất lượng phần cứng. Cloudzy của chúng tôi Linux VPS chạy trên các bộ xử lý Ryzen 9 AMD tần số cao và kết nối 40 Gbps. Tốc độ thô này giảm thiểu độ trễ và timeout thường gây ra các sự cố phân giải, đảm bảo ứng dụng của bạn luôn có thể truy cập được.
Sử dụng Máy chủ DNS Đáng tin cậy
Bạn nên cấu hình nhiều nameserver thông qua Netplan hoặc systemd-resolved thay vì chỉnh sửa /etc/resolv.conf trực tiếp, điều này để cài đặt của bạn vẫn tồn tại sau khi khởi động lại. Thêm một IP thứ cấp như 1.1.1.1 or 8.8.4.4 tạo tính dự phòng nếu nhà cung cấp chính của bạn bị hỏng.
Giám sát Cập nhật Hệ thống
Cấu hình DNS có thể thay đổi sau các bản cập nhật hệ thống. Sau khi cập nhật phân phối Linux của bạn, xác minh phân giải DNS vẫn hoạt động đúng.
Ghi lại Cấu hình của Bạn
Giữ lại các bản ghi về cấu hình DNS của bạn, đặc biệt nếu bạn sử dụng máy chủ DNS tùy chỉnh. Điều này giúp xử lý sự cố dễ dàng hơn nếu có sự cố xảy ra.
Tránh Xóa thường xuyên
Không xóa bộ đệm DNS như một phần của lịch trình hàng ngày. Điều này loại bỏ dữ liệu hợp lệ và làm chậm duyệt web của bạn.
Chỉ xóa bộ đệm trong hai tình huống cụ thể:
- Bạn đã thay đổi nhà cung cấp DNS của mình (ví dụ: chuyển từ ISP sang Google DNS).
- Một trang web đã chuyển sang máy chủ mới và bạn không thể truy cập được nó.
Kết luận
Lỗi thất bại tạm thời trong phân giải tên trên các hệ thống Linux thường xuất phát từ các vấn đề về kết nối internet, sự cố cấu hình DNS, hạn chế tường lửa hoặc hỏng bộ nhớ đệm DNS. Bằng cách làm việc có hệ thống thông qua các giải pháp trong hướng dẫn này, bạn có thể xác định và khắc phục nguyên nhân cụ thể ảnh hưởng đến hệ thống của mình.
Những người dùng Ubuntu 22.04 và 24.04 phải ưu tiên systemd-resolved cấu hình. Vì dịch vụ này quản lý tất cả các truy vấn DNS, một sai cấu hình duy nhất sẽ chặn cập nhật gói và kết nối bên ngoài. Xác minh rằng dịch vụ đang hoạt động và được liên kết chính xác. Một thiết lập DNS ổn định cho phép hệ thống Linux VPS của bạn thực hiện các tác vụ mạng mà không gián đoạn.