Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So here's the issue. I have two different computers behind the same network. Both have the same gateway, IP address prefixes, etc.

Computer 1: Windows XP IP

This computer can ping and tracert out of the network to another computer I'm trying to reach

Computer 2: Linux (debian) IP

This computer can ping that out-of-network computer, but cannot traceroute to it.

This makes me believe that it is nothing to do with firewalls, but with the OS configuration.

The output of the route command:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface     *        U     0      0        0 eth0     *          U     0      0        0 eth0
default         UG    0      0        0 eth0

Any ideas as to what the issue might be?

share|improve this question
Are these computers both behind a router that does NAT? Or do they have a public address of their own? – Jasper Jul 28 '10 at 17:42
They are both behind a router that does NAT. The router is the same, though. – Sagar Jul 28 '10 at 18:00
Could you include the error message that you get when you try to traceroute from the linux system? – Daniel Lawson Jul 29 '10 at 2:02
There is not particular error. It is just the normal '* * *' timeout. – Sagar Jul 29 '10 at 14:31
up vote 10 down vote accepted

That's because Windows and Linux implement traceroute differently.

On Windows, it uses ICMP Echo packets with varying time-to-live settings to figure out intermediary hops.

On Linux, it uses UDP packets with varying time-to-live settings to figure out intermediary hops.

Some networks allow one or both, or none. Networks that allow ICMP but not UDP will behave differently. Ping on linux uses the same ICMP Echo packets that Windows uses, which explains why that works but not Traceroute.

Also, different traceroute programs behave differently. Not all linuxes use UDP for that. So this is not universal.

share|improve this answer
+1, even if it's not actually related to this issue that's definitely something I didn't know. – Massimo Jul 28 '10 at 17:59
Thanks! Did not know that. I'll have to find out if UDP blocking is what is causing the issue. – Sagar Jul 28 '10 at 18:01
It turns out UDP is blocked. – Sagar Aug 3 '10 at 15:38
FYI on linux you can throw the -I option and it will use ICMP instead of UDP. – user186572 Aug 21 '13 at 23:50

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.