nslookup Linux là lệnh được sử dụng để truy vấn máy chủ DNS nhằm kiểm tra việc phân giải tên miền và địa chỉ IP. Việc sử dụng nslookup giúp xác định chính xác tên miền phân giải ra IP nào, máy chủ DNS nào đang thực hiện nhiệm vụ đó và các bản ghi DNS đã được cấu hình đúng hay chưa. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về lợi ích và cách sử dụng lệnh nslookup hiệu quả nhất.
Những điểm chính
- Khái niệm: Biết được nslookup là gì và vai trò trong việc kiểm tra ánh xạ giữa tên miền và địa chỉ IP.
- Các tùy chọn lệnh: Nắm rõ các tham số quan trọng để tra cứu đa dạng các loại bản ghi DNS như A, MX, NS, SOA, TXT.
- Lợi ích của công cụ: Hiểu rõ những ưu điểm của nslookup như tính tương thích cao, chế độ tương tác linh hoạt và khả năng tra cứu ngược.
- Hướng dẫn cài đặt: Biết cách thiết lập gói công cụ dnsutils hoặc bind-utils trên các bản phân phối Linux phổ biến.
- Cách sử dụng thực tế: Thành thạo kỹ năng phân giải tên miền, sử dụng chế độ tương tác và chỉ định máy chủ DNS tùy chỉnh.
- Xử lý lỗi phổ biến: Nắm được cách khắc phục các lỗi NXDOMAIN, SERVFAIL để chẩn đoán và sửa lỗi mạng nhanh chóng.
- Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp liên quan đến lệnh nslookup trong Linux.
Lệnh nslookup Linux là gì?
nslookup là một công cụ quản trị mạng được sử dụng để truy vấn hệ thống tên miền nhằm thu thập thông tin ánh xạ giữa tên miền và địa chỉ IP hoặc ngược lại, hoạt động bằng cách gửi yêu cầu trực tiếp đến máy chủ DNS được cấu hình trong hệ thống. Công cụ này đóng vai trò là công cụ kiểm tra quan trọng, giúp quản trị viên nhanh chóng xác định nguyên nhân sự cố mất kết nối, kiểm tra tính toàn vẹn của các bản ghi tài nguyên và xác minh xem quá trình phân giải tên miền có đang diễn ra chính xác theo cấu hình hay không.

Các tùy chọn của lệnh nslookup trong Linux
Dưới đây là bảng tổng hợp các tùy chọn của lệnh nslookup cùng các ví dụ thực tế:
| Tùy chọn | Mô tả | Ví dụ minh họa |
|---|---|---|
| nslookup <tên miền> | Tìm kiếm thông tin bản ghi cơ bản và kiểm tra chi tiết phân giải của một tên miền. | nslookup vietnix.vn |
| nslookup <địa chỉ IP> | Tra cứu DNS ngược nhằm xác định tên miền từ một địa chỉ IP có sẵn. | nslookup 8.8.8.8 |
| -type=any | Liệt kê tất cả các loại bản ghi DNS công khai hiện có của một hệ thống. | nslookup -type=any microsoft.com |
| -type=soa | Xem bản ghi SOA chứa các thông tin về quyền quản trị tên miền, số seri và email người quản lý. | nslookup -type=soa github.com |
| -type=ns | Tìm kiếm danh sách các máy chủ tên miền có thẩm quyền đang quản lý tên miền đó. | nslookup -type=ns wikipedia.org |
| -type=a | Tra cứu và lấy thông tin về địa chỉ IPv4 của một tên miền cụ thể. | nslookup -type=a amazon.com |
| -type=mx | Kiểm tra danh sách các máy chủ trao đổi thư điện tử chịu trách nhiệm xử lý email cho tên miền. | nslookup -type=mx outlook.com |
| -type=txt | Tra cứu các bản ghi văn bản như SPF hoặc DKIM phục vụ mục đích xác thực và bảo mật. | nslookup -type=txt cloudflare.com |
Lợi ích khi dùng lệnh nslookup
Dưới đây là các lợi ích quan trọng của lệnh nslookup:
- Tính tương thích đa nền tảng: nslookup được tích hợp mặc định trên mọi hệ điều hành nên có thể sẵn sàng sử dụng ngay cho các tác vụ kiểm tra mà không cần cài đặt thêm.
- Chế độ tương tác: Lệnh này cung cấp môi trường dòng lệnh riêng biệt, cho phép thực hiện chuỗi truy vấn liên tiếp hoặc thay đổi máy chủ DNS linh hoạt mà không cần gõ lại lệnh từ đầu.
- Truy xuất bản ghi chuyên sâu: Lệnh nslookup hỗ trợ lọc nhanh các loại bản ghi tài nguyên cụ thể như
MX,TXT,NS,… để khoanh vùng chính xác lỗi cấu hình dịch vụ Email hoặc xác thực bảo mật tên miền. - Kiểm tra tính đồng bộ: Bạn có thể dễ dàng chuyển đổi giữa các Nameserver để so sánh dữ liệu phản hồi, giúp xác định xem bản ghi mới đã được cập nhật trên toàn mạng hay chưa.
- Hỗ trợ tra cứu ngược: Lệnh nslookup cho phép truy vấn nhanh từ địa chỉ IP ra Hostname, là công cụ thiết yếu để xác minh nguồn gốc kết nối và kiểm tra cấu hình rDNS cho Mail Server.

