Knowledge Base

How to troubleshoot network connectivity with ping and traceroute

This article demonstrates how to use the ping and traceroute tools to test network connectivity between two hosts. Ping performs a basic test to determine if a remote host is available, while traceroute tests the complete route network packets take from one host to another. Traceroute is especially helpful for diagnosing where network slowdowns and congestion occur.

You can use web-based tools or command-line tools to run these types of tests.

  • For a general introduction to network troubleshooting, please read this article first.
  • If you are working with the A2 Hosting Guru Crew on a specific issue, please provide output from command-line tools. Web-based tools only test the connection from a remote server to your A2 Hosting server. A command-line tool that you run on your own computer, on the other hand, tests your local connection to the A2 Hosting server and is more useful for troubleshooting.

Testing network connectivity with web-based tools

If you have never worked at the command line before, web-based tools provide an easy way to start network troubleshooting. There are many web sites that provide these services for free.

One such site is network-tools.com. For example, to run a ping and traceroute test, follow these steps:

  1. Use your web browser to visit http://network-tools.com.
  2. Click Ping.
  3. In the text box, type the domain name or IP address of the server that you want to test.
  4. Click Go! The page displays the results of the ping test. The following example shows a remote host responding normally to a ping test:
    Ping 93.184.216.119
    [example.com]
    Round trip time to 93.184.216.119: 0 ms
    [Lines omitted for brevity]
    Round trip time to 93.184.216.119: 0 ms
    Average time over 10 pings: 0 ms

    On the other hand, the following example shows a remote host that is not responding to a ping test:

    Ping 93.184.216.119
    [example.com]
    Timed out
    [Lines omitted for brevity]
    Timed out
    Average time over 10 pings: 0 ms
    Some servers are configured to ignore ping requests, so a timeout message does not always mean that a server is down. On the other hand, if you receive a timeout message from a server that normally responds to ping messages, this could indicate that the server is down.
  5. To run a traceroute test, click Trace.
  6. In the text box, type the domain name or IP address of the server that you want to test.
  7. Click Go! The page displays the results of the traceroute test. The following example shows a traceroute test from network-tools.com to example.com. The route indicates the amount of time the network packet spent at each “hop”, as well as the server name and IP address:

    93.184.216.119 is from European Union(EU) in region Western Europe
    
    TraceRoute from Network-Tools.com to 93.184.216.119 [example.com]
    Hop (ms) (ms) (ms)       IP Address Host name
    1    0    0    0       206.123.64.46   - 
    2    0    0    0       173.219.246.92  173-219-246-92-link.sta.suddenlink.net 
    3    0    0    0       173.219.230.231  173-219-230-231-link.sta.suddenlink.net 
    4    0    0    0       108.161.251.64  108-161-251-64.edgecastcdn.net 
    5    0    0    0       93.184.216.119   - 
    Trace complete
    To trace the route from your own computer to a server, you should use the command line. The web-based example above traces the route from network-tools.com to example.com. Although a test like this provides general information about connectivity to a remote host, it does not provide any information about your own computer's connectivity to a remote host.

Testing network connectivity with command-line tools

Web-based ping and traceroute tools are convenient and easy to use. However, some scenarios require you to test things locally on your computer using the command line. For example, if you are trying to test the connection between your computer and a remote host, a web-based tool cannot provide this information. It only tests the connection from its own server to the remote host.

If you are working with the A2 Hosting Guru Crew on a specific issue, please provide output from command-line tools. A command-line test that you run on your own computer is much more useful for troubleshooting problems than a web-based test.

The exact steps to use the ping and traceroute tools depend on your computer's operating system. Follow the appropriate procedures below for your operating system.

Testing host availability with ping

The basic ping test is one of the easiest things you can do to verify connectivity between your computer and a remote host. This test is easy to run from the command line.

Using ping on Microsoft Windows

