The traditional traceroute command use either UDP or ICMP ECHO packets with TTL increments of one and one of the major drawback in using traceroute is the packets sends out end-up being filtered in modern firewalls making it impossible to completely trace the path to the destination. Tcptraceroute helps us to solve this problem by routing its packets using TCP by sending out TCP SYN packets instead of UDP or ICMP ECHO packets, tcptraceroute is able to bypass the most common firewall filters.
This tools is not included with any of the Linux distributions so you have install it separately by either source or rpm. Source can be found here. And Tcptraceroute RPM for centOS / RHEL can be found here.
Tcptraceroute can do many magic and for more help, please vist here. I have added some more options below and you can see if will works nearly 50% faster than the traditional traceroute command.
To start with tcptraceroute just use
- # tcptraceroute <ip> or < domainname>
Do not resolve IP addresses to their domain names (Excludes RDNS and saves more time)
- # tcptraceroute -n <ip> or < domainname>
Use the ICMP ECHO for tracerouting
- # tcptraceroute -I <ip> or < domainname>
Using TCP SYN for tracerouting (defalut)
- # tcptraceroute -T <ip> or < domainname>
Use UDP datagram (default) for tracerouting
- # tcptraceroute -U <ip> or < domainname>
Specify a network interface to operate with (if you have more interface)
- # tcptraceroute -i eth1 <ip> or < domainname>
Use source src_addr for outgoing packets (route packets via the specificed ip)
- # tcptraceroute -s <ip> <ip> or < domainname>
Useful Links :
Tcptraceroute Home page
Tcptraceroute rpm download
Tcptraceroute for windows