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 thentp
package (which includes thentpd
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 thentpd
daemon that was running. Neither am I trying to runntpdate
at boot time, nor (again) do I have thentpd
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 ofntpdate
«. 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
Не для кого не секрет, что множество сервисов и служб зависят от синхронизациии даты и времени. В данном посту хочу рассмотреть основные ошибки службы 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.org / 0.ubuntu.pool.ntp.org / 1.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) нет сетевой доступности из-за проблем на сети или брандмауэра.
Решение:
- Убедиться, что сервер доступен по сети.
- Проверить настройки ntp.conf — наличие соответствующего restrict.
- Проверить состояние сервиса командой service ntp status.
- Проверить настройки брандмауэра — убедиться в наличие правила, которое разрешает 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.