Ошибка no server suitable for synchronization found

My clock is off, so I would like to synchronize it using ntpdate. I tried several different NTP servers, but for some reason I always get the following error message:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 12:27:35 ntpdate[1258]: no server suitable for synchronization found
$ sudo ntpdate pool.ntp.org
4 Mar 12:27:50 ntpdate[1267]: no server suitable for synchronization found
$ sudo ntpdate de.pool.ntp.org
4 Mar 12:28:01 ntpdate[1273]: no server suitable for synchronization found
$ sudo ntpdate us.pool.ntp.org
4 Mar 12:28:12 ntpdate[1276]: no server suitable for synchronization found

Related questions

I have looked through related questions, but none solve my problem:

  • Unable to synchronize time using NTP — this guy gets a different error than I; his problem was a conflict with the ntpd daemon. I do not have the ntp package (which includes the ntpd daemon) installed at all.
  • How to force a clock update using ntp? — this guy’s problem is that the ntpdate command wouldn’t properly work at boot time when he put it into his /etc/rc.local, and the problem was similarly a conflict with the ntpd daemon that was running. Neither am I trying to run ntpdate at boot time, nor (again) do I have the ntpd daemon installed.
  • Unable to sync time using `ntpdate`, error: «no server suitable for synchronization found» — this is my error alright, but the accepted answer is basically «Use ntpd instead of ntpdate«. Aaarggh…

Things I have tried

I installed the ntp package

…and tried using the ntpd daemon instead of the ntpdate utility. It won’t sync my time either; the daemon starts fine, but my clock remains off. I even tried using the exact /etc/ntp.conf from the accepted answer in the latter post, and restarting the daemon. No go. Anyway, I don’t want to use the daemon. I am perfectly aware that ntpdate is considered «deprecated», and it is advised to use ntpd -q instead. Also see here:

  • ntpd vs ntpdate: pros and cons

But since ntpd doesn’t work for me either, the problem lies elsewhere. And I find that I would prefer not having to install any extra packages just for synchronizing the clock. ntpdate comes pre-installed with Ubuntu, and it should work just fine. So I uninstalled the ntp package again.

Maybe port 123 is blocked?

From this post:

  • «no server suitable for synchronization found» error when trying to run `ntpdate`

…I got the idea that port 123 may be blocked from my computer / network at my work place. Indeed,

$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE  SERVICE
123/udp closed ntp 
...
$ sudo ufw allow 123/udp
Rules updated
Rules updated (v6)
$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE SERVICE
123/udp open  ntp
...

But still:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 13:06:16 ntpdate[4361]: no server suitable for synchronization found

Even with the -u option, which tells ntpdate to use an unprivileged port for syncing (instead of port 123) which is certainly not blocked from my work place:

$ sudo ntpdate -u ntp.ubuntu.com
4 Mar 13:06:28 ntpdate[4427]: no server suitable for synchronization found

Maybe the strata are too high?

Lastly, from this post over at serverfault:

  • ntpdate -d Server dropped Strata too high

…I thought that maybe the strata from the NTP servers are too high. They aren’t, though. Let’s see a little more debugging info:

$ sudo ntpdate -dv ntp.ubuntu.com
 4 Mar 13:12:24 ntpdate[4523]: ntpdate 4.2.6p5@1.2349-o Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host ntp.ubuntu.com and service ntp
host found : golem.canonical.com
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
91.189.89.199: Server dropped: no data
91.189.94.4: Server dropped: no data
server 91.189.89.199, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.89.199], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041ae.e6166441  Tue, Mar  4 2014 13:12:30.898
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

server 91.189.94.4, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.94.4], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041af.1948fc50  Tue, Mar  4 2014 13:12:31.098
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

 4 Mar 13:12:33 ntpdate[4523]: no server suitable for synchronization found

Pfeeewww… this was a long one, sorry for that. I’m stumped. Any clues?

Update: additional infos

No matter whether an NTP server HOSTNAME figures in /etc/ntp.conf, and no matter whether the ntpd service is running or not, whenever I run sudo ntpdate -u HOSTNAME, I get no server suitable for synchronization found. Same thing when the ntpd service is not running and I omit the -u option. When the ntpd service is running and I omit the -u option, I instead get the NTP socket is in use, exiting.

Also:

$ timedatectl status
      Local time: Wed 2014-03-05 13:11:54 CET
  Universal time: Wed 2014-03-05 12:11:54 UTC
        Timezone: Europe/Berlin (CET, +0100)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2014-03-30 01:59:59 CET
                  Sun 2014-03-30 03:00:00 CEST

But the UTC time is not correct here. Right now UTC time is 11:11, not 12:11.

And:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds

Network Time Protocol (NTP) synchronizes the date and time with the system clock time. This protocol is useful for managing time during packet switching and latency rate. During packet transmission between server and host, an error “no server suitable for synchronization found” is shown.

