ntpdate: no server suitable for synchronization found

Your hosting provider is blocking ntp packets. This heavy handed approach has been implemented by some ISPs in response to the DDoS attacks. You can see that ntpdate is sending the packets fron the ntpdate -vd :

transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)

I would contact your ISP and ask if they are blocking external ntp requests and if they have a local server that you can use for time sync.

There are a couple more obscure possibilities but it is tough to rule them out since you have not posted any logs from syslog.


This is not an ntp answer, however...

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

this and the curl version here.


Use htpdate

If ntp transmission is blocked in your network, install htpdate. It syncs time over http protocol. Accuracy will be withing 0.5 secs, according to man page.

sudo apt-get install htpdate
sudo htpdate -a google.com

htpdate service will start when you install the package. Time will be update immediately if there is internet connection.


I had the same issue and this is how I solved it. I have give a detailed answer from top to bottom. You might want to skip to middle of my answer or just refer the screenshots below for understanding it in a glance.

First install ntpdate(Obviously you have done this)

sudo apt-get install ntpdate

NEXT You need to configure ntp with servers as follows:

You should at least set following parameter in /etc/ntp.conf config file: server

For example, open /etc/ntp.conf file using nano text editor:

sudo nano /etc/ntp.conf

Locate server parameter and if it is empty set it as follows:

server pool.ntp.org

But usually In ubuntu already some servers are prewritten which might be

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

enter image description here

Then Save the file and restart the ntpd service:

sudo /etc/init.d/ntpd start

You can synchronize the system clock to an NTP server immediately with following command:

sudo ntpdate pool.ntp.org

or just run already servers are defined

sudo ntpdate 0.ubuntu.pool.ntp.org

or other servers that are defined using server

generally

sudo ntpdate <one of the servername in /etc/ntp.conf>

BUT after that there is a chance you get the Error NTP socket in use as shown below:

enter image description here

In that case just run

ntpdate -u pool.ntp.org 

to update when ntp deamon is running

OR just stop the deamon,update and start it again as follows:

sudo ntpdate pool.ntp.org
sudo service ntp stop
sudo ntpdate pool.ntp.org
sudo service ntp start

and you will get

enter image description here


Similar to Alex's answer, this worked for me for getting around the ntp port being firewalled:

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"