Introduction to ping command
ping (Packet Internet Groper) is a command-line utility in Linux to check the network connectivity between host and host/server. It also helps to test, diagnose, and troubleshoot network connectivity issues. With the ping command, you can know if a server is up and running. The ping sends ICMP (Internet Control Message Protocol) ECHO_REQUEST messages to the specified host and waits for the reply. If the host is available, it sends an ICMP echo reply message (ECHO_RESPONSE). If ping does not receive any reply packets, it will exit with code 1.
Syntax to use ping command
The syntax for the ping
command is:
$ ping [option] destination
Some options available in the ping
command are given below.
- -a: use audible ping
- -c: <count> stop after <count> replies
- -D: print timestamps
- -f: flood ping
- -h: print help and exit
Different examples to use ping command in Linux
1. ping command to check the network connectivity of target host
You can run the ping
command without any option to check if the server of the target host is up and running. For example, to test our website, you can use the website name or IP address.
$ ping www.golinuxcloud.com
OR
$ ping 2606:4700::6813:9a5c
Sample Output:
You need to press Ctrl+C to stop the ping otherwise it will keep sending the packets infinitely. DUP! are the duplicate packets caused by inappropriate link-level retransmissions.
2. Specify the number of pings to be performed with ping command
When you specify the count N, the ping command stops sending the packets after N replies. You do not have to stop the ping with Ctrl+C.
$ ping count N destination
Sample Output:Â
3. Check localhost network with ping command
You can ping localhost to check if you have a network connection.
$ ping localhost
OR
$ ping 127.0.0.1
Sample Output:
4. Set interval seconds between sending each packet with ping command
The -i
option set interval time in seconds to wait before sending each packet. The default is to wait for one second between each packet, or not to wait in flood mode.
$ ping -i N destination
Sample Output:
5. Perform flood ping towards target host
The -f
option is used to run the flood ping. In flood ping, for every ECHO_REQUEST sent a period ''.'' is printed, and for every ECHO_REPLY received a backspace is printed. The interval time is zero and the packets are sent one hundred times per second. Only the super-user can use this option with zero intervals.
$ sudo ping -f destination
Sample Output:
6. Specify the number of data bytes to be sent with ping command
The -s
option specifies the number of data bytes to be sent. The default size is 56 ICMP data bytes which become 64 bytes when combined with the 8 bytes of ICMP header data.
$ ping -s NUM destination
Sample Output:
7. Display only the summary lines for ping command output
The -q
option can be used to display only the summary lines at startup time and when finished.
$ ping -q destination
Sample Output:
8. Set special IP timestamp options
The -T
option sets special IP timestamp options. timestamp option can be:
- tsonly: only timestamps
- tsandaddr: timestamps and addresses
- tsprespec host1 [host2 [host3 [host4]]]:Â timestamp prespecified hops
$ ping -T <timestamp option> destination
Sample Output:
9. Specify the timeout in seconds for ping command
The -w
option specifies a <deadline> ( timeout in seconds) before ping exits regardless of how many packets have been sent or received. ping waits for the reply in <deadline> seconds.
$ ping -w <deadline> destination
Sample Output:
10. Set time to wait for a response for ping command
The -W
option is used to set the time to wait for a response, in seconds. The option affects only timeout in absence of any responses otherwise, ping waits for two RTTs (round-trip time).
$ ping -W <timeout> destination
Sample Output:
11. Send multiple packets while waiting for replies with ping command
The -l
option specifies the <preload> number of packets that are to be sent while waiting for replies. Only the super-user can select preload more than 3.
$ ping -l <preload> destination
Sample Output:
12. Set the IP time to live with ping command
You can use -t
option to set the IP time to live (TTL). It limits the number of network hops. The value ranges between 1 and 255.
$ ping -t <ttl> destination
Sample Output:
13. Print timestamps with ping command
The -D
option prints the timestamps before every line.
$ ping -D destination
Sample Output:
14. Use IPv4 or IPv6 address with ping command
The -4
and -6
options are used to specify the IPv4 and IPv6 addresses respectively.
$ ping -4 address
OR
$ ping -6 address
Sample Output:
When you use the IPv6 address with -4
option, it shows an error message.
ubuntu@golinux:~$ ping -4 2606:4700::6813:9a5c
ping: 2606:4700::6813:9a5c: Address family for hostname not supported
15. Perform audible ping
When the -a
option is used, the system will produce a sound if there is a reply from the host.
$ ping -a destination
Sample Output:
16. Report ICMP ECHO reply for ping command
The -O
option reports outstanding ICMP ECHO reply before sending the next packet. It is useful together with the -D
option to log
output to a diagnostic file and search for missing answers.
$ ping -O -D destination
Sample Output:
17. Print full user-to-user latency with ping command
Normally, ping prints network round trip time which can be different, for example, due to DNS failures. The -U
option can be used to print full user-to-user latency.
$ ping -U destination
Sample Output:
Conclusion
This tutorial teaches you to use ping
command with different options in a Linux system. ping is a useful tool that allows you to test the connectivity of a specified host on the network. If you still have any confusion, please let us know in the comment section.
What's Next
How to PROPERLY test port connectivity in Linux
Further Reading