This guide will demonstrate the possible reasons and solutions for this error with the following supported content:

  • Reason 1: Blocking NTP Packets from Server
  • Solution 1: Install ntpdate Package
  • Solution 2: Install htpdate Package

Let’s start with the first reason.

Reason 1: Blocking NTP Packets From Server

The prominent reason is that the NTP packets are blocked from the server end. Due to this, these packets do not participate in synchronizing dates and times with the current operating system.

Solution 1: Install ntpdate Package

The best solution to resolve the error is to install the ntpdate package in the operating system. It installs all required dependencies regarding the ntpdate package. The command for installing the ntpdate package is provided below:

$ sudo apt install ntpdate                       # Debian/Ubuntu
$ sudo yum install ntp                           # CentOS/RHEL
$ sudo dnf install ntp                           # Fedora

After executing the above command, the “ntpdate” with all dependencies has been successfully installed in the system.

Check the Active Status of NTP Services

For checking the active status of NTP services, the “timedatectl” command is utilized with the “status” flag as below:

The output shows that the “NTP service” is installed in the current operating system.

Verify NTP Services

To check the NTP services, the “pool.ntp.org” is a virtual cluster for time servers. For instance, the below script will display the transmission and reception of packets from the host server:

$ ntpdate -d pool.ntp.org

Solution 2: Install htpdate Package

To resolve the error, users can install an alternative package named “htpdate” similar to the “ntpdate”. The package “htpdate” retrieves the date and time from a remote server over the network. The command that installs the “htpdate” package in the current system is mentioned below:

For RHEL:

For Arch Linux and Fedora:

$ sudo snap install htpdate-daemon

For Ubuntu and LinuxMint:

$ sudo apt install htpdate

After the execution of the above command, the “htpdate” will be installed in the current system to execute any operation.

Adjust Time Smoothy

It synchronizes the computer time with the web server. To do so, the “a” option is used that adjusts the time smoothly:

$ sudo htpdate -a -l www.linux.org

These are all the reasons and solutions for the error “no server suitable for synchronization found”.

Conclusion

The error “no server suitable for synchronization found” is caused by blocking NTP packets from the server or being unable to synchronize time with system clock time. This error can be resolved by installing the “ntpdate” package following the commands mentioned in this post. Additionally, users can install the “htpdate” package as an alternative to accessing the host services. This guide has explained all possible solutions to encounter the error mentioned above.

Перейти к содержанию

На чтение 1 мин Опубликовано 28.03.2017

https://itsecforu.ru

Не для кого не секрет, что множество сервисов и служб зависят от синхронизациии даты и времени. В данном посту хочу рассмотреть основные ошибки службы Network Time Protocol.

Рассмотрим это на примере Linux.

Данная статья подойдет и для Astra Linux 1.3-1.5 Если при выводе команды ntpdate следующее:

# ntpdate 194.150.168.168 
28 Mar 18:15:44 ntpdate[22115]: no server suitable for synchronization found

Проблема заключается в том, что мы не можем добраться до сервера. Вероятно что-либо “отрезает” нам порт 123. Самый простой выход из ситуации запустить ntpdate с ключом -u:

# ntpdate -u 194.150.168.168 
28 Mar 18:20:18 ntpdate[22359]: step time server 194.150.168.168 offset 2.195031 sec

Далее не менее распространенная ошибка ntp:

# ntpdate 194.150.168.168 
28 Mar 18:25:31 ntpdate[23214]: the NTP socket is in use, exiting

Как мы видим сокет уже занят, поэтому мы просто остановим ntpdate , повтроим команду и запустим его вновь:

# service ntpd stop
# ntpdate 194.150.168.168 
# service ntpd start

Ну и на крайний случай можно добавить время вручную:

# date --set "05/13/2010 09:45:00" 

Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

Обновлено и опубликовано Опубликовано: 12.01.2018

Тематические термины: NTP, Linux, Ubuntu.

Следить за актуальностью времени на всех узлах локальной сети удобнее с помощью сервера синхронизации времени NTP. В инструкции рассказано об установке и настройке такого сервера на Linux Ubuntu Server 16.04. Данное руководство можно использовать для настройки ntpd на любом другом Linux (например, Debian или CentOS).

Установка
Настройка
Тестирование
Настройка клиента Linux
    ntp
    ntpdate
Настройка клиента Windows
Возможные ошибки

Установка сервера

Устанавливаем ntp сервер следующей командой:

apt-get install ntp

Разрешаем автозапуск и стартуем сервис:

systemctl enable ntp || update-rc.d ntp defaults

systemctl start ntp || service ntp start

Настройка NTP

Открываем файл с настройками:

vi /etc/ntp.conf

Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:

