Открыть сервисСервис

Синхронизация времени на компьютере

Синхронизация времени на компьютере — это процесс приведения системного часов компьютера к эталонному времени с помощью внешних источников, как правило сетевых серверов протокола NTP. Точная синхронизация необходима для корректной работы протоколов аутентификации, логов, распределённых систем, криптографических сертификатов и многих приложений.

Зачем нужна синхронизация времени

Системные часы компьютера ведутся с помощью кварцевого резонатора, который имеет собственную погрешность. Даже качественный кварц уходит на десятки миллисекунд в сутки, а дешёвые модули — на секунды. Без внешней коррекции часы компьютера будут отклоняться от реального времени.

Точное время критично в ряде сценариев:

  • Криптографические сертификаты SSL/TLS имеют срок действия; при отклонении часов за пределы этого срока соединения могут отклоняться.
  • Протокол Kerberos требует синхронизации в пределах 5 минут между клиентом и контроллером домена.
  • Логирование событий — при расследовании инцидентов важна корректная хронология.
  • Распределённые системы и базы данных — при кластеризации и репликации от порядка событий зависит целостность данных.
  • Криптовалюты и блокчейн — тайминг транзакций напрямую зависит от точности времени.
  • Планировщик задач — cron и аналоги срабатывают по системным часам.

Протоколы синхронизации

NTP

Network Time Protocol (RFC 5905) — основной протокол синхронизации времени в интернете, разработан Дэвидом Миллсом в 1985 году. Работает поверх UDP (порт 123), обеспечивает точность от долей миллисекунды до десятков миллисекунд в зависимости от задержки сети. NTP использует иерархию серверов, называемую стратумами: серверы стратума 1 синхронизируются с эталонными источниками (атомные часы, GPS), стратум 2 — со стратумом 1 и так далее.

SNTP

Simple NTP (RFC 4330) — упрощённая версия NTP, реализующая тот же формат пакетов, но с упрощённым алгоритмом выбора источника. Используется там, где не требуется высокая точность: в домашних роутерах, встраиваемых устройствах, настольных ОС по умолчанию.

PTP

Precision Time Protocol (IEEE 1588) — обеспечивает точность до микросекунд и наносекунд, применяется в промышленных сетях, телекоммуникациях, финансовых системах. Требует поддержки оборудованием.

Синхронизация в Windows

В Windows служба Windows Time (W32Time) синхронизирует часы автоматически. По умолчанию клиент обращается к серверу time.windows.com.

Ручная синхронизация выполняется через графический интерфейс: «Параметры» → «Время и язык» → «Дата и время» → «Синхронизировать сейчас». В более ранних версиях Windows аналогичная опция находится в панели управления.

С помощью командной строки:

`` w32tm /resync w32tm /query /status w32tm /query /peers ``

Для смены источника:

`` w32tm /config /manualpeerlist:"time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /update ``

Параметр 0x8 означает «SpecialInterval 0x8» — использование специального интервала опроса.

Синхронизация в Linux

В современных дистрибутивах Linux служба systemd-timesyncd обычно отвечает за синхронизацию по умолчанию. Для настройки редактируется файл /etc/systemd/timesyncd.conf:

`` [Time] NTP=pool.ntp.org ntp1.stratum2.ru FallbackNTP=ntp.org ``

Затем службы перезапускаются:

`` systemctl restart systemd-timesyncd timedatectl show-timesync ``

Для более точной синхронизации используется демон chrony (пакет chrony), который лучше работает при нестабильном соединении и в виртуальных машинах. Альтернатива — ntpd из пакета ntp.

Управление часовым поясом:

`` timedatectl set-timezone Europe/Moscow timedatectl set-ntp true ``

Синхронизация в macOS

В macOS служба com.apple.timed синхронизирует время автоматически. Ручная настройка доступна через «Системные настройки» → «Дата и время» → «Синхронизировать автоматически» с указанием сервера. Для управления из терминала используется утилита sntp:

`` sntp -sS time.apple.com ``

Популярные NTP-серверы

СерверПримечание
pool.ntp.orgГлобальный добровольческий пул, рекомендуется по умолчанию
time.windows.comСервер Microsoft, используется Windows по умолчанию
time.apple.comСервер Apple
ntp.stratum2.ruПубличный российский NTP-сервер
ntps1.niifhm.ruСервер НИИ ФХМ, Москва

Проверка текущего времени и статуса синхронизации

В Windows:

`` w32tm /query /status ``

В Linux:

`` timedatectl status chronyc tracking ``

Команда timedatectl status показывает локальное время, часовой пояс, состояние NTP и смещение относительно источника.

Типичные проблемы

  • Служба синхронизации отключена — в Windows служба Windows Time может быть остановлена, в Linux — masked.
  • Порт 123 закрыт — корпоративные файрволы часто блокируют UDP-трафик NTP.
  • Виртуальные машины — при сне и пробуждении хоста часы гостевой ОС могут сильно отклоняться; для коррекции используется механизм гостевых агентов времени (VMware Tools, Hyper-V Integration Services).
  • Слишком частые обновления — драйв кварцевого резонатора при резкой коррекции вызывает «скачки» времени, что ломает логи; рекомендуется использовать плавную коррекцию (slew), а не скачок (step).

Историческая справка

До появления NTP время синхронизировали по радиосигналу (DCF77 в Германии, WWV в США) или вручную. В СССР и России для точного времени использовались сигналы часов на длинных волнах. С развитием интернета NTP стал стандартом де-факто, а с распространением GPS и спутниковых систем появились аппаратные источники точного времени для серверных.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru