Terminal online tra cứu DNS và kiểm tra máy chủ: lệnh nào chạy thật, lệnh nào chỉ mô phỏng
Một bảng điều khiển dạng dòng lệnh chạy trên trình duyệt, dùng để tra DNS và kiểm tra nhanh máy chủ web bằng các lệnh quen thuộc như nslookup, dig, host, ping, curl và whois. Lệnh không chạy trên máy bạn mà được gửi tới máy chủ của trang xử lý rồi trả kết quả về, nên mọi phép đo đều nhìn từ vị trí của máy chủ đó.
Tính năng nổi bật
- nslookup tra bản ghi A của tên miền, tự động thử bản ghi AAAA (IPv6) nếu không có A; host tra bản ghi A kèm bản ghi MX của tên miền (không có IPv6)
- dig gộp một lần cả bản ghi A, MX và NS của tên miền vào một khối kết quả
- ping gửi bốn yêu cầu HTTP HEAD và tính thời gian phản hồi trung bình cùng tỷ lệ mất gói
- curl gửi một yêu cầu GET, in đầy đủ mã trạng thái và toàn bộ header phản hồi
- wget kiểm tra nhanh dung lượng và kiểu nội dung của một địa chỉ tệp
- whois và traceroute gọi công cụ hệ thống trên máy chủ, chỉ chạy khi máy chủ có sẵn công cụ đó
- Lịch sử lệnh lưu 50 dòng gần nhất trong bộ nhớ trình duyệt, duyệt bằng phím mũi tên lên xuống
- Gõ dở rồi bấm Tab để gợi ý tên lệnh, Ctrl+C để hủy lệnh đang chạy, Ctrl+L để xóa màn hình
Dùng terminal trên web khi nào là hợp lý
Có những lúc bạn chỉ cần biết một tên miền đang trỏ về IP nào hoặc một địa chỉ API còn sống hay không, mà máy trước mặt lại không tiện mở dòng lệnh: máy công ty bị khóa quyền cài đặt, máy khách hàng, hoặc đơn giản là bạn đang trên máy tính bảng. Trên Windows thì dig thậm chí không có sẵn, còn nslookup lại xuất kết quả khác hẳn cách người ta quen đọc trên Linux. Mở một tab trình duyệt và gõ lệnh là con đường ngắn nhất trong những trường hợp đó. Đổi lại, bạn phải chấp nhận một giới hạn cốt lõi: lệnh chạy từ máy chủ của trang chứ không phải từ mạng của bạn, nên kết quả trả lời câu hỏi máy chủ đó nhìn thấy gì, không phải máy bạn nhìn thấy gì. Với việc tra bản ghi DNS công khai thì khác biệt này thường không quan trọng; với việc chẩn đoán sự cố mạng cục bộ thì nó quan trọng sống còn.
Lợi ích khi sử dụng
- Tra được bản ghi DNS trên máy không cài dig hay không có quyền cài phần mềm
- Xem toàn bộ header phản hồi của một địa chỉ mà không phải mở công cụ nhà phát triển
- Kiểm tra nhanh một API còn sống hay đã chết ngay trong lúc họp
- Lịch sử lệnh còn nguyên sau khi tải lại trang, tiện khi lặp lại cùng một phép kiểm tra
- Dùng để minh họa cách phân giải tên miền cho người mới mà không cần dựng môi trường
Cách dùng terminal online
- 1Gõ help và bấm Enter để xem danh sách lệnh mà máy chủ chấp nhận.
- 2Nhập lệnh kèm một tham số, ví dụ nslookup tanphatdigital.com hoặc curl https://api.github.com, rồi bấm Enter.
- 3Chờ kết quả hiện ra; lệnh ping mất khoảng bốn giây vì nó nghỉ một giây giữa mỗi lượt gửi.
- 4Bấm phím mũi tên lên để lấy lại lệnh vừa gõ, hoặc gõ vài chữ đầu rồi bấm Tab để trình gợi ý hoàn tất tên lệnh.
- 5Bấm Ctrl+L hoặc gõ clear khi màn hình đầy, lịch sử lệnh vẫn được giữ lại trong trình duyệt.
Lệnh ping ở đây không phải ping ICMP
Đây là điểm dễ hiểu nhầm nhất. Lệnh ping thật gửi gói ICMP Echo Request ở tầng mạng và đo thời gian gói đi về, đo được cả những máy chủ không chạy web. Phiên bản trên trang này không làm vậy: nó gửi bốn yêu cầu HTTP HEAD tới địa chỉ https của tên miền, nghỉ một giây giữa mỗi lượt, rồi tính thời gian phản hồi trung bình và số lượt thất bại. Hệ quả rất cụ thể. Con số thời gian bạn thấy bao gồm cả thời gian bắt tay TLS và thời gian máy chủ web xử lý yêu cầu, nên nó luôn cao hơn độ trễ mạng thuần túy, thường là vài chục mili giây trở lên. Một máy chủ chặn ICMP nhưng vẫn phục vụ web sẽ hiện là phản hồi tốt, còn một máy chủ trả lời ICMP bình thường nhưng không mở cổng 443 sẽ hiện là mất gói toàn bộ. Kết quả cũng đo từ máy chủ của trang tới đích, không phải từ máy bạn. Vì vậy hãy đọc nó như một phép kiểm tra dịch vụ web còn sống hay không, đừng đọc như một phép đo độ trễ đường truyền.
Ba lệnh DNS khác nhau chỗ nào
Cả nslookup, host và dig ở đây đều dựa trên thư viện phân giải tên miền của môi trường máy chủ chứ không gọi công cụ hệ thống, nên chúng khác nhau chủ yếu ở phần trình bày và loại bản ghi lấy về. Lệnh nslookup lấy bản ghi A, nếu không có thì thử tiếp bản ghi AAAA cho IPv6, và trả về lỗi NXDOMAIN khi tên miền không tồn tại. Lệnh host in địa chỉ IP kèm danh sách máy chủ thư theo bản ghi MX cùng độ ưu tiên của từng máy chủ. Lệnh dig cho nhiều thông tin nhất trong một lần gõ vì nó gom cả ba loại A, MX và NS vào chung một khối. Muốn xem nhanh tên miền trỏ đi đâu thì dùng nslookup; muốn kiểm tra cấu hình email sau khi đổi nhà cung cấp thì dùng host hoặc dig để đọc MX; muốn xác nhận tên miền đã chuyển sang nhà cung cấp DNS mới chưa thì đọc phần NS trong kết quả dig. Lưu ý phần thời gian sống của bản ghi hiển thị trong kết quả dig là giá trị cố định của định dạng đầu ra, không phải giá trị TTL thật lấy từ máy chủ tên miền.
Lệnh nào chạy thật, lệnh nào chỉ trả về thông báo
Danh sách lệnh được chấp nhận dài hơn danh sách lệnh thực sự làm việc, nên biết trước sẽ đỡ mất thời gian. Nhóm chạy thật gồm nslookup, dig, host, ping, curl và wget, tất cả đều dựa trên thư viện có sẵn của môi trường chạy nên hoạt động ở mọi nơi. Nhóm whois và traceroute là hai lệnh duy nhất gọi công cụ hệ thống thật; nếu nền tảng lưu trữ không cài sẵn hai công cụ này thì bạn sẽ nhận lỗi thay vì kết quả. Nhóm ls, cat, head, tail và df chỉ in ra nội dung dựng sẵn kèm ghi chú rằng hệ thống tệp là mô phỏng, vì terminal này không có thư mục thật để đọc. Nhóm grep, find, wc, du, sed, awk, sort, uniq, cut, tr và printf luôn trả về thông báo yêu cầu quyền truy cập tệp. Nhóm netstat, ifconfig, ip, route, arp và whereis trả về thông báo không khả dụng. Còn uname, hostname, date, whoami, pwd, uptime, echo, env và which thì cho thông tin về chính máy chủ đang xử lý, không phải máy của bạn.
Vì sao curl ở đây không thay được công cụ thử API
Lệnh curl trên trang gửi đúng một yêu cầu GET với một dòng User-Agent cố định, tự đi theo chuyển hướng, và chờ tối đa mười giây trước khi báo hết thời gian. Nó in ra mã trạng thái cùng toàn bộ header phản hồi, phần thân nội dung được cắt còn 2.000 ký tự đầu và ghi rõ đã cắt bao nhiêu; nếu kiểu nội dung không phải văn bản, JSON hay XML thì nó chỉ báo là dữ liệu nhị phân kèm dung lượng. Điều đó nghĩa là bạn không đặt được header Authorization, không gửi được thân yêu cầu, không chọn được phương thức POST hay PUT, và không đọc được cookie phiên. Phần dấu và, dấu chấm phẩy, dấu ngoặc cùng vài ký tự khác bị lọc khỏi tham số vì lý do an toàn, nên địa chỉ có nhiều tham số truy vấn sẽ bị cắt xén. Dùng nó để trả lời những câu hỏi đơn giản: địa chỉ này trả mã 200 hay 404, nó có chuyển hướng không, máy chủ đặt header cache và bảo mật nào. Còn khi cần thử API có xác thực, hãy dùng công cụ chuyên cho việc đó.
Giới hạn tần suất, quyền riêng tư và những gì không nên gõ vào đây
Máy chủ giới hạn 20 lệnh mỗi phút tính theo địa chỉ IP, còn phía trình duyệt tự chặn ở mức 10 lệnh mỗi phút, nên trên thực tế bạn sẽ chạm ngưỡng của trình duyệt trước. Vượt ngưỡng thì phải chờ hết cửa sổ một phút mới gõ tiếp. Mỗi lệnh curl hoặc wget chờ tối đa mười giây, ping chờ tối đa năm giây cho mỗi lượt trong bốn lượt. Về quyền riêng tư, cần hiểu rõ một điều: nội dung lệnh được gửi lên máy chủ để xử lý, khác hẳn những công cụ chạy hoàn toàn trong trình duyệt. Vì vậy đừng đặt khóa API, mã thông báo hay bất kỳ thông tin nhạy cảm nào vào tham số lệnh. Cũng đừng dùng công cụ này để dò quét máy chủ không thuộc quyền quản lý của bạn: yêu cầu xuất phát từ máy chủ của trang, việc dò quét hàng loạt vừa vi phạm điều khoản sử dụng vừa có thể khiến địa chỉ máy chủ bị chặn. Lịch sử 50 lệnh gần nhất nằm trong bộ nhớ cục bộ của trình duyệt và bị xóa khi bạn dọn dữ liệu duyệt web.
Câu hỏi thường gặp (FAQ)
Lệnh chạy trên máy tôi hay trên máy chủ của trang?
Trên máy chủ của trang. Trình duyệt gửi chuỗi lệnh tới một điểm cuối phía máy chủ, máy chủ xử lý rồi trả kết quả về hiển thị. Vì vậy mọi phép tra cứu và phép đo đều nhìn từ vị trí mạng của máy chủ đó, không phản ánh đường truyền hay cấu hình mạng của bạn.
Vì sao ping ra thời gian cao hơn ping trong Command Prompt?
Vì đây là ping qua HTTP chứ không phải ping ICMP. Mỗi lượt là một yêu cầu HTTP HEAD nên thời gian đo bao gồm cả bắt tay TLS và thời gian máy chủ web xử lý, luôn cao hơn độ trễ mạng thuần túy. Ngoài ra điểm xuất phát là máy chủ của trang chứ không phải máy bạn.
Dùng công cụ này kiểm tra DNS đã lan truyền chưa được không?
Chỉ một phần. Nó cho biết máy chủ phân giải mà máy chủ của trang đang dùng nhìn thấy gì tại thời điểm đó. Việc lan truyền DNS phụ thuộc vào bộ nhớ đệm của từng nhà mạng nên muốn kết luận đầy đủ bạn cần kiểm tra từ nhiều vị trí địa lý và nhiều máy chủ phân giải khác nhau.
Lệnh whois báo lỗi thì phải làm sao?
Whois và traceroute là hai lệnh duy nhất gọi công cụ hệ thống thật của máy chủ. Nếu nền tảng lưu trữ không cài sẵn hai công cụ đó thì lệnh sẽ báo lỗi và không có cách khắc phục từ phía bạn. Hãy tra thông tin đăng ký tên miền trên trang tra cứu của nhà đăng ký hoặc của tổ chức quản lý tên miền.
Có gõ được lệnh nối chuỗi bằng dấu và hoặc dấu ống không?
Không. Các ký tự dấu chấm phẩy, dấu và, dấu ống, dấu huyền, dấu đô la và các loại dấu ngoặc đều bị loại khỏi tham số trước khi xử lý, nhằm ngăn việc chèn lệnh tùy ý vào máy chủ. Hệ quả phụ là địa chỉ có nhiều tham số truy vấn sẽ bị cắt mất phần sau dấu và.
Lệnh ls, cat và df cho kết quả lạ, có phải lỗi không?
Không phải lỗi. Terminal này không có hệ thống tệp thật để đọc nên các lệnh đó chỉ in ra nội dung dựng sẵn kèm ghi chú rằng phần hệ thống tệp là mô phỏng. Chúng chỉ có mặt để giao diện quen mắt, không dùng để lấy thông tin gì thật được.
Thử API có yêu cầu xác thực bằng lệnh curl ở đây được không?
Không. Lệnh curl chỉ gửi được một yêu cầu GET với một dòng User-Agent cố định, không đặt được header Authorization, không gửi được thân yêu cầu và không chọn được phương thức khác. Với API cần khóa hoặc mã thông báo, bạn phải dùng công cụ thử API chuyên dụng.
Vì sao nội dung trả về bị cắt ngang?
Phần thân phản hồi của lệnh curl bị giới hạn ở 2.000 ký tự đầu tiên và có dòng ghi rõ đã cắt bớt bao nhiêu ký tự. Giới hạn này tránh việc một trang HTML dài làm treo khung hiển thị. Muốn xem toàn bộ nội dung bạn cần công cụ khác hoặc mở trực tiếp địa chỉ đó.
Bị báo vượt giới hạn số lệnh thì chờ bao lâu?
Cửa sổ tính là một phút. Phía trình duyệt chặn ở 10 lệnh mỗi phút và phía máy chủ chặn ở 20 lệnh mỗi phút theo địa chỉ IP, nên bạn thường chạm ngưỡng của trình duyệt trước. Chờ hết một phút là gõ tiếp được, không cần tải lại trang.
Lịch sử lệnh có bị người khác đọc được không?
Lịch sử 50 lệnh gần nhất nằm trong bộ nhớ cục bộ của chính trình duyệt bạn đang dùng, không đồng bộ đi đâu. Nhưng ai dùng chung máy và chung hồ sơ trình duyệt đó vẫn xem lại được bằng phím mũi tên. Trên máy dùng chung, hãy dọn dữ liệu duyệt web sau khi làm việc.
Có nên nhập khóa API hay mật khẩu vào lệnh không?
Tuyệt đối không. Khác với các công cụ chạy hoàn toàn trong trình duyệt, ở đây toàn bộ chuỗi lệnh được gửi lên máy chủ để xử lý và có thể xuất hiện trong nhật ký hệ thống. Bất kỳ thông tin bí mật nào bạn gõ vào đều nên coi như đã lộ.
Dùng được trên điện thoại không?
Dùng được, nhưng bất tiện. Bàn phím ảo không có phím mũi tên lên xuống để lấy lại lệnh cũ, cũng không có Tab để gợi ý tên lệnh và không có Ctrl+C hay Ctrl+L. Nếu buộc phải dùng trên điện thoại, xoay ngang màn hình để thấy được nhiều dòng kết quả hơn.
Từ khóa liên quan
- terminal online
- web terminal miễn phí
- nslookup online
- dig online
- tra cứu dns online
- kiểm tra bản ghi mx
- kiểm tra bản ghi ns tên miền
- ping online
- ping http là gì
- curl online
- xem header http của website
- whois tên miền
- traceroute online
- công cụ kiểm tra mạng online
- kiểm tra dns đã trỏ đúng chưa
- tra ip của tên miền
- lệnh dig trên windows
- network tools online
- kiểm tra api còn sống
- terminal giả lập trên trình duyệt