Trong số các công cụ được sử dụng trong quản trị mạng và chẩn đoán máy tính, lệnh ping nổi bật là một trong những công cụ cơ bản và được sử dụng rộng rãi nhất. Là một tiện ích dòng lệnh có sẵn trong hầu hết mọi hệ điều hành, ping đóng vai trò như một công cụ chẩn đoán quan trọng dành cho các kỹ sư mạng, quản trị viên hệ thống và thậm chí cả những người đam mê công nghệ tò mò.
Lệnh ping gửi các gói dữ liệu nhỏ đến một địa chỉ IP hoặc máy chủ được chỉ định và đổi lại, nó sẽ nhận được phản hồi. Bằng cách đó, nó giúp người dùng xác định xem thiết bị mạng có thể truy cập được hay không và cung cấp thông tin có giá trị về thời gian phản hồi và độ tin cậy của mạng. Cho dù bạn đang khắc phục sự cố kết nối, theo dõi hiệu suất mạng hay mới bắt đầu hành trình quản lý mạng thì lệnh ping là điều cần phải biết.
Cú pháp chung cho lệnh ping:
ping [IP-ADDRESS]
1. Chỉ định số lượng gói
ping -c [number] [IP-Address]
Sử dụng tùy chọn -c để lệnh ping tự động dừng sau khi một số gói nhất định được gửi.
Ví dụ, khi bạn chạy lệnh ping với tùy chọn -c 5 để gửi 5 gói đến địa chỉ IP 127.0.0.1, bạn có thể thấy kết quả tương tự như sau:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.058 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.059 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.057 ms
--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.045/0.055/0.059/0.006 ms
2. Kiểm tra mạng Localhost
ping localhost
Nếu bạn gặp sự cố khi kết nối với máy tính hoặc trang web từ xa, hãy ping localhost để đảm bảo bạn đã kết nối.
Ví dụ, khi bạn thực thi lệnh ping với localhost, về cơ bản bạn đang ping máy của chính mình. Đây là một kết quả mẫu mà bạn có thể thấy:
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.030 ms
--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.030/0.031/0.033/0.001 ms
3. Chỉ gửi ping trong một khoảng thời gian giới hạn
ping -i [number] [IP-Address]
Tùy chọn -i đặt khoảng thời gian chờ tính bằng giây trước khi mỗi gói được gửi.
Ví dụ, lệnh ping -i 5 127.0.0.1 sẽ gửi các gói ICMP Echo Request đến địa chỉ loopback 127.0.0.1 cứ sau 5 giây. Đây là một đầu ra mẫu:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.038 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.039 ms
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 15005ms
rtt min/avg/max/mdev = 0.035/0.038/0.040/0.007 ms
Trong ví dụ này, mỗi yêu cầu được phản hồi trong chưa đầy một phần nghìn giây và không có gói nào bị mất. Đầu ra có thể thay đổi tùy thuộc vào cấu hình hệ thống của bạn và load hệ thống hiện tại.
4. Flood ping tới host mục tiêu
ping -f [IP-address]
Tùy chọn -f sẽ gửi các gói nhanh nhất có thể. Điều này có thể làm tràn ngập mạng nên thường được gọi là “flood ping”. Nó chủ yếu được sử dụng để kiểm tra sức chịu đựng và nên thận trọng khi sử dụng.
Vì các gói được gửi nhanh nhất có thể nên có thể không có đầu ra chi tiết như ping thông thường. Thay vào đó, bạn sẽ chỉ thấy một loạt dấu chấm và những dấu cách có thể được in khi các gói được gửi và nhận.
Ví dụ, một đầu ra điển hình có thể trông giống như thế này:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
..........................................................^C
--- 127.0.0.1 ping statistics ---
468751 packets transmitted, 468750 received, 0% packet loss, time 330ms
rtt min/avg/max/mdev = 0.025/0.035/0.139/0.002 ms, pipe 2, ipg/ewma 0.182/0.037 ms
Lưu ý rằng ^C ở trên thể hiện việc nhấn Ctrl + C để dừng lệnh. Điều quan trọng cần biết là tùy chọn flood yêu cầu quyền root, vì vậy bạn có thể cần chạy lệnh này với sudo nếu bạn không phải là người dùng root.
5. Thay đổi kích thước gói ping
ping -s [number] [IP-Address]
Sử dụng tùy chọn -s để tăng kích thước gói tin mặc định, bạn có thể gửi các gói tin nhẹ và nặng.
Ví dụ, lệnh ping -s 1000 127.0.0.1 gửi yêu cầu ICMP echo đến địa chỉ loopback 127.0.0.1 với kích thước gói là 1000 byte. Đây là một ví dụ về kết quả đầu ra có thể trông như thế nào:
PING 127.0.0.1 (127.0.0.1) 1000(1028) bytes of data.
1008 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.050 ms
1008 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.054 ms
1008 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.050 ms
1008 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.054 ms
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3071ms
rtt min/avg/max/mdev = 0.050/0.052/0.054/0.002 ms
6. Chỉ hiển thị các dòng tóm tắt
ping -q [IP-Address]
Tùy chọn -q xuất ra một dòng với thông tin ping thông thường, theo sau là số liệu thống kê.
Ví dụ, khi bạn chạy lệnh ping với flag -q trên địa chỉ loopback 127.0.0.1, nó sẽ gửi các gói ICMP ECHO_REQUEST đến host mạng. Flag -q làm cho lệnh chạy ở chế độ “im lặng”, ở đó nó chỉ hiển thị số liệu thống kê tóm tắt khi hoàn tất. Đầu ra có thể trông giống như thế này:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
--- 127.0.0.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.045/0.057/0.082/0.012 ms
7. Đặt giới hạn thời gian nhận gói
ping -w [seconds] [IP-Address]
Tùy chọn này ngừng nhận đầu ra ping sau một khoảng thời gian nhất định.
Ví dụ, khi bạn chạy lệnh ping với tùy chọn -w 10 tới địa chỉ loopback 127.0.0.1, nó sẽ gửi các gói yêu cầu ICMP echo đến địa chỉ đó và đợi tối đa 10 giây để nhận được phản hồi. Đây là một ví dụ đầu ra mà bạn có thể thấy:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.038 ms
...
--- 127.0.0.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.038/0.041/0.045/0.002 ms