Bất kể bạn là loại người dùng Linux nào (người mới bắt đầu hay chuyên nghiệp), đều có một số công cụ nhất định mà bạn phải biết. Một trong những tiện ích đó là Ping. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của công cụ này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên máy Ubuntu 16.04 LTS.
Và đây là cách trang hướng dẫn giải thích về nó:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp có thể giúp bạn hiểu rõ hơn về cách lệnh ping hoạt động.
Ví dụ:
Sau đây là kết quả của lệnh này được tạo trên hệ thống của tôi:
Lưu ý rằng theo mặc định, lệnh sẽ tiếp tục thực thi cho đến khi bạn dừng nó thông qua Ctrl+C.
Ví dụ, lệnh sau đảm bảo có khoảng cách 3 giây:
Và lệnh sau gửi các gói tin với độ trễ nửa giây.
Lưu ý rằng chỉ có siêu người dùng mới có thể đặt khoảng thời gian thành các giá trị nhỏ hơn 0,2 giây
Ví dụ, để gửi một gói 80 byte (88 bao gồm cả tiêu đề ICMP), hãy sử dụng lệnh sau:
Ví dụ, lệnh sau sẽ gửi 3 gói tin rồi dừng lại.
Sau đây là những gì tài liệu chính thức nói về tùy chọn này:
Đây là ảnh chụp màn hình của tùy chọn này khi hoạt động:
Ví dụ, lệnh ping sau sẽ dừng sau 3 giây:
Đây là cách các tài liệu chính thức giải thích tùy chọn này:
Đây là cách trang hướng dẫn giải thích hành vi trong trường hợp này:
Lệnh ping Linux
Theo thuật ngữ cơ bản nhất, lệnh ping cho phép bạn kiểm tra xem máy chủ từ xa có hoạt động và phản hồi hay không. Sau đây là cú pháp của công cụ:
Mã:
ping [OPTIONS] destination
Mã:
ping sử dụng datagram ECHO_REQUEST bắt buộc của giao thức ICMP để tạo ra
một ICMP ECHO_RESPONSE từ máy chủ hoặc cổng. Các datagram ECHO_REQUEST
(``ping'') có tiêu đề IP và ICMP, theo sau là struct timeval
và sau đó là một số byte ``pad'' tùy ý được sử dụng để điền vào
gói tin.
ping6 là phiên bản IPv6 của ping và cũng có thể gửi Truy vấn thông tin nút
(RFC4620). Các bước nhảy trung gian có thể không được phép vì định tuyến nguồn
IPv6 đã lỗi thời (RFC5095).
Câu hỏi 1. Làm thế nào để sử dụng lệnh ping?
Cách sử dụng cơ bản khá dễ - chỉ cần thực hiện lệnh 'ping' với đích đến là đầu vào.Ví dụ:
Mã:
ping howtoforge.com
Lưu ý rằng theo mặc định, lệnh sẽ tiếp tục thực thi cho đến khi bạn dừng nó thông qua Ctrl+C.
Câu hỏi 2. Làm thế nào để thay đổi khoảng thời gian giữa các gói ping?
Theo mặc định, có khoảng cách một giây giữa các gói ping. Tuy nhiên, nếu muốn, bạn có thể tùy chỉnh độ trễ này bằng tùy chọn dòng lệnh -i.Ví dụ, lệnh sau đảm bảo có khoảng cách 3 giây:
Mã:
ping -i 3 howtoforge.com
Mã:
ping -i 0.5 howtoforge.com
Câu hỏi 3. Làm thế nào để thay đổi kích thước gói tin ping?
Theo mặc định, số byte trong một gói tin ping là 56 (64 nếu bạn bao gồm 8 byte tiêu đề ICMP). Tuy nhiên, nếu muốn, bạn có thể thay đổi giá trị này, một việc bạn có thể làm bằng tùy chọn dòng lệnh -s.Ví dụ, để gửi một gói 80 byte (88 bao gồm cả tiêu đề ICMP), hãy sử dụng lệnh sau:
Mã:
ping -s 80 howtoforge.com
Câu hỏi 4. Làm thế nào để ping gửi một số lượng gói đã đặt?
Hành vi mặc định của ping là tiếp tục gửi các gói cho đến khi bị người dùng ngắt. Tuy nhiên, nếu muốn, bạn có thể buộc ping dừng thực thi sau khi gửi một số lượng gói đã đặt. Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -c.Ví dụ, lệnh sau sẽ gửi 3 gói tin rồi dừng lại.
Mã:
ping -c 3 howtoforge.com
Câu hỏi 5. Làm thế nào để khởi chạy một loạt gói tin bằng lệnh ping?
Có, lệnh ping cũng cung cấp tùy chọn để khởi chạy một loạt gói tin. Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -f.
Mã:
ping -f howtoforge.com
Mã:
Với mỗi lệnh ECHO_REQUEST được gửi, một dấu chấm ``.'' sẽ được in ra, trong khi với mỗi lệnh ECHO_REPLY được nhận, một phím xóa lùi sẽ được in ra. Thao tác này giúp hiển thị nhanh số lượng gói tin đang bị loại bỏ. Nếu khoảng thời gian không được cung cấp, nó sẽ đặt khoảng thời gian thành
0 và xuất các gói tin nhanh như chúng quay trở lại hoặc một trăm?
lần mỗi giây, tùy theo số nào lớn hơn. Chỉ có siêu người dùng
mới có thể sử dụng tùy chọn này với khoảng thời gian bằng không.
Câu hỏi 6. Làm thế nào để ping in dấu thời gian trước mỗi dòng?
Có một tùy chọn (-D) cho phép bạn thực hiện việc này. Dấu thời gian được in là sự kết hợp của thời gian unix và micro giây (như trong gettimeofday).
Mã:
ping -D howtoforge.com
Câu hỏi 7. Làm thế nào để thiết lập thời gian chờ cứng cho lệnh ping?
Bạn có thể chỉ định thời hạn chót để lệnh ping thoát. Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -w yêu cầu giá trị số biểu thị số giây.Ví dụ, lệnh ping sau sẽ dừng sau 3 giây:
Mã:
ping -w 3 howtoforge.com
Mã:
Chỉ định thời gian chờ, tính bằng giây, trước khi ping thoát bất kể
có bao nhiêu gói đã được gửi hoặc nhận. Trong trường hợp này, ping
không dừng lại sau khi gói đếm được gửi, nó chờ cho đến khi
thời hạn hết hạn hoặc cho đến khi các thăm dò đếm được trả lời hoặc để nhận một số
thông báo lỗi từ mạng.
Q8. Làm thế nào để thiết lập thời gian chờ mềm cho ping?
Mặc dù tùy chọn -w đảm bảo ping dừng trong mọi trường hợp sau khi thời hạn đã hết, nhưng có một tùy chọn khác (-W, viết hoa) cũng khiến ping dừng nhưng chỉ khi không có phản hồi từ phía đích.
Mã:
ping -W 3 howtoforge.com
Mã:
Thời gian chờ phản hồi, tính bằng giây. Tùy chọn này chỉ ảnh hưởng đến
thời gian chờ khi không có bất kỳ phản hồi nào, nếu không, ping sẽ chờ
hai RTT.