Cách cài đặt lệnh nslookup
Trong nhiều bản phân phối Linux hiện đại như Fedora, CentOS, Arch,… nslookup đã bị thay thế bởi các công cụ mạnh mẽ hơn như dig. Tuy nhiên, nslookup vẫn được giữ lại trong gói bind-utils hoặc dnsutils.
Để cài đặt công cụ này trên hệ điều hành Debian hoặc Ubuntu, bạn hãy sử dụng lệnh sau:
apt install dnsutilsĐể cài đặt trên hệ điều hành CentOS hoặc RHEL, bạn hãy sử dụng lệnh sau:
yum install bind-utilsCách sử dụng lệnh nslookup thực tế
1. Phân giải tên miền cơ bản
Để tìm kiếm địa chỉ IP của một tên miền bất kỳ một cách nhanh chóng, bạn hãy sử dụng lệnh sau:
nslookup google.comLệnh sẽ trả về hai phần thông tin chính bao gồm:
- Server: Địa chỉ IP của máy chủ DNS mà hệ thống đang sử dụng để truy vấn, thường là DNS trong /etc/resolv.conf.
- Non-authoritative answer: Địa chỉ IP kết quả của tên miền
google.com.

2. Chế độ tương tác
Khi bạn cần thực hiện nhiều truy vấn liên tiếp mà không muốn gõ lại lệnh nhiều lần, hãy khởi động chế độ tương tác bằng lệnh sau:
nslookupSau khi thực thi, dấu nhắc lệnh sẽ chuyển thành ký tự >. Tại đây, bạn có thể nhập trực tiếp tên miền hoặc địa chỉ IP để truy vấn. Để thoát khỏi chế độ này, bạn gõ exit hoặc nhấn tổ hợp phím Ctrl+D.

3. Chuyển đổi loại bản ghi
Để truy vấn các loại bản ghi DNS chuyên biệt như bản ghi máy chủ thư điện tử (MX) hoặc bản ghi văn bản (TXT), bạn thực hiện các chỉ lệnh sau trong chế độ tương tác:
> set type=MX
> gmail.com
> set type=TXT
> google.com
> exitTrong đó:
set type=MX: Thiết lập loại truy vấn tìm bản ghi Mail Exchanger, dùng để xác định máy chủ email.set type=TXT: Thiết lập loại truy vấn tìm bản ghi văn bản, thường dùng để xác thực các giao thức như SPF, DKIM hoặc DMARC.

4. Chỉ định máy chủ DNS tùy chỉnh
Để kiểm tra cách một tên miền được phân giải trên một máy chủ DNS cụ thể như DNS của Google, bạn hãy sử dụng lệnh sau:
nslookup yourdomain.com 8.8.8.8Việc thêm địa chỉ 8.8.8.8 (Google Public DNS) vào sau tên miền giúp bạn chẩn đoán lỗi phân giải thuộc về máy chủ DNS nội bộ hay do bản ghi trên mạng công cộng.

