Không phân giải được tên (DNS)
Máy nhìn thấy địa chỉ nhưng không thấy tên: cách kiểm tra resolver, sửa resolv.conf và tránh mất cấu hình sau khi khởi động lại.
Cập nhật 23 tháng 8, 2026
Triệu chứng của lỗi này rất dễ nhận biết: ping 1.1.1.1 chạy được, ping millida.net trả về “Temporary failure in name resolution”, apt update bị treo rồi hết thời gian chờ. Bản thân mạng vẫn ổn — chỉ có việc chuyển đổi tên thành địa chỉ là bị hỏng.
Bước 1. Xác nhận vấn đề nằm ở tên miền
ping -c3 1.1.1.1
getent hosts millida.net
dig +short millida.net @1.1.1.1
Nếu dig với server chỉ định rõ trả về kết quả nhưng getent thì không, hệ thống không biết cần liên hệ với resolver nào. Đây là vấn đề cấu hình, không phải kết nối.
Bước 2. Kiểm tra thành phần xử lý phân giải
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
Có ba tình huống có thể xảy ra:
- file trống hoặc không có dòng
nameservernào — chưa đặt resolver; - file chứa
nameserver 127.0.0.53, nhưngsystemd-resolvedkhông chạy — các yêu cầu đi vào hư không; - một server bên thứ ba được cấu hình nhưng không thể truy cập từ mạng của chúng ta.
Bước 3. Khắc phục
Khôi phục nhanh để apt và curl hoạt động trở lại:
echo 'nameserver 1.1.1.1' > /etc/resolv.conf
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
Cách này có tác dụng ngay nhưng chỉ kéo dài đến lần khởi động lại hoặc lần cấu hình lại mạng tiếp theo. Cách khắc phục vĩnh viễn phụ thuộc vào hệ thống.
Debian và Ubuntu với systemd-resolved:
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
resolvectl dns ens18 1.1.1.1 8.8.8.8
AlmaLinux và CentOS Stream:
nmcli con mod "System ens18" ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up "System ens18"
Đừng sửa
/etc/resolv.confthủ công nếu nó là một liên kết tượng trưng trỏ vào/run. File như vậy sẽ bị dịch vụ ghi đè, và thay đổi của bạn sẽ biến mất ngay lần khởi động lại đầu tiên — một tuần sau bạn sẽ gặp lại đúng lỗi đó mà không nhớ vì sao.
Bước 4. Các trường hợp đặc biệt
Resolver hoạt động, nhưng không tìm thấy một tên cụ thể. Hãy kiểm tra xem bản ghi có được công bố hay không:
dig millida.net A @1.1.1.1
dig millida.net A @8.8.8.8
Hai server trả về kết quả khác nhau nghĩa là zone vừa thay đổi gần đây và một bộ nhớ đệm cũ vẫn còn tồn tại ở đâu đó. Hãy chờ hết thời gian sống (TTL) của bản ghi theo phản hồi từ dig.
Bản ghi ngược cho địa chỉ của máy (PTR) không liên quan đến vấn đề này: nó cần thiết cho các mail server, được đặt trong tab “Access”, và không ảnh hưởng đến cách máy tự phân giải tên.
Một phát hiện phổ biến khác là /etc/hosts còn sót lại một dòng cũ sau khi di chuyển. Hệ thống kiểm tra file này trước DNS và cứ ngoan cố đi đến địa chỉ cũ:
cat /etc/hosts
Hãy xóa các dòng thừa và giữ lại 127.0.0.1 localhost cùng dòng chứa tên của chính máy.
Nếu tên không phân giải được từ bất kỳ server nào
Thì vấn đề rộng hơn: hãy kiểm tra kết nối cơ bản bằng bài viết Mất mạng trên máy và đảm bảo cổng 53 ra ngoài không bị chặn bởi bộ lọc gói của chính bạn.