pool ru.pool.ntp.org iburst
server ntp2.vniiftri.ru iburst prefer
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
server 127.127.1.0

iburst — отправлять несколько пакетов (повышает точность); ru.pool.ntp.org0.ubuntu.pool.ntp.org1.ubuntu.pool.ntp.org — адреса серверов, с которыми наш сервер будет сверять время; server — указывает на выполнение синхронизации с сервером, а не пулом серверов; prefer — указывает на предпочитаемый сервер. server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.

Настраиваем безопасность:

restrict default kod notrap nomodify nopeer noquery
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
restrict ::1

* где:

  • restrict default — задает значение по умолчанию для всех рестриктов.
  • kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
  • notrap — не принимать управляющие команды.
  • nomodify — запрещает команды, которые могут вносить изменения состояния.
  • nopeer — не синхронизироваться с хостом.
  • noquery — не принимать запросы.
  • restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
  • IP адреса 127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.

Настройки по умолчанию могут быть разные для IPv4 и IPv6:

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

Перезапускаем сервис:

systemctl restart ntp || service restart ntp

Если используется брандмауэр, добавляем правило:

iptables -I INPUT 1 -p udp —dport 123 -j ACCEPT

или с помощью ufw:

ufw allow in on enp2s0 to any port 123 proto udp

* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.

Дополнительные настройки

Настройка файла хранения логов:

logfile /var/log/ntp.log

Тестирование

Проверить состояние получения эталонного времени можно командой:

ntpq -p

Мы должны увидеть, примерно, следующее:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ru.pool.ntp.org .POOL.          16 p    —   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    —   64    0    0.000    0.000   0.000
*91.189.94.4     17.253.34.253    2 u   58   64  377   55.802    3.790   0.412
-91.189.91.157   132.246.11.231   2 u   56   64  377  113.456   -1.746   0.334
+91.189.89.198   192.53.103.108   2 u    1   64  377   54.595    4.229   0.608
+91.189.89.199   17.253.34.253    2 u   61   64  377   54.061    2.637   0.557

* где:

  • remote — адрес сервера времени, с которым синхронизируется наш сервер;
  • refid — вышестоящий сервер (с которым сервер из графы выше получает время);
  • st — уровень сервера (stratum);
  • t — пир (unicast или multicast);
  • when — когда последний раз сверялось время;
  • poll — периодичность синхронизации с этим сервером;
  • reach — состояние работоспособности. Если удалось произвести синхронизации восемь раз в подряд становится равным 377;
  • delay — время задержки;
  • offset — разница между нашим временем и временем на сервере; положительное — наши часы спешат, отрицательное — отстают;
  • jitter — смещение времени на удаленном сервере;
  • * — с этим сервером синхронизирует время наш ntpd;
  • + — сервер можно использовать для сверки часов;
  • — — не рекомендован для синхронизации;
  • x — не доступен.

Проверить отдачу времени сервером можно введя команду на другом Linux:

ntpdate 192.168.0.15

Правильный ответ имеет следующий вид:

ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec

* время было рассинхронизировано на 0.017657 секунд.

Отобразить текущее время можно командой:

date

Если после синхронизации время некорректно, настраиваем правильный часовой пояс:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* московское время (GMT+3).

Настройка клиента Linux

Для клиентов можно выбрать 2 стратегии настройки — с помощью ntp или утилиты ntpdate.

NTP

Устанавливаем ntp:

Ubuntu / Debian:

apt-get install ntp

CentOS / Red Hat:

yum install ntp

В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:

server 192.168.0.15

Остальные pool и server удаляем или комментируем.

Перезапускаем NTP:

systemctl restart ntp || service restart ntp

ntpdate

Утилита командной строки выполняет разовую синхронизацию. Чтобы автоматизировать процесс, добавляем задание в cron:

crontab -e

0 0 * * * /usr/sbin/ntpdate 192.168.0.15

* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.

Настройка клиента Windows

В командной строке выполняем:

w32tm /config /manualpeerlist:»192.168.0.15,0×8″ /syncfromflags:manual /update

Некоторые ошибки

1. the NTP socket is in use, exiting

Как правило, данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.

Причина: NTP сокет в системе уже занят, как правило, ntpd.

Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.

2. Connection refused

Возникает при попытке выполнить команду ntpq -p.

Причина: нет разрешения на обращение к серверу.

Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.

3. no server suitable for synchronization found

Ошибка появляется при попытке синхронизировать время с другим сервером синхронизации.

Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.

Решение:

  1. Убедиться, что сервер доступен по сети.
  2. Проверить настройки ntp.conf — наличие соответствующего restrict.
  3. Проверить состояние сервиса командой service ntp status.
  4. Проверить настройки брандмауэра — убедиться в наличие правила, которое разрешает UDP порт 123.

