NTP сервер: как настроить синхронизацию времени на сервере — инструкция для новичка
NTP сервер раздаёт точное время другим устройствам, и без него часы на VPS постепенно уходят вперёд или назад. В материале из блога вы разберёте, как работает протокол, какой публичный сервер выбрать, как настроить синхронизацию в Linux и Windows и как проверить результат. Все команды даны с готовыми значениями для Ubuntu 24.04.

Коротко
- NTP (Network Time Protocol) работает по UDP, порт 123.
- Актуальная версия протокола — NTPv4, описана в RFC 5905.
- Уровень точности источника задаёт stratum от 1 до 15, значение 16 означает «не синхронизирован».
- Для публичных серверов обычно берут пул ru.pool.ntp.org и 3–4 адреса из него.
- На Ubuntu 24.04 удобно ставить службу chrony: пакет весит несколько сотен КБ, настройка занимает около 5 минут.
- Разрешить клиентам из сети 192.168.1.0/24 обращаться к вашему серверу времени можно одной строкой allow в конфиге.
- Рассинхронизация даже на 5 минут ломает работу сертификатов, двухфакторных кодов и журналов.
Что такое NTP сервер и зачем он нужен
NTP (Network Time Protocol, сетевой протокол времени) помогает устройству узнать точное время у другого сервера и подогнать свои часы. Он работает по UDP, порт 123. Сервер, который отвечает на такие запросы, и называют NTP сервером. Как устроены сетевые протоколы в целом, объясняет материал блога про сетевые протоколы.
Часы сами по себе уходят. Кварцевый генератор в железе меняет частоту от температуры и возраста, а в виртуальной машине время ещё и сбивается, когда гипервизор делит процессор между соседями. Ошибка копится, и за недели расхождение может дойти до минут.
Возьмём VPS (виртуальный сервер) на Ubuntu 24.04, который работает без синхронизации. Как только его часы разойдутся с реальными на 5 минут и более, начнутся сбои. Изучите ответы на частые вопросы о VPS, если только выбираете сервер.
Вот что ломается первым:
- сертификаты HTTPS: проверка срока действия даёт ошибку, хотя сертификат рабочий;
- коды 2FA (двухфакторной аутентификации): одноразовые коды не подходят;
- журналы: время событий сдвигается, и разобрать инцидент трудно;
- задания
cron: запускаются не в то время.
Синхронизация по интернету обычно держит точность в пределах 1–50 мс, этого хватает для всех перечисленных задач.
Как работает NTP: stratum, UDP 123 и точность
NTP (Network Time Protocol) работает по схеме «запрос — ответ». Клиент отправляет серверу пакет по протоколу UDP (User Datagram Protocol) на порт 123, а сервер отвечает пакетом с метками времени. По ним клиент вычисляет задержку сети и поправку к своим часам. Порт нужен и для входящих, и для исходящих пакетов. Это отдельный протокол: он не связан с ICMP и командой ping и не использует почтовый порт 25.
Актуальная версия протокола — NTPv4, она описана в RFC 5905 (Request for Comments). Клиент опрашивает сразу несколько источников и сравнивает их ответы. Если один сервер заметно отклоняется от остальных, служба отбрасывает его и берёт время у согласованных. Поэтому указывайте минимум 3–4 источника, а не один.
Ручная установка времени задаёт часы один раз, и дальше они снова уходят. NTP подстраивает их постоянно: плавно ускоряет или замедляет ход, без резких скачков. Через интернет точность обычно составляет от 1 до 50 мс, в локальной сети — единицы миллисекунд. Расхождение в 5 минут и более уже вызывает сбои проверки сертификатов и одноразовых кодов.
Надёжность источника показывает уровень stratum. Вот как читать его значения:
1— сервер напрямую связан с эталонными часами;2— сервер берёт время у stratum 1, каждый следующий уровень добавляет единицу;15— самый дальний от эталона уровень, который ещё считается рабочим;16— узел не синхронизирован, брать у него время нельзя.