Cách xử lý các lỗi phổ biến khi sử dụng lệnh nslookup
Theo kinh nghiệm của mình khi sử dụng nslookup để kiểm tra DNS, phần lớn lỗi thường liên quan đến cấu hình DNS, cache hoặc chính bản ghi chưa được cập nhật. Dưới đây là các lỗi phổ biến và cách xử lý tương ứng:
| Lỗi phổ biến | Nguyên nhân | Khắc phục |
|---|---|---|
| server can’t find domain.com: NXDOMAIN | Tên miền không tồn tại (Non-Existent Domain). | Bạn kiểm tra lại chính tả tên miền hoặc chờ DNS cập nhật nếu tên miền mới tạo. |
| connection timed out; no servers could be reached | Máy chủ DNS của bạn (trong /etc/resolv.conf) không phản hồi. | Kiểm tra kết nối mạng của bạn hoặc thử truy vấn qua DNS công cộng (8.8.8.8). |
| server can’t find domain.com: SERVFAIL | Máy chủ DNS gặp lỗi nội bộ khi thực hiện truy vấn. | Lỗi này thường nằm ở phía máy chủ DNS, bạn nên thử nghiệm với một máy chủ DNS khác. |
| Lỗi phân giải IP ngược | Bản ghi PTR (Reverse DNS) chưa được tạo hoặc chưa cập nhật. | Bạn liên hệ nhà cung cấp dịch vụ mạng (ISP) hoặc quản trị viên DNS để cập nhật bản ghi PTR. |
Câu hỏi thường gặp
Dòng chữ “Non-authoritative answer” trong kết quả trả về có ý nghĩa gì?
Khi bạn thấy dòng chữ này, điều đó có nghĩa là thông tin phân giải tên miền không đến từ máy chủ DNS gốc quản lý tên miền đó, mà đến từ một máy chủ DNS trung gian đã lưu lại thông tin này trong bộ nhớ đệm.
Có thể thực hiện truy vấn ngược bằng lệnh này không?
Có, bạn hoàn toàn có thể tìm tên miền từ một địa chỉ IP cụ thể. Để thực hiện truy vấn ngược cho địa chỉ IP 8.8.8.8, bạn hãy sử dụng lệnh sau:
nslookup 8.8.8.8
Làm thế nào để kiểm tra một cổng cụ thể của máy chủ DNS?
Trong chế độ tương tác của nslookup, bạn có thể thay đổi cổng kết nối nếu máy chủ DNS không sử dụng cổng 53 mặc định. Để đổi sang cổng 5353, bạn hãy nhập lệnh sau trong giao diện tương tác:
set port=5353
Lệnh nslookup lấy thông tin máy chủ DNS mặc định từ đâu trên Linux?
Trên hầu hết các hệ điều hành Linux, lệnh nslookup sẽ đọc file cấu hình hệ thống để xác định máy chủ DNS mặc định. Để xem danh sách các máy chủ DNS này, bạn hãy kiểm tra nội dung file bằng lệnh sau:
cat /etc/resolv.conf
Tại sao kết quả phân giải bằng nslookup đôi khi khác với khi tôi dùng trình duyệt web?
Nguyên nhân thường do trình duyệt web có bộ nhớ đệm (cache) riêng hoặc đang sử dụng các giao thức phân giải hiện đại như DNS-over-HTTPS (DoH). Trong khi đó, nslookup thực hiện truy vấn trực tiếp dựa trên cấu hình mạng của hệ điều hành, giúp phản ánh chính xác tình trạng của máy chủ DNS mà bạn đang sử dụng.
nslookup Linux là công cụ nền tảng giúp người quản trị hệ thống xác định và kiểm soát quá trình phân giải tên miền hiệu quả. Bằng cách thành thạo chế độ tương tác, kỹ thuật chỉ định máy chủ DNS và chuyển đổi các loại bản ghi, bạn có thể xử lý hầu hết các sự cố mạng liên quan đến DNS. Ngoài ra, bạn cũng nên tìm hiểu thêm lệnh dig để mở rộng khả năng quản trị trong môi trường DNS phức tạp.




