В статье разберём:
- как проверить текущее время и выбранный часовой пояс;
- как задать правильный timezone через
timedatectl
; - как включить NTP-синхронизацию встроенными средствами Ubuntu;
- как установить и настроить
chrony
для точного времени; - какие ошибки бывают и как их исправить.
Что понадобится
-
Доступ по SSH к серверу (root или sudo).
-
Ubuntu/Debian — примеры команд будем делать на этих дистрибутивах.
-
На CentOS/Rocky/AlmaLinux команды похожи, но с пакетом
chrony
по умолчанию.

Проверяем текущее время и часовой пояс
Для управления временем в Ubuntu используется утилита timedatectl
. Сначала посмотрим, что у нас настроено сейчас:
timedatectl status
Пример вывода:
Local time: Tue 2025-08-26 09:42:11 UTC
Universal time: Tue 2025-08-26 09:42:11 UTC
RTC time: Tue 2025-08-26 09:42:12
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
Что здесь важно:
-
Local time — текущее локальное время (то, что видят приложения и логи).
-
Time zone — установленный часовой пояс (по умолчанию на VPS часто стоит UTC).
-
System clock synchronized — есть ли синхронизация с NTP.
-
NTP service — включена ли служба синхронизации времени.
Если время отличается от реального — значит, нужно сменить часовой пояс и включить синхронизацию.

Изменяем часовой пояс
По умолчанию большинство VPS работает в UTC. Это удобно для разработчиков, но для ведения логов и работы с приложениями часто требуется локальное время (например, Москва или другой регион).
Список доступных часовых поясов
timedatectl list-timezones | less
Пролистайте список или отфильтруйте по городу:
timedatectl list-timezones | grep Europe/Moscow
Устанавливаем часовой пояс
sudo timedatectl set-timezone Europe/Moscow
После этого снова проверяем статус:
timedatectl status
Теперь в поле Time zone должно отображаться Europe/Moscow
или выбранный вами регион.
Важно: выбирайте именно часовой пояс (Europe/Moscow
), а не сдвиг по UTC вручную. Это гарантирует автоматический переход на зимнее/летнее время в тех странах, где он используется.

Включаем синхронизацию времени через NTP
В Ubuntu по умолчанию используется systemd-timesyncd
— лёгкий клиент для синхронизации часов по протоколу NTP. Проверим его статус и включим, если он не активен.
Проверка и включение
# Проверяем статус
timedatectl status
# Включаем синхронизацию
sudo timedatectl set-ntp true
# Проверяем ещё раз
timedatectl status
В поле NTP service должно появиться active
, а System clock synchronized — yes
.

Типичные ошибки
-
System clock synchronized: no — время не синхронизируется.
sudo systemctl status systemd-timesyncd sudo journalctl -u systemd-timesyncd | tail -n 20
Если видите ошибки DNS или соединения — проверьте интернет и
/etc/resolv.conf
. -
NTP service: inactive — служба выключена.
sudo systemctl enable --now systemd-timesyncd
Устанавливаем и настраиваем Chrony (альтернатива NTP-клиенту)
chrony
— современный NTP-клиент/сервер, который быстро сходится по времени и устойчив к нестабильной сети. На VPS он часто точнее systemd-timesyncd
. При установке chrony
рекомендуется отключить systemd-timesyncd
, чтобы не было двух конкурирующих служб.
Установка и базовое включение
# Ubuntu/Debian
sudo apt update
sudo apt install -y chrony
# Отключим timesyncd, чтобы избежать конфликта (если он активен)
sudo systemctl disable --now systemd-timesyncd || true
# Включим chrony
sudo systemctl enable --now chrony
# Проверим статус
sudo systemctl status chrony --no-pager

Проверяем источники и качество синхронизации
# Список источников времени (метки: ^ сервер, * выбранный лучший, + пригодный)
chronyc sources -v
# Диагностика точности и смещения
chronyc tracking
# Сводка состояния
chronyc activity
Что смотреть в выводе:
-
В
chronyc tracking
поле Reference ID/Stratum — указывает опорный сервер и уровень. -
System time (offset) — текущее смещение; стремится к микросекундам/миллисекундам.
-
В
chronyc sources -v
символ * у лучшего источника, + — дополнительные годные.

Настройка собственных NTP-серверов (опционально)
По умолчанию Ubuntu использует пул ntp.ubuntu.com
и/or pool.ntp.org
. Вы можете задать корпоративные сервера в /etc/chrony/chrony.conf
:
sudo nano /etc/chrony/chrony.conf
# Пример (замените на свои):
# server time.cloudflare.com iburst
# pool pool.ntp.org iburst maxsources 4
# Сохраняем и перезапускаем
sudo systemctl restart chrony
chronyc sources -v
Типичные ошибки и их решения
-
Нет пиров (источников):
chronyc activity # Пусто? Проверьте сеть и DNS: ping -c 1 1.1.1.1 || ping -c 1 8.8.8.8 ping -c 1 pool.ntp.org || echo "Проблемы с DNS?" cat /etc/resolv.conf | sed -n '1,40p'
-
Конкурирующие службы — активны и
timesyncd
, иchrony
:systemctl is-active systemd-timesyncd && sudo systemctl disable --now systemd-timesyncd sudo systemctl restart chrony
-
Большое смещение времени (offset очень высокий) — chrony долго «сходится»:
# Разрешим шаговую коррекцию при старте (maxupdateskew/ makestep уже есть в дефолтной конфигурации Ubuntu) grep -n 'makestep' /etc/chrony/chrony.conf # Если строки нет, добавьте, затем перезапустите: # makestep 1.0 3 sudo systemctl restart chrony
Директива
makestep 1.0 3
позволяет выполнить «скачок» времени, если расхождение >1 сек в первые 3 обновления после запуска chrony.
Итоги
-
Мы проверили текущее время и убедились, какой часовой пояс установлен.
-
Задали правильный часовой пояс через
timedatectl set-timezone
. -
Включили синхронизацию времени встроенным сервисом
systemd-timesyncd
. -
При необходимости установили и настроили
chrony
для более точной синхронизации. -
Разобрали частые ошибки и способы их устранения.
Что дальше: стоит проверить корректность времени после перезагрузки VPS, а также убедиться, что службы, зависящие от точного времени (TLS-сертификаты, логи, cron), работают без сбоев.