Traces the route an IP packet would follow to a remote host.
traceroute [-dFInrvx] [-f
first_ttl] [-g
gateway][-i
iface] [-m
max_ttl] [-p
port]
[-q
queries]
[-s
src_addr] [-t
tos] [-w
waittime] [-z
pausemsecs]
host
Description
The
traceroute
command attempts to trace the route an IP packet would follow to a remote host by
launching UDP probe packets with a small
ttl
(time to live) then listening for an ICMP
time exceeded
reply from a gateway.
Probes start with a
ttl
of one and increase by one until we get an ICMP
port unreachable
(which means we got to host) or hit a
max
(which defaults to 30 hops and can be changed with the
-m
flag). Three probes (change with
-q
flag) are sent at each
ttl
setting and a line is printed showing the
ttl
, address of the gateway and round trip time of each probe. If the probe answers come
from different gateways, the address of each responding system is printed. If there
is no response within a five second timeout interval (changed with the
-w
flag), an asterisk (*) is printed for that probe.
For IPv4 (
-4
flag) or IPv6 (-6
flag) tracerouting can be forced using the appropriate flag. By default, the program
tries to resolve the name given and automatically choose the appropriate protocol.
If resolving a host name returns both IPv4 and IPv6 addresses, traceroute uses IPv4.
Option | Description |
-4
|
Force IPv4 tracerouting. |
-6
|
Force IPv6 tracerouting. |
-f
|
Set the initial time-to-live used in the first outgoing probe packet. |
-F
|
Set the don’t fragment bit. |
-d
|
Enable socket level debugging. |
-g
|
Specify a loose source route gateway (8 maximum). |
-i
|
Specify a network interface to obtain the source IP address for outgoing probe packets. This is normally only useful on a multi-homed host. (See the -s flag for another way to do this). |
-I
|
Use
ICMP ECHO instead of UDP datagrams.
|
-m
|
Set the max time-to-live (max number of hops) used in outgoing probe packets. The default is 30 hops (the same default used for TCP connections). |
-n
|
Print hop addresses numerically rather than symbolically and numerically (saves a nameserver address-to-name lookup for each gateway found on the path). |
-p
|
Set the base UDP port number used in probes (default is 33434). Traceroute hopes that
nothing is listening on UDP ports base to base + nhops - 1 at the destination host
(so an ICMP PORT_UNREACHABLE message will be returned to terminate the route tracing). If something is listening
on a port in the default range, this option can be used to pick an unused port range.
|
-r
|
Bypass the normal routing tables and send directly to a host on an attached network. If the host is not on a directly-attached network, an error is returned. This option can be used to ping a local host through an interface that has no route through it (e.g., after the interface was dropped by routed). |
-s
|
Use the specified IP address as the source address in outgoing probe packets. This is usually given as an IP address, not a hostname. On multi-homed hosts with more than one IP address, this option can force the source address to be a different IP address than the interface from which the probe packet is sent. If the IP address is not one of the host’s interface addresses, an error is returned and nothing is sent. |
-t
|
Set the type-of-service in probe packets to the following value (default zero). The value must be a decimal integer in the range 0 to 255. This option can be used to see if different types-of-service result in different paths. (If you are not running 4.4bsd, this may be academic since the normal network services like ftp don’t let you control the TOS). Not all values of TOS are legal or meaningful - see the IP spec for definitions. Useful values are probably ‘-t 16’ (low delay) and ‘-t 8’ (high throughput). |
-v
|
Use Verbose output. Received ICMP packets other than
TIME_EXCEEDED and
UNREACHABLE values are listed.
|
-w
|
Set the time (in seconds) to wait for a response to a probe (default five seconds). |
-z
|
Set the time (in seconds) to pause for a response to a probe. |