Tracing engines and the options that shape them.
One probe method per trace, chosen by flag; modifiers apply where shown. Click any part of the diagram to build a command — it assembles at the bottom of the page with a plain-English readout.
lft [options] target:portAddress family matched to the target; -4 / -6 force it. Default: TCP to port 443.(default)TCPdefault·SYN probeslft SYN probes; replies correlated by sequence number. Reports [target open], [target closed] or [target filtered]. IPv4 and IPv6.-b·basicProbes without relying upon sequence numbers being conveyed correctly: more compatible with NAT, slower. May be used with -E. IPv4 only.-E, -e·adaptiveTries several TCP states — FIN, then SYN-ACK, then SYN — to improve the chances of a trace; reports stateful firewalls and broken IP stacks. Implies -i. Layers on default or -b.-uUDP-pICMP-PRFC 1393-FFIN probesTCP packets with the FIN flag set, to pass unsophisticated packet filters that don't keep a state table. Not with -E.
-BRealistic TCP optionsSYN probes carry a common client option block (MSS, SACK, timestamps, window scale) and realistic sequence numbers, so SYN-normalising firewalls don't drop them.
--ecmpECMP members Varies the source port per probe and sends more probes per hop, exposing load-balanced next hops as a diamond in every output.
-KPath MTU discoveryProbes at the interface MTU and reduces on Packet Too Big; reports [MTU: N] and the limiting hop. IPv6 honors the 1280 floor.
Ports and sequence
- -s sport
- fixed source port
- -z
- one random source port for the whole trace
- -d dport
- destination port (same as target:port)
- -q ISN
- initial sequence number
- -w window
- advertised TCP window (32768)
Pacing and retries
- -m min
- minimum probes per hop (1)
- -M max
- maximum probes per hop (2)
- -a ahead
- hops to query before waiting for replies (5)
- -c scatter
- minimum ms between probes (20)
- -t timeout
- maximum RTT before a probe is assumed lost (250)
- -j N
- N probes per hop for RTT statistics (chart with -o)
Scope and packet
- -l min ttl
- first TTL to probe (skips close-proximity hops)
- -H max ttl
- last TTL to probe (caps the path length)
- -L length
- probe size in bytes (ignored with -K)
- -i
- ignore ICMP unreachables; continue through firewalls
- -I
- set the ToS field to minimize-delay
-W N watch: continuous ncurses monitoring every N seconds·--show-seams reveal AS / network seam hops ·-y verify the detected seam by re-probing the boundary hoptext (default)·-x XML·-o ASCII diagram·-g / -G GraphViz·--svg·--mermaid·--json / --json-pretty·--geojson·--kml -n numeric·-h symbolic·-A AS numbers (pWhoIs; -R RADB, -C Cymru, -r RIPE RIS)·-N network / AS names-T execution timers·-U times in UTC·-S no status bar·-V / -VV verbose SENT/RCVD detail·--color / --no-colorWording follows lft(8). Probe methods are exclusive; modifiers and shaping options combine as noted.
Four engines, exclusive of one another
TCP (default) sends SYN probes, correlates replies by sequence number, and reports the target as open, closed or filtered. UDP sends every probe to the same destination port with a session-unique identifier in the IP ID — not the incrementing ports of classic traceroute — so all probes stay on one ECMP path. ICMP is echo request: sometimes fastest, often filtered at borders. RFC 1393 is the 1993 IP-option method, kept for completeness.
Two ways to change the TCP engine's temperament: basic (-b) stops relying on sequence numbers being conveyed intact, which makes it NAT-tolerant at the cost of speed; adaptive (-E) tries FIN, then SYN-ACK, then SYN, reports stateful firewalls and broken IP stacks, and implies -i so ICMP unreachables do not end the trace.
The effective defaults
Run with no options and this is what you get:
Each hop in a one-shot trace uses its own source port from the IANA dynamic range, so a stateful firewall cannot treat the whole trace as one flow and rate-limit it; retries to a silent hop take a fresh port so same-flow duplicate suppression does not hide the hop.
lft -p 192.168.1.1 target treats 192.168.1.1 as an LSRR hop, not a source. IPv6 rejects LSRR entirely.