Какой NTP сервер выбрать: публичные пулы и адреса
Один адрес — слабое место: если сервер недоступен или отдаёт неверное время, ваши часы уходят вместе с ним. Пул ru.pool.ntp.org решает это: имя отдаёт обычно 4 адреса добровольных серверов, и служба сама отбрасывает неверный источник. В конфиге это одна строка pool ru.pool.ntp.org iburst.
Российский источник берите, если VPS стоит в России и нужен короткий путь до эталонного времени. Для точности от 1 до 50 мс по интернету подойдёт и зарубежный сервер. Адреса серверов имён настраиваются отдельно: посмотрите, какие DNS-адреса бывают, и выберите предпочтительный DNS-сервер.
Рекомендация: основной источник — пул ru.pool.ntp.org, плюс один запасной из таблицы, например ntp.yandex.ru. Так у службы остаётся 5 источников, а не один. Сравните варианты:
| Адрес | Владелец и тип | Для кого подходит |
|---|---|---|
ru.pool.ntp.org |
Пул NTP Pool, серверы добровольцев | Основной выбор для серверов в России |
time.google |
Google, публичный сервис | Запасной источник для любых VPS |
time.cloudflare.com |
Cloudflare, публичный сервис | Запасной источник, серверы за рубежом |
ntp.yandex.ru |
Яндекс, публичный сервис | Российские проекты, запасной источник |
ntp1.vniiftri.ru |
ВНИИФТРИ, государственная служба времени | Тем, кому нужен российский эталонный источник |
time.windows.com |
Microsoft, источник по умолчанию в Windows | Компьютеры на Windows без своей настройки |
Как настроить NTP сервер на Linux (Ubuntu 24.04) через chrony
На VPS с Ubuntu 24.04 удобно ставить службу chrony: пакет весит несколько сотен КБ, а настройка занимает около 5 минут. Она получает время из интернета и при необходимости раздаёт его другим устройствам. Если Linux для сервера вам в новинку, сначала прочитайте материал про Linux для сервера.
Работать будем по SSH (Secure Shell). Как подключиться к серверу из Windows, показано в инструкции по PuTTY. Если сервера ещё нет, подберите VPS под свою задачу.
Отдельно о директиве makestep 1.0 3: если часы расходятся больше чем на 1 секунду, chrony исправит время скачком в течение первых 3 обновлений. Дальше служба подстраивает часы плавно, без резких прыжков. Выполните шаги по порядку:
- Подключитесь к серверу:
ssh user@IP_сервера, подставив свои имя пользователя и адрес. - Обновите список пакетов и установите службу:
sudo apt update, затемsudo apt install chrony. - Отключите встроенную службу времени, чтобы она не конфликтовала с chrony:
sudo systemctl disable --now systemd-timesyncd. - Откройте
/etc/chrony/chrony.confи укажите источник времени:pool ru.pool.ntp.org iburst. Параметрiburstускоряет первые запросы, а пул обычно выдаёт 4 адреса. Рядом оставьте строкуmakestep 1.0 3. - Чтобы сервер раздавал время клиентам, добавьте в тот же файл строку
allow 192.168.1.0/24. Замените сеть на свою. - Откройте порт в брандмауэре UFW (Uncomplicated Firewall):
sudo ufw allow 123/udp. - Перезапустите службу и включите автозапуск:
sudo systemctl restart chrony, затемsudo systemctl enable chrony.
После перезапуска службе нужно несколько секунд, чтобы опросить источники. Как убедиться, что время синхронизировано, разберём в следующих разделах.

Как настроить синхронизацию времени в Windows
Windows получает время от службы Windows Time и по умолчанию обращается к time.windows.com. Сменить источник можно двумя способами: через интерфейс или командной строкой. Если на сервере нет графической оболочки или машин много, быстрее второй вариант.
В интерфейсе откройте «Дата и время», перейдите на вкладку «Время по интернету» и нажмите «Изменить параметры». Впишите ru.pool.ntp.org и нажмите «Обновить сейчас». Если сервер удалённый, подключитесь к нему по протоколу RDP и настройте время в сеансе.
В командной строке от администратора выполните три команды по порядку:
w32tm /config /manualpeerlist:"ru.pool.ntp.org" /syncfromflags:manual /update— задаёт источник;w32tm /resync— запускает синхронизацию сразу;w32tm /query /status— показывает источник, stratum и время последней синхронизации.
NTP (Network Time Protocol) работает по UDP (User Datagram Protocol), порт 123. Разрешите исходящий UDP 123 в брандмауэре Windows, а если компьютер сам раздаёт время, то и входящий. Расхождение от 5 минут уже ломает проверку сертификатов и одноразовые коды.
В домене Active Directory клиенты берут время у контроллера домена. Поэтому внешний источник задавайте на контроллере с Windows Server, лучше указав 3–4 сервера, чтобы служба могла отбросить неверный. Точность синхронизации по интернету обычно составляет от 1 до 50 мс.

