Kiểm tra DNS trên VPS Linux là thao tác cần thiết khi VPS không truy cập được website, không phân giải được tên miền, không kết nối được ra ngoài hoặc các dịch vụ như website, mail, API hoạt động không ổn định.
DNS có nhiệm vụ phân giải tên miền thành địa chỉ IP. Nếu DNS trên VPS cấu hình sai hoặc phản hồi chậm, hệ thống có thể gặp lỗi khi truy cập tên miền, cập nhật package, gọi API bên ngoài hoặc gửi nhận mail.
Bạn nên kiểm tra DNS trong các trường hợp sau:
ping, curl, wget bị lỗi khi dùng domain.apt, yum hoặc dnf.Trước tiên, bạn cần kiểm tra VPS đang sử dụng DNS nào bằng cách xem file /etc/resolv.conf:
cat /etc/resolv.conf
Nếu file này có các dòng nameserver, nghĩa là VPS đang sử dụng DNS server được khai báo trong file.
Ví dụ:
nameserver 1.1.1.1
nameserver 8.8.8.8
Trong đó, 1.1.1.1 là DNS của Cloudflare và 8.8.8.8 là DNS của Google.
Lệnh nslookup giúp kiểm tra VPS có phân giải được tên miền sang địa chỉ IP hay không.
nslookup google.com
Nếu DNS hoạt động bình thường, kết quả sẽ trả về địa chỉ IP của tên miền. Nếu gặp lỗi timeout hoặc không có kết quả, có thể DNS trên VPS đang gặp vấn đề.
Bạn cũng có thể chỉ định DNS server để kiểm tra trực tiếp:
nslookup google.com 8.8.8.8
Nếu truy vấn qua DNS chỉ định hoạt động bình thường nhưng truy vấn mặc định bị lỗi, khả năng cao cấu hình DNS mặc định trên VPS đang sai hoặc DNS server hiện tại không phản hồi.
Ngoài nslookup, bạn có thể dùng lệnh dig để kiểm tra DNS chi tiết hơn.
dig google.com
Nếu VPS chưa có lệnh dig, bạn có thể cài bằng gói dnsutils trên Ubuntu/Debian:
apt update
apt install dnsutils -y
Với CentOS/AlmaLinux/Rocky Linux, cài gói bind-utils:
yum install bind-utils -y
Sau khi kiểm tra DNS, bạn nên thử kết nối thực tế bằng tên miền:
ping -c 4 google.com
Nếu ping bằng tên miền không được nhưng ping bằng IP vẫn được, lỗi thường nằm ở DNS.
Kiểm tra ping trực tiếp bằng IP:
ping -c 4 8.8.8.8
Nếu VPS không ping được cả domain lẫn IP, cần kiểm tra thêm network, firewall, routing hoặc kết nối từ nhà cung cấp VPS.
Nếu DNS hiện tại bị lỗi, bạn có thể đổi DNS tạm thời bằng cách chỉnh file /etc/resolv.conf:
nano /etc/resolv.conf
Thêm hoặc thay bằng các dòng sau:
nameserver 1.1.1.1
nameserver 8.8.8.8
Sau đó lưu file và kiểm tra lại:
nslookup google.com
Trên một số hệ điều hành Linux, file /etc/resolv.conf có thể được quản lý tự động bởi NetworkManager, systemd-resolved, netplan hoặc cloud-init. Vì vậy, nếu chỉnh file này nhưng sau khi reboot cấu hình bị mất, bạn cần kiểm tra thêm dịch vụ quản lý mạng của hệ thống.
Nếu VPS dùng Ubuntu mới, có thể kiểm tra trạng thái DNS bằng lệnh:
resolvectl status
Bạn có thể tham khảo thêm tài liệu về file resolv.conf tại trang hướng dẫn của Linux manual:
https://man7.org/linux/man-pages/man5/resolv.conf.5.html
Kiểm tra DNS trên VPS Linux giúp xác định nhanh các lỗi liên quan đến phân giải tên miền, kết nối ra ngoài, update package, gọi API hoặc gửi nhận mail. Các lệnh thường dùng gồm cat /etc/resolv.conf, nslookup, dig và ping.
Nếu VPS phân giải DNS lỗi, bạn có thể thử đổi sang DNS phổ biến như 1.1.1.1 hoặc 8.8.8.8, sau đó kiểm tra lại kết nối.