To use the ping program on Microsoft Windows, follow these steps:

  1. Open a DOS command window. To do this, click Start, click Run, type cmd, and then press Enter.
  2. At the command prompt, type the following command. Replace example.com with the domain that you want to test:
    ping example.com
    
  3. Interpret the output from ping:

    • If the remote host is active and configured to respond to ping requests, responses appear. For example, the following output shows ping responses from an A2 Hosting server:
      C:\Documents and Settings\user>ping a2s78.a2hosting.com
      
      Pinging a2s78.a2hosting.com [216.119.143.98] with 32 bytes of data:
      
      Reply from 216.119.143.98: bytes=32 time=46ms TTL=54
      Reply from 216.119.143.98: bytes=32 time=45ms TTL=54
      Reply from 216.119.143.98: bytes=32 time=47ms TTL=54
      
      Ping statistics for 216.119.143.98:
          Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
      Approximate round trip times in milli-seconds:
          Minimum = 45ms, Maximum = 47ms, Average = 46ms
      
    • Alternatively, if the remote host is down, or not configured to respond to ping requests, you do not see any responses.

      Firewalls can be configured to block packets from ping. If a remote host does not respond to ping requests, it is possible that it is up and running normally, but ignoring ping requests.
Using ping on Apple Mac OS X and Linux

To use the ping program on Mac OS X and Linux, follow these steps:

  1. Open a terminal window. The procedure to do this depends on your operating system and desktop environment:
    • On Mac OS X, click Applications, click Utilities, and then click Terminal.
    • On Linux, open a terminal window.
  2. At the command prompt, type the following command. Replace example.com with the domain that you want to test:

    ping example.com
    
  3. Press Ctrl+C to stop ping after a few tests run, and then interpret the output:

    • If the remote host is active and configured to respond to ping requests, responses appear. For example, the following output shows ping responses from an A2 Hosting server:
      [email protected]:~$ ping a2s78.a2hosting.com
      PING a2s78.a2hosting.com (216.119.143.98) 56(84) bytes of data.
      64 bytes from a2s78.a2hosting.com (216.119.143.98): icmp_req=1 ttl=54 time=44.4 ms
      64 bytes from a2s78.a2hosting.com (216.119.143.98): icmp_req=2 ttl=54 time=43.8 ms
      64 bytes from a2s78.a2hosting.com (216.119.143.98): icmp_req=3 ttl=54 time=44.7 ms
      
    • On the other hand, if the remote host is down, or not configured to respond to ping requests, you do not see any responses.

      Firewalls can be configured to block packets from ping. If a remote host does not respond to ping requests, it is possible that it is up and running normally, but ignoring ping requests.
Testing the path to a remote host with traceroute

The traceroute program provides much more detailed information about a connection to a remote host than ping. Traceroute (or tracert on Microsoft Windows systems) displays information about each “hop” a packet takes from your computer to the remote host. It is often a good way to pinpoint possible ISP connection issues or network bottlenecks.

Using tracert on Microsoft Windows

On Windows-based systems, use the tracert program to test the path to a server. To do this, follow these steps:

  1. Open a DOS command window. To do this, click Start, click Run, type cmd, and then press Enter.
  2. At the command prompt, type the following command. Replace example.com with the domain that you want to test:
    tracert example.com
  3. Interpret the output from tracert:

    • Tracert displays each hop, indicated by a number in the left column. It also displays the domain and IP address at each hop, as well as the time spent. For example, the following output shows the path to an A2 Hosting server:
      C:\>tracert a2s78.a2hosting.com
      
      Tracing route to a2s78.a2hosting.com [216.119.143.98]
      over a maximum of 30 hops:
      
        1     1 ms    <1 ms    <1 ms  Linksys [192.168.0.1]
      [Lines omitted for brevity]
        8    45 ms    38 ms    38 ms  pos-1-6-0-0-pe01.350ecermak.il.ibone.comcast.net [68.86.87.130]
        9    67 ms   150 ms    76 ms  cr-1.sfld-mi.123.net [66.208.233.62]
       10    44 ms    63 ms    46 ms  gateway1.a2hosting.com [216.234.104.254]
       11    72 ms    57 ms    63 ms  a2s78.a2hosting.com [216.119.143.98]
      
      Trace complete.
      

      You can examine the times between each hop to look for places where the connection “hangs”. In some cases, tracert may also time out, which is indicated by an asterisk (*).

Using traceroute on Apple Mac OS X and Linux

