Lệnh ping
là một trong những công cụ được sử dụng nhất để gỡ rối, kiểm tra và chẩn đoán các vấn đề kết nối mạng.
Ping hoạt động bằng cách gửi một hoặc nhiều gói Echo Request ICMP (Internet Control Message Protocol) tới một IP đích được chỉ định trên mạng và chờ phản hồi. Khi đích nhận được gói, nó sẽ trả lời bằng phản hồi ICMP echo.
Với lệnh ping
, bạn có thể xác định xem IP đích từ xa đang hoạt động hay không hoạt động. Bạn cũng có thể tìm thấy độ trễ khứ hồi trong việc giao tiếp với điểm đến và kiểm tra xem có bị mất gói hay không.
ping
là một phần của gói iputils
(hoặc iputils-ping
), được cài đặt sẵn trên gần như tất cả các bản phân phối Linux. Nó cũng có sẵn trên Windows, macOS và FreeBSD.
Cách sử dụng lệnh Ping
Cú pháp của lệnh ping như sau:
ping [OPTIONS] DESTINATION
Để minh họa rõ hơn, cách hoạt động của lệnh ping, hãy ping google.com
:
ping google.com
Đầu ra sẽ giống như sau:
PING google.com (172.217.22.206) 56(84) bytes of data. 64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=1 ttl=53 time=40.2 ms 64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=2 ttl=53 time=41.8 ms 64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=3 ttl=53 time=47.4 ms 64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=4 ttl=53 time=41.4 ms ^C --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 7ms rtt min/avg/max/mdev = 40.163/42.700/47.408/2.790 ms
Lệnh ping
xử lý tên miền thành địa chỉ IP và bắt đầu gửi gói ICMP đến địa chỉ IP đích. Nếu có thể truy cập được IP đích, nó sẽ phản hồi lại và lệnh ping in ra một dòng bao gồm các trường sau:
- Số lượng byte dữ liệu. Giá trị mặc định là 56, chuyển thành 64 byte dữ liệu ICMP –
64 bytes
. - Địa chỉ IP của điểm đến –
from muc11s01-in-f14.1e100.net (172.217.22.206)
. - Số thứ tự ICMP cho mỗi gói.
icmp_seq=1
. - Thời gian để sống. –
ttl=53
– TTL hoạt động như thế nào? . - Thời gian ping, được đo bằng mili giây, là thời gian khứ hồi để gói đến máy chủ và phản hồi để trả lại cho người gửi. –
time=41.4 ms
.
Theo mặc định, khoảng thời gian giữa việc gửi một gói mới là một giây.
Lệnh ping
sẽ tiếp tục gửi gói ICMP đến địa chỉ IP đích cho đến khi nó nhận được một ngắt. Để dừng lệnh, chỉ cần nhấn tổ hợp phím Ctrl+C
.
Khi lệnh dừng, nó sẽ hiển thị một thống kê, bao gồm cả phần trăm mất gói. Mất gói có nghĩa là dữ liệu đã bị rơi ở đâu đó trong mạng, cho thấy sự cố trong mạng. Nếu bị mất gói, bạn có thể sử dụng lệnh traceroute
để xác định vị trí xảy ra mất gói.
Nếu ping
không trả lời trả lời, điều đó có nghĩa là giao tiếp mạng chưa được thiết lập. Khi điều này xảy ra, không phải lúc nào IP đích cũng không hoạt động. Một số máy chủ có thể có tường lửa đang chặn lưu lượng ICMP hoặc được đặt thành không phản hồi các yêu cầu ping.
Khi thành công, ping
thoát cùng với mã 0
. Nếu không, nó sẽ thoát bằng code 1
hoặc 2
. Điều này có thể hữu ích khi sử dụng ping
trong một tập lệnh shell.
Trong các phần sau, chúng ta sẽ xem xét các tùy chọn ping
lệnh được sử dụng phổ biến nhất .
Chỉ định số lượng gói
Như đã đề cập, theo mặc định, ping
sẽ tiếp tục gửi các gói ICMP cho đến khi nó nhận được tín hiệu ngắt. Để chỉ định số lượng gói Echo Request được gửi mà sau đó ping sẽ thoát, hãy sử dụng -c
theo sau là số lượng gói:
ping -c 1 DESTINATION
Ví dụ, để ping hocdevops.com
chỉ một lần, bạn sẽ sử dụng:
ping -c 1 hocdevops.com
Chỉ định Giao diện Nguồn
Hành vi mặc định của ping
lệnh là gửi các gói ICMP qua default route. Nếu bạn có nhiều interface trên máy của mình, bạn có thể chỉ định interface bằng tùy chọn -I
:
ping -I INTERFACE_NAME DESTINATION
Lệnh sau sẽ ping hocdevops.com
bằng cách sử dụng em2
làm interface:
ping -I em2 hocdevops.com
Chỉ định Giao thức Internet
Khi bạn chạy lệnh ping
, nó sẽ sử dụng IPv4 hoặc IPv6, tùy thuộc vào cài đặt DNS máy của bạn.
Để buộc ping
sử dụng IPv4, hãy chuyển tùy chọn -4
hoặc sử dụng bí danh của nó ping4
:
ping -4 DESTINATION
Đối với IPv6, hãy chuyển tùy chọn -6
hoặc sử dụng ping6
:
ping -6 DESTINATION
Phần kết luận
ping
là một tiện ích mạng dòng lệnh cho phép bạn kiểm tra khả năng kết nối cấp IP của một máy chủ nhất định trên mạng.
Để xem tất cả các tùy chọn có sẵn của ping
lệnh, hãy nhập man ping
vào terminal của bạn.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.