The traceroute command is used in Linux to map the journey that a packet of information undertakes from its source to its destination. One use for traceroute is to locate when data loss occurs throughout a network, which could signify a node that’s down.
Because each hop in the record reflects a new server or router between the originating PC and the intended target, reviewing the results of a traceroute scan also lets you identify slow points that may adversely affect your network traffic.
In this article I will show how to install and use Traceroute in Linux.
Install and Use Traceroute in Linux
Follow the below steps to install and use the Traceroute in Linux.
1. If you got the below warning on your Linux VPS or Dedicated server means traceroute command is not installed on your server.
# traceroute www.google.com -bash: traceroute: command not found
Or you can verify the traceroute install or not by issue which command.
# which traceroute /usr/bin/which: no traceroute in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
2. Run the below command to install the Traceroute.
# yum install traceroute -y
3. Verify the command install or not.
# which traceroute /bin/traceroute
Traceroute Usage Command
1. Find the network path from my centos6 server to google.com.
# traceroute [options]
# traceroute www.google.com traceroute to www.google.com (184.108.40.206), 30 hops max, 60 byte packets 1 192.168.2.1 (192.168.2.1) 9.233 ms 9.020 ms 8.857 ms 2 220.127.116.11 (18.104.22.168) 20.717 ms 20.529 ms 27.526 ms 3 22.214.171.124 (126.96.36.199) 57.368 ms 57.446 ms 57.187 ms 4 10.55.32.58 (10.55.32.58) 76.846 ms 10.55.32.56 (10.55.32.56) 66.418 ms 66.906 ms 5 188.8.131.52 (184.108.40.206) 75.779 ms 65.556 ms 65.592 ms 6 * * * 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
1st is the internet gateway on the network this traceroute was done (ADSL modem local IP)
2nd is the ISP the origin computer is connected to.
2. Now Find the network path from my centos6 server to google.com and do not resolve IP addresses to their domain names.
# traceroute www.google.com -n
3. Find the network path from my centos6 server to google.com and set the number of seconds to wait for response to a probe to 0.1 seconds (Default is 5.0).
# traceroute www.google.com -w 0.1
4. Find the network path from my centos6 server to google.com and set the number of probes per each hop to 5 (Default is 3).
# traceroute www.google.com -q 5
Traceroute Basic Command Options
Display basic command line options help for more usage.
# traceroute --help Usage: traceroute [ -46dFITnreAUV ] [ -f first_ttl ] [ -g gate,... ] [ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ] [ -t tos ] [ -l flow_label ] [ -w waittime ] [ -q nqueries ] [ -s src_addr ] [ -z sendwait ] host [ packetlen ] Options: -4 Use IPv4 -6 Use IPv6 -d --debug Enable socket level debugging -F --dont-fragment Do not fragment packets -f first_ttl --first=first_ttl Start from the first_ttl hop (instead from 1) -g gate,... --gateway=gate,... Route packets through the specified gateway (maximum 8 for IPv4 and 127 for IPv6) -I --icmp Use ICMP ECHO for tracerouting -T --tcp Use TCP SYN for tracerouting -i device --interface=device Specify a network interface to operate with -m max_ttl --max-hops=max_ttl Set the max number of hops (max TTL to be reached). Default is 30 -N squeries --sim-queries=squeries Set the number of probes to be tried simultaneously (default is 16) -n Do not resolve IP addresses to their domain names -p port --port=port Set the destination port to use. It is either initial udp port value for "default" method (incremented by each probe, default is 33434), or initial seq for "icmp" (incremented as well, default from 1), or some constant destination port for other methods (with default of 80 for "tcp", 53 for "udp", etc.) -t tos --tos=tos Set the TOS (IPv4 type of service) or TC (IPv6 traffic class) value for outgoing packets -l flow_label --flowlabel=flow_label Use specified flow_label for IPv6 packets -w waittime --wait=waittime Set the number of seconds to wait for response to a probe (default is 5.0). Non-integer (float point) values allowed too -q nqueries --queries=nqueries Set the number of probes per each hop. Default is 3 -r Bypass the normal routing and send directly to a host on an attached network -s src_addr --source=src_addr Use source src_addr for outgoing packets -z sendwait --sendwait=sendwait Minimal time interval between probes (default 0). If the value is more than 10, then it specifies a number in milliseconds, else it is a number of seconds (float point values allowed too) -e --extensions Show ICMP extensions (if present), including MPLS -A --as-path-lookups Perform AS path lookups in routing registries and print results directly after the corresponding addresses -M name --module=name Use specified module (either builtin or external) for traceroute operations. Most methods have their shortcuts (`-I' means `-M icmp' etc.) -O OPTS,... --options=OPTS,... Use module-specific option OPTS for the traceroute module. Several OPTS allowed, separated by comma. If OPTS is "help", print info about available options --sport=num Use source port num for outgoing packets. Implies `-N 1' -U --udp Use UDP to particular port for tracerouting (instead of increasing the port per each probe), default port is 53 -UL Use UDPLITE for tracerouting (default dest port is 53) -P prot --protocol=prot Use raw packet of protocol prot for tracerouting --mtu Discover MTU along the path being traced. Implies `-F -N 1' --back Guess the number of hops in the backward path and print if it differs -V --version Print version info and exit --help Read this help and exit Arguments: + host The host to traceroute to packetlen The full packet length (default is the length of an IP header plus 40). Can be ignored or increased to a minimal allowed value