Lệnh ping là một trong những công cụ hữu ích nhất cho việc khắc phục sự cố, kiểm tra và chẩn đoán các lỗi khi kết nối mạng. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng lệnh ping trong Linux.
Tìm hiểu lệnh Ping trong Linux
Lệnh ping được hiểu là một công cụ cơ bản trong hệ điều hành Linux được sử dụng với mục đích kiểm tra khả năng kết nối mạng giữa 2 thiết bị. Cơ chế hoạt động của lệnh ping là gửi các gói ICMP đến một địa chỉ IP đích trên mạng và đợi phản hồi. Nếu địa chỉ đích nhận được gói tin thì sẽ phản hồi bằng một ICMP echo reply.
Cấu trúc lệnh:
ping [tùy chọn] địa_chỉ_IP
Sử dụng lệnh ping trong Linux
Lệnh ping cho phép xác định xem IP đích có đang hoạt động hay không. Ngoài ra bạn cũng có thể kiểm tra độ trễ trong quá trình truyền khứ hồi đến địa chỉ đích, đồng thời cho biết có gói tin nào bị mất không.
Lệnh ping là một thành phần của gói iputils (hay iputils-ping), được cài đặt sẵn trên hầu hết các bản phân phối Linux, đồng thời cũng hỗ trợ Windows, macOS và FreeBSD.
Bạn đọc có thể tham khảo qua một số bài viết cùng chủ đề Linux mà Vietnix đã tổng hợp:
Cú pháp của lệnh ping
Lệnh ping có cú pháp chung như sau:
ping [OPTIONS] DESTINATION
ping google.com
Output:
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 phân giải tên miền thành một địa chỉ IP và gửi các gói ICMP đến địa chỉ IP đích. Nếu các gói tin đến được địa chỉ đích thì nó sẽ phản hồi lại, sau đó lệnh ping có thể in ra các trường như sau:
- Số lượng byte dữ liệu. Mặc định là 56, đây là số lượng để dịch sang 64 byte dữ liệu ICMP (64 bytes).
- Địa chỉ IP đích - from muc11s01-in-f14.1e100.net (172.217.22.206).
- Chuỗi số ICMP cho từng gói pin. icmp_seq=1.
- Time to live – ttl=63/
- Thời gian ping, được đo bằng đơn vị mili giây. Đây là tổng gian để packet đi đến host và nhận lại phản hồi. – time=41.4ms.
Theo mặc định thì khoảng thời gian giữa các lần gửi gói tin là một giây.
Lệnh ping sẽ tiếp tục gửi các gói ICMP đến địa chỉ IP đích cho đến khi bị gián đoạn. Để dừng lệnh chủ động thì ta có thể dùng tổ hợp phím Ctrl+C. Sau khi dừng, lệnh ping sẽ hiển thị các thống kê và tỉ lệ gói tin bị mất. Các gói tin bị mất có thể là do mất dữ liệu ở đâu đó trong mạng. Nếu gặp phải trường hợp này thì ta có thể dùng lệnh traceroute để xác định vị trí xảy ra lỗi.
Nếu lệnh ping không trả về phản hồi thì quá trình giao tiếp mạng không được thiết lập. Khi đó địa chỉ IP đích có thể không hoạt động hoặc một số host có thể đang sử dụng tường lửa để chặn traffic ICMP, hoặc được thiết lập để không phản hồi lại các ping request.
Nếu chạy thành công thì lệnh ping sẽ thoát với mã 0. Ngược lại lệnh sẽ trả về mã 1 hoặc 2.
Chỉ định số lượng packet
Như đã đề cập ở trên, theo mặc định thì lệnh ping sẽ gửi gói ICMP cho đến khi có tín hiệu gián đoạn. Để chỉ định số lượng gói Echo request được gửi cho đến khi lệnh ping dừng, ta có thể dùng option -c như sau:
ping -c number DESTINATION
Trong đó number là số lượng gói tin cần chỉ định.
ping -c 1 linuxize.com
Chỉ định giao diện nguồn
Cấu hình mặc định của lệnh ping là gửi các gói ICMP qua route mặc định. Nếu có nhiều giao diện (interface) trên máy thì ta có thể chỉ định interface nguồn bằng option -I:
ping -I INTERFACE_NAME DESTINATION
Lệnh sau dùng để ping vietnix.vn bằng interface em2:
ping -I em2 linuxize.com
Chỉ định giao thức Internet
Khi chạy lệnh ping, ta có thể dùng IPv4 hoặc IPv6 tùy vào thiết lập DNS của máy.
Để yêu cầu ping chỉ sử dụng IPv4, ta có thể truyền option -4 hoặc ping4:
ping -4 DESTINATION
Tương tự với IPv6, ta có thể dùng -6 hoặc ping6:
ping -6 DESTINATION
Bạn đọc có thể tham khảo qua bài viết IPv4 và IPv6 – Khái niệm và so sánh hai giao thức mạng để có thể tìm hiểu rõ hơn nhé.
Lời kết
Qua bài viết này bạn cũng đã hiểu được sơ bộ Ping là một công cụ mạng trên giao diện command-line, cho phép người dùng nhanh chóng kiểm tra các kết nối đến host ở level IP. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần comment bên dưới để được Vietnix hỗ trợ nhanh nhất nhé!