I'm having a problem with traceroute on Linux. The command isn't working but tracert does work fine. Both commands are actually running the traceroute command as tracert is just a symbolic link to traceroute.

Why is it not working as expected?

Here's a screenshot showing the behavior:

traceroute not working, just tracert

  • 2
    There may be other programs in your shell's search path with one or both names. Try ./tracert, ./traceroute (to invoke the executables in your current location) and which tracert and which traceroute to see what is actually run when you don't specify the location.
    – IMSoP
    Aug 29, 2013 at 23:34

2 Answers 2


The program is looking at argv[0] (its name) and invoking different behavior based on which command (tracert or traceroute) you're using.

If you execute the program tracert then argv[0] is tracert.

So two commands, same executable, different paths through the code invoking different behavior.

On Ubuntu Linux:

   traceroute6 is equivalent to traceroute -6
   tracert is equivalent to traceroute -I
   tcptraceroute is equivalent to traceroute -T
  • Certainly a possibility, though it would be interesting to know which options are being flipped to explain the particular difference in behaviour.
    – IMSoP
    Aug 29, 2013 at 23:35
  • Good idea to add that info -- done!
    – dcaswell
    Aug 29, 2013 at 23:50
  • Fixed, same as traceroute -I.
    – justcode
    Aug 30, 2013 at 1:06

Add traceroute to your system PATH:

$echo $PATH

$ which traceroute

does xxxxxxxx contains traceroute? Then just make a soft link.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .