Trong quá trình vận hành VPS hoặc máy chủ Linux, nhất là khi bạn sử dụng của các nhà cung cấp nước ngoài, đôi khi bạn sẽ gặp tình trạng các câu lệnh kết nối ra ngoài (như curl, wget) hoặc thời gian phản hồi của trang web bị chậm bất thường. Một trong những nguyên nhân hàng đầu gây ra vấn đề này là do DNS Resolver mặc định của nhà cung cấp VPS phản hồi quá chậm hoặc bị timeout.
Bài viết này sẽ hướng dẫn bạn chi tiết cách kiểm tra tốc độ phân giải tên miền và từng bước chuyển đổi sang DNS mã nguồn mở chất lượng cao như Cloudflare (1.1.1.1) hoặc Google (8.8.8.8) trên hệ điều hành AlmaLinux / CentOS.
1. Dấu hiệu nhận biết DNS phản hồi chậm
Bạn có thể đo thời gian phân giải tên miền ngay trên cửa sổ dòng lệnh (SSH) của VPS bằng câu lệnh curl dưới đây:
curl -o /dev/null -s -w "DNS Lookup Time: %{time_namelookup}s\n" https://thinhseo.com
Đánh giá kết quả:
- Dưới 0.05s (50ms): Tốc độ rất tốt.
- Trên 1.0s – 5.0s: Rất chậm! Mức độ này sẽ làm cho các tiến trình kết nối API, gửi mail, hoặc tải dữ liệu ngoại vi trên trang web của bạn bị nghẽn nghiêm trọng.
2. Hướng dẫn đổi DNS Server trực tiếp qua tệp resolv.conf
Đây là phương pháp nhanh chóng và hiệu quả nhất để buộc hệ thống sử dụng các máy chủ DNS tốc độ cao ngay lập tức.
Bước 1: Chỉnh sửa tệp cấu hình resolv.conf
Sử dụng trình biên soạn nano để mở tệp chứa cấu hình DNS của hệ thống:
nano /etc/resolv.conf
Xóa hoặc thay thế các dòng nameserver cũ bằng danh sách DNS Server của Cloudflare và Google:
nameserver 1.1.1.1 nameserver 8.8.8.8
Nhấn Ctrl + O, nhấn Enter để lưu lại tệp, sau đó nhấn Ctrl + X để thoát khỏi giao diện chỉnh sửa.
Bước 2: Khóa tệp để chống bị hệ thống ghi đè (Quan trọng)
Một số nhà cung cấp VPS (như OVH, Linode, DigitalOcean) có các tiến trình tự động thiết lập lại DNS mặc định mỗi khi bạn reboot VPS. Để ngăn chặn việc này, hãy sử dụng thuộc tính +i (immutable) để khóa tệp:
chattr +i /etc/resolv.conf
Lưu ý: Nếu sau này bạn muốn chỉnh sửa lại tệp này, bạn cần mở khóa tệp bằng lệnh chattr -i /etc/resolv.conf trước.
3. Kiểm tra lại kết quả
Sau khi hoàn tất cấu hình, bạn hãy chạy lại câu lệnh kiểm tra tốc độ để xác nhận sự thay đổi:
curl -o /dev/null -s -w "DNS Lookup Time: %{time_namelookup}s\n" https://thinhseo.com
Nếu chỉ số DNS Lookup Time giảm xuống mức 0.005s – 0.020s, bạn đã nâng cấp tốc độ phân giải tên miền cho hệ thống thành công!