To use the traceroute program on Mac OS X and Linux, follow these steps:

  1. Open a terminal window. The procedure to do this depends on your operating system and desktop environment:
    • On Mac OS X, click Applications, click Utilities, and then click Terminal.
    • On Linux, open a terminal window.
  2. At the command prompt, type the following command. Replace example.com with the domain that you want to test:

    traceroute example.com
    
  3. Interpret the output from traceroute:

    • Traceroute displays each hop, indicated by a number in the left column. It also displays the domain and IP address at each hop, as well as the time spent. For example, the following output shows the path to an A2 Hosting server:
      [email protected]:~$ traceroute a2s78.a2hosting.com
      1  Linksys (192.168.0.1)  0.315 ms  0.452 ms  0.472 ms
      [Lines omitted for brevity]
      8  pos-1-6-0-0-pe01.350ecermak.il.ibone.comcast.net (68.86.87.130)  39.010 ms  38.054 ms  38.092 ms
      9  cr-1.sfld-mi.123.net (66.208.233.62)  45.056 ms  44.335 ms  44.974 ms
      10  gateway1.a2hosting.com (216.234.104.254)  45.274 ms  46.650 ms  46.089 ms
      11  a2s78.a2hosting.com (216.119.143.98)  44.654 ms  46.028 ms  43.852 ms

      You can examine the times between each hop to look for places where the connection “hangs”. In some cases, traceroute may also time out, which is indicated by an asterisk (*).

Testing network connectivity with MTR

MTR (“My Traceroute”) is a network diagnostic tool that combines the functionality of the ping and traceroute programs described above. It is a good way to monitor in real-time the path network packets take to their destination.

Using MTR on Microsoft Windows

WinMTR is a version of MTR for computers running Microsoft Windows. To download WinMTR, use your web browser to go to http://winmtr.net/download-winmtr, and then install the program on your computer.

After you install WinMTR, follow these steps to run a network test:

  1. Start WinMTR.
  2. In the Host text box, type the name of the domain you want to test.
  3. Click Start. MTR continually tests connectivity to the host, displaying the packet route and total number of pings.
  4. To stop testing, click Stop.
    You can click Copy Text to clipboard to copy the MTR output. This enables you to paste it into another application, such as a text editor or e-mail client. For example, A2 Hosting's Guru Crew may ask to see the MTR output if you open a support ticket about network connectivity.
Using MTR on Linux

MTR may already be installed by your Linux distribution. If it is not installed, you can install it using your distribution's package manager (for example, apt-get or yum). After MTR is installed, follow these steps to run a network test:

  1. In Linux, open a terminal window.
  2. To begin a network test, type the following command. Replace example.com with the name of the domain you want to test:
    mtr --curses example.com

    The previous command starts MTR in text mode. If your Linux installation has a desktop environment installed, you can type the following command to start MTR with a GUI instead:

    mtr --gtk example.com
  3. MTR continually tests connectivity to the host, displaying the packet route and total number of pings:

    • To change the display mode, type d.
    • To restart the test, type r.
    • For additional help, type h.
  4. To stop testing, type q.
Using MTR on Apple Mac OS X

To install a version of MTR for computers running Mac OS X, you can use Rudix, a collection of command-line Unix programs for OS X. To do this, follow these steps:

  1. On Mac OS X, click Applications, click Utilities, and then click Terminal.
  2. At the command prompt, type the following commands to install Rudix:
    curl -O https://raw.githubusercontent.com/rudix-mac/rpm/2015.10.20/rudix.py
    sudo python rudix.py install rudix
    
  3. When prompted, type your administrator password.
  4. At the command prompt, type the folllowing command to install MTR:

    sudo rudix install mtr
    
  5. If prompted, type your administrator password. Rudix installs MTR.

After you install MTR, follow these steps to run a network test:

  1. On Mac OS X, click Applications, click Utilities, and then click Terminal.
  2. To begin a network test, type the following command. Replace example.com with the name of the domain you want to test:
    mtr example.com
  3. MTR continually tests connectivity to the host, displaying the packet route and total number of pings:

    • To change the display mode, type d.
    • To restart the test, type r.
    • For additional help, type h.
  4. To stop testing, type q.