# Точное время на сервере: chrony и синхронизация NTP

> Точное время на VDS через chrony: установка, источники NTP, команды chronyc tracking и sources, типичные проблемы синхронизации часов.

## Зачем серверу точное время

Расхождение системных часов на пару минут ломает вещи, которые редко проверяют вручную: TLS-сертификаты, у которых точка проверки — точное время выпуска и окончания действия; логи, которые становится невозможно сопоставить между несколькими серверами; задания cron, срабатывающие не в то время; репликацию баз данных и распределённые системы, где важен порядок событий. На VDS без гипервизорной синхронизации часы способны «уходить» на секунды в сутки — за месяц накапливается заметная погрешность.

Синхронизацию времени в современных дистрибутивах Linux обеспечивает **chrony** — замена классическому `ntpd` и встроенному `systemd-timesyncd`.

## chrony, systemd-timesyncd и ntpd: разница

| Инструмент | Особенность |
| --- | --- |
| chrony | быстро сходится после перезагрузки, устойчив при нестабильной сети |
| systemd-timesyncd | минимальный клиент, входит в systemd, менее точен |
| ntpd | классическая реализация NTP, сейчас применяется реже |

Ubuntu 20.04+ и Debian 11+ по умолчанию используют `systemd-timesyncd`, но для серверов, где важна точность (базы данных, платёжные системы, распределённые кластеры), стоит поставить chrony — он точнее и быстрее восстанавливает синхронизацию после простоя виртуальной машины.

## Установка и проверка статуса chrony

```
apt install -y chrony
systemctl enable --now chrony
systemctl status chrony
```

Работающий `systemd-timesyncd` стоит отключить, чтобы два клиента не конфликтовали:

```
systemctl disable --now systemd-timesyncd
```

Для CentOS, Rocky Linux и AlmaLinux пакет ставится через `dnf install -y chrony`, а служба называется так же — `chronyd`.

## Настройка источников времени

Конфигурация лежит в `/etc/chrony/chrony.conf` (Debian/Ubuntu) или `/etc/chrony.conf` (RHEL-based). Источники задаются директивой `pool` или `server`:

```
pool 2.pool.ntp.org iburst
pool time.cloudflare.com iburst
```

Флаг `iburst` ускоряет первичную синхронизацию сразу после старта службы. После правки конфигурации служба перезапускается:

```
systemctl restart chrony
```

При настроенном файрволе для NTP открывают исходящий трафик на UDP-порт 123 — жёсткую конфигурацию стоит проверить в правилах, описанных в статье [про настройку файрвола UFW](https://www.zevshost.net/ru/kb/ufw-firewall-vps/).

## Проверка синхронизации времени

Главные диагностические команды chrony:

```
chronyc tracking
chronyc sources -v
chronyc sourcestats
```

`chronyc tracking` показывает текущее расхождение (`System time`) и статус синхронизации (`Leap status: Normal` означает исправную работу). `chronyc sources -v` выводит список источников времени и отмечает звёздочкой (\*) основной. При расхождении больше пары сотен миллисекунд длительное время проверяют сетевую связность с серверами из пула.

## Частые проблемы с синхронизацией времени

- Большое расхождение сразу после старта VDS — обычно устраняется за минуту-две, пока chrony выполняет первую синхронизацию с флагом `iburst`.
- Файрвол блокирует UDP-порт 123 — синхронизация не происходит вовсе, `chronyc sources` показывает источники со статусом «недоступен».
- Часовой пояс задан неверно — отношения к NTP это не имеет, но часто путают: проверяется командой `timedatectl` и правится через `timedatectl set-timezone`.
- На сервере одновременно работают chrony и systemd-timesyncd — конфликт за системные часы устраняют отключением одной из служб.

Для заданий, критичных ко времени — резервного копирования по расписанию или отчётов, — стоит убедиться, что chrony синхронизирован до срабатывания [задания в планировщике cron](https://www.zevshost.net/ru/kb/cron-nastroika-linux/): расхождение в несколько минут сдвигает окно бэкапа или отчёта.

## Итог: чек-лист по времени на сервере

- Установите chrony: `apt install -y chrony`, отключите конфликтующие службы вроде systemd-timesyncd.
- Задайте источники NTP в `/etc/chrony/chrony.conf` с флагом `iburst`.
- Проверяйте синхронизацию командами `chronyc tracking` и `chronyc sources -v`.
- Откройте исходящий UDP-порт 123 в файрволе.
- Добавьте проверку времени в [мониторинг ресурсов VDS](https://www.zevshost.net/ru/kb/monitoring-vds/), чтобы заметить рассинхронизацию раньше, чем она сломает бэкапы или сертификаты.

---

Источник: https://www.zevshost.net/ru/kb/chrony-ntp-vremya-servera/
