Followed your instructions, here's the output:
Looking for host time.apple.com and service ntp
host found : time2.apple.com
Looking for host time.apple.com and service ntp
host found : time.apple.com
13 Apr 18:18:42 ntpdate[229]: no server suitable for
synchronization found
How do you connect to the Internet?
From looking around the Internet, it sounds like your problem is a blocked port. Make sure the firewall is turned off on your computer. And make sure that if you have a router/firewall for Internet sharing, that its firewall is allowing UDP packets through. It should connect to the time server (at Apple) on port 123. The connection back will be to a higher number port, it was around 55900 on my iMac just now.
Here's how I figured how which port: I opened Terminal again, but this time opened two windows. I the first one, I typed this:
<pre class="command">sudo tcpdump -i en0 port 123</pre>Again, I had to give my admin password. I get a couple of lines, then it just sits and waits:
<pre class="command">tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 96 bytes</pre>Then, I switched to another Terminal window and entered a slightly different command:
<pre class="command">ntpdate -d -q time.apple.com</pre>The options here are this:
-d gives enhanced debug output and
-q just queries the server but doesn't actually set the time (so I don't need to use
sudo). When I run that command, I get a bunch of lines in the other window where tcpdump is waiting:
<pre class="command">19:29:26.551255 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:26.590860 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:26.591003 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:26.628405 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:26.628509 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:26.661951 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:26.662055 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:26.697510 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:26.751198 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:26.786127 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:27.751223 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:27.784616 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:28.751239 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:28.785549 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48
19:29:29.751219 IP iMacName.local.55915 > time0.apple.com.ntp: NTPv4, Client, length 48
19:29:29.784047 IP time0.apple.com.ntp > iMacName.local.55915: NTPv4, Server, length 48</pre>You can see in that example that it actually connected to the NTP server at apple on the NTP port
time0.apple.com
.ntp. But it connected back to my computer on port 55915:
iMacName.local
.55915. It would be interesting to see what your computer says. (Just rename the local computer's name if you want, but make sure the port number is still there).
To stop tcpdump waiting for network traffic, just hit the control-"c" key combination.
Finally, one more suggestion, try adding a longer timeout to the
ntpdate command you tried earlier:
<pre class="command">sudo ntpdate -t 4 time.apple.com</pre>The default timeout on OS X is 1 second, so maybe setting to a higher value will help.
charlie