1 ntpdate — утилита синхронизации времени в ОС

Скачать документ

В РЕД ОС синхронизировать время можно следующими основными способами:

  • вручную при помощи утилиты ntpdate;
  • автоматически при помощи сервиса ntp.

Программа ntpdate — позволяет разово синхронизировать локальное время с эталонным сервером времени в интернете. Подобных эталонов существует достаточно много. Для примера можно воспользоваться одним из них — pool.ntp.org.

Запускаем синхронизацию времени:

ntpdate pool.ntp.org

Утилита провела синхронизацию, в результате которой к системному времени было добавлено число секунд, необходимое для приближения к эталонному. Если в результате работы синхронизации возникает ошибка: «no server suitable for synchronization found», то попробуйте в работе утилиты использовать непривилегированный порт. По-умолчанию ntpdate работает по 123 порту. Если он закрыт на фаерволе, то помочь в синхронизации поможет следующий параметр:

ntpdate -u pool.ntp.org

Если у вас запуск ntpdate завершается ошибкой — «the NTP socket is in use, exiting», значит у вас уже установлена и запущена служба ntpd, которая заняла необходимый udp-порт, необходимый для работы ntpdate.

Сервер времени ntp использует в своей работе одноименный протокол — Network Time Protocol, которому для работы необходим UDP-порт 123. Так что перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.

Устанавливаем сервер ntp:

Если вы используете РЕД ОС 7.1 или 7.2, выполните команду:

yum -y install ntp

Если вы используете РЕД ОС 7.3 и старше, выполните команду:

dnf -y install ntp

Теперь отредактируем файл конфигурации /etc/ntp.conf, удалив все лишнее:

cat /etc/ntp.conf 

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
 
server 0.redos.pool.ntp.org iburst
server 1.redos.pool.ntp.org iburst
server 2.redos.pool.ntp.org iburst
server 3.redos.pool.ntp.org iburst
 
disable monitor
logfile /var/log/ntp.log

Параметры:

server Список серверов для синхронизации времени.
Driftfile Задает адрес файла, в котором хранится история изменений времени во время синхронизации. Если по каким-то причинам синхронизация времени с внешними источниками станет невозможна, служба времени изменит системные часы в соответствии с записями в этом файле.
Restrict 127.0.0.1

Указывает, что пользоваться нашим сервером времени можно только непосредственно с локального интерфейса. Если вам необходимо разрешить другим компьютерам в вашей локальной сети синхронизировать время с текущей машины, то укажите в данном параметре адрес вашей сети, например:

restrict  192.168.10.0 mask 255.255.255.0

restrict default nomodify notrap nopeer noquery   — Параметры указывают на то, что клиентам данного сервиса времени запрещено изменять его настройки, получать его статус. Они могут только забрать с него значения точного времени.

disable monitor — Данный параметр повышает безопасность, предотвращая использования одной из уязвимостей сервиса ntpd, которую можно использовать для проведения DDoS атак.

Logfile — Указывает путь к файлу с логами сервиса.

После завершения редактирования файла настроек запускаем службу синхронизации времени:

systemctl start ntpd

Проверяем запустился ли сервер:

netstat -tulnp | grep 123

Все в порядке, служба слушает положенный порт 123. Проверим на всякий случай системные логи используемой ОС:

cat /var/log/messages | grep ntpd
cat /var/log/ntp.log

Теперь настроим автозапуск ntp вместе с загрузкой используемой ОС:

systemctl enable ntpd

Наблюдать за работой службы ntp можно с помощью команды:

ntpq -p

Данные вывода:

remote

Адрес удаленного эталона времени, с которого была синхронизация.

Refid Указывает, откуда каждый эталон получает точное время. Это могут быть другие сервера времени, система GPS и другое.
St Уровень (Stratum) это число от 1 до 16, которое указывает на точность эталона. 1- максимальная точность, 16 — сервер недоступен. Уровень вашего сервера будет равен уровню наименее точного удаленного эталона плюс 1.
poll Интервал в секундах между опросами.
Reach Восьмеричное представление массива из 8 бит, отражающего результаты последних восьми попыток соединения с эталоном. Бит выставлен, если удаленный сервер ответил.
Delay Время задержки ответа на запрос о точном времени.
Offset

Разница между вашим и удаленным сервером

jitter

Дисперсия (Jitter) — это мера статистических отклонений от значения смещения (поле offset) по нескольким успешным парам запрос-ответ. Чем меньше значение дисперсии, тем лучше, поскольку позволяет точнее синхронизировать время.

Дата последнего изменения: 09.01.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
  • Ошибка no server jvm at
  • Ошибка no rule to make target all stop
  • Ошибка no response from gameranger server
  • Ошибка no remote refs found similar to flathub
  • Ошибка no option to boot to