Как проверить, что NTP сервер работает
Начните с команды chronyc tracking. В выводе важны три поля: Stratum должен быть от 1 до 15 (16 означает, что узел не синхронизирован), System time показывает смещение часов, а Leap status должен быть Normal. Смещение в пределах 1–50 мс для интернета считается нормой, в локальной сети обычно получается несколько миллисекунд.
Команда chronyc sources -v выводит список источников. Символ * слева отмечает источник, с которым служба синхронизируется сейчас. Если звёздочки нет, а в колонке Reach стоят нули, источник пока не ответил. Первая синхронизация с параметром iburst обычно занимает от нескольких секунд до пары минут.
Общий статус покажет timedatectl status: ищите строку System clock synchronized: yes.
Если сервер раздаёт время клиентам, проверьте ещё три вещи:
sudo ss -ulpn— в списке должна быть строка с портом123и процессомchronyd;sudo ufw status— правило123/udpдолжно быть в статусеALLOW;chronyc sources -vна клиенте — адрес вашего сервера должен появиться в списке.
Если клиент не получает ответ, а на сервере всё в порядке, порт 123/udp, скорее всего, закрыт по пути. Проверьте доступность портов из сети клиента и сравните результат с правилами файрвола.
Частые ошибки при настройке NTP сервера и как их исправить
Большинство проблем с NTP (Network Time Protocol) сводится к пяти ошибкам: закрытый порт, две конкурирующие службы, один источник времени, отсутствие строки allow и путаница с часовым поясом. Ниже разбор на примере VPS с Ubuntu 24.04 и службой chrony.
Закрыт UDP 123 в брандмауэре или у провайдера
NTP работает по UDP, порт 123, и он нужен как входящий, так и исходящий. Если пакеты режутся, команда chronyc sources -v показывает источники без ответа. Откройте порт командой sudo ufw allow 123/udp. Если не помогло, спросите поддержку хостинга, не фильтрует ли он исходящий UDP. Не открывайте порт всему интернету без необходимости: чужие запросы нагружают сервер, подробнее в материале о защите от DDoS-атак.
Одновременно работают systemd-timesyncd и chrony
Две службы одновременно подстраивают одни и те же часы, и результат непредсказуем. Отключите встроенную: sudo systemctl disable --now systemd-timesyncd, затем выполните sudo systemctl restart chrony.
Указан один источник вместо 3–4
Если единственный сервер недоступен или отдаёт неверное время, службе не с чем его сравнить. Задайте в /etc/chrony/chrony.conf строку pool ru.pool.ntp.org iburst: обычно она даёт 4 адреса, и служба отбросит ошибочный.
В локальной сети не прописан allow
Сервер синхронизируется сам, но клиенты не получают время, потому что chrony по умолчанию их не обслуживает. Добавьте в конфиг строку allow 192.168.1.0/24, перезапустите службу chrony и проверьте, что порт 123/udp открыт.
Неверный часовой пояс принимают за рассинхронизацию
Если время отличается ровно на целое число часов, дело в поясе, а не в NTP. Проверьте timedatectl status и задайте нужный пояс: sudo timedatectl set-timezone Europe/Moscow.
chronyc tracking и убедитесь, что timedatectl status показывает System clock synchronized: yes.Пройдите эти пять пунктов по порядку: обычно на проверку уходит около 5 минут, и часы возвращаются в норму.
Альтернативы NTP и для кого свой сервер времени не нужен
Для синхронизации часов есть четыре варианта. systemd-timesyncd — простой SNTP-клиент (Simple Network Time Protocol): он берёт время у одного сервера и не раздаёт его другим. chrony точнее, быстрее сходится после сбоя и умеет работать сервером. Классический ntpd делает то же, но сложнее в настройке и нужен в основном ради старых инструкций.
Четвёртый вариант — синхронизация через гипервизор: гостевая система берёт время у хоста. Она работает без настройки, но зависит от провайдера и иногда конфликтует с chrony. Уточните у хостера, что включено на вашем тарифе.
Для одного VPS собственный сервер времени избыточен. Хватит клиента, который обращается к ru.pool.ntp.org и ещё 2–3 источникам. Точности от 1 до 50 мс достаточно для сайта, почты и проверки сертификатов.
Свой сервер имеет смысл в таких случаях:
- локальная сеть, где нужна точность в единицы миллисекунд;
- десятки машин, которые не стоит направлять с одинаковыми запросами на внешние пулы;
- изолированный контур без выхода в интернет, где время раздаёт один внутренний узел;
- единая шкала времени в журналах для аудита.
Если площадку ещё не выбрали, выберите VPS под вашу задачу, а как устроена аренда, читайте в материале об аренде виртуального сервера.
Частые вопросы
Что такое NTP сервер простыми словами?
Какой порт использует NTP?
Какой NTP сервер указать для России?
Что такое stratum в NTP?
Чем chrony отличается от ntpd?
Как проверить, что время синхронизируется на Linux?
Как настроить NTP в Windows?
Можно ли сделать свой NTP сервер для локальной сети?
Почему время на сервере уходит, хотя часовой пояс верный?
Нужен ли собственный NTP сервер для одного VPS?
Проверьте себя
- Служба chrony запущена и включена в автозапуск.
- В конфиге указан пул ru.pool.ntp.org с параметром iburst.
- Команда chronyc sources -v показывает выбранный источник со звёздочкой.
- timedatectl status выводит System clock synchronized: yes.
- UDP-порт 123 открыт в брандмауэре там, где он нужен.
- Служба systemd-timesyncd отключена, чтобы не конфликтовать с chrony.
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.