Расхождение системных часов компьютера даже на несколько секунд уже способно вызвать ошибки сертификатов HTTPS, сбои входа в корпоративные домены и рассинхронизацию логов — а причина чаще всего кроется в том, что служба синхронизации времени с эталонным источником (atomic clock sync) либо отключена, либо не может достучаться до сервера точного времени. Проверить состояние службы — первое действие, которое стоит выполнить перед любыми другими настройками.
Под синхронизацией с атомными часами понимают получение точного времени по сети от серверов, которые опираются на первичные эталоны частоты — цезиевые и рубидиевые атомные стандарты. Компьютер не подключается к атомным часам напрямую: он запрашивает время у NTP-сервера (Network Time Protocol), а тот, в свою очередь, синхронизирован с эталоном. В этой статье разберём, как устроен этот механизм, почему часы уходят и что делать, когда автоматическая коррекция не работает.
Как устроена синхронизация времени с атомным эталоном
Основа системы — иерархия источников времени, называемая стратумами. Стратум 0 — это сами первичные эталоны: атомные часы в метрологических лабораториях и навигационные спутники. Стратум 1 — серверы, напрямую подключённые к эталону. Дальше идут серверы стратума 2 и ниже, которые получают время от вышестоящих и раздают его дальше. Домашний компьютер обычно обращается именно к серверам стратума 2–3.
Протокол NTP учитывает задержку сети: клиент отправляет запрос с меткой времени, сервер отвечает, и по разнице меток вычисляется и точное время, и поправка на сетевую задержку. Благодаря этому точность синхронизации через интернет обычно составляет миллисекунды или десятки миллисекунд — для бытовых и большинства рабочих задач этого более чем достаточно.
Упрощённый аналог NTP — протокол SNTP (Simple NTP), который используется в простых устройствах и в стандартной реализации клиента времени Windows. Он не выполняет сложной фильтрации источников, но для коррекции системных часов его хватает.
Почему системные часы отстают или спешат
Аппаратные часы компьютера (RTC) работают на кварцевом генераторе, а кварц неидеален: частота плавает от температуры, возраста кристалла и качества питания. За неделю без синхронизации набегает заметная погрешность. Это нормальное поведение, а не поломка.
Возможные причины, по которым время остаётся неточным даже при включённой синхронизации:
- 🔋 Разряжена батарейка CMOS на материнской плате — часы сбрасываются после каждого отключения питания.
- 🌐 Блокировка UDP-порта 123 файрволом или корпоративной сетью — запросы к NTP-серверу не проходят.
- ⏰ Неверно выбран часовой пояс — время «скачет» на целые часы, и синхронизация тут ни при чём.
- 🖥️ Виртуальная машина получает время от гипервизора, который сам не синхронизирован.
- 🛑 Служба времени остановлена или переведена в ручной режим запуска.
⚠️ Внимание: если часы сбрасываются на одну и ту же дату после каждого выключения, проблема почти наверняка в батарейке CMOS, а не в настройках синхронизации. Замена батарейки — простая операция, но на ноутбуках она может потребовать частичной разборки корпуса; при отсутствии опыта лучше обратиться в сервис.
Проверка и настройка синхронизации в Windows
Сначала проверьте текущее состояние службы. Откройте командную строку от имени администратора и выполните:
w32tm /query /status
В выводе обратите внимание на поля «Источник» и «Стратум». Если источником указан Local CMOS Clock, значит синхронизация с внешним сервером не работает, и система опирается только на аппаратные часы.
Стандартный путь настройки через интерфейс: Параметры → Время и язык → Дата и время. Убедитесь, что переключатель автоматической установки времени включён, и нажмите кнопку синхронизации, если она доступна в вашей версии системы. Точное расположение элементов зависит от версии Windows — при расхождениях сверяйтесь с официальной документацией Microsoft.
Для принудительной синхронизации и смены сервера используются команды:
w32tm /config /manualpeerlist:"pool.ntp.org" /syncfromflags:manual /update
net stop w32time && net start w32time
w32tm /resync
☑️ Проверка синхронизации времени в Windows
Синхронизация времени в Linux и на других устройствах
В большинстве современных дистрибутивов Linux с systemd за синхронизацию отвечает служба systemd-timesyncd, либо более функциональный демон chronyd. Проверить состояние можно командой:
timedatectl status
Строка System clock synchronized: yes означает, что часы синхронизированы. Если стоит no, проверьте, активна ли служба синхронизации и доступен ли NTP-трафик в сети. Состав конфигурации и имена сервисов различаются между дистрибутивами, поэтому точные команды активации берите из документации вашей системы.
На смартфонах и планшетах синхронизация обычно происходит автоматически: через сотовую сеть оператора (NITZ) или через интернет по NTP. Если время на телефоне неверное, первым делом включите в настройках даты и времени автоматическое определение времени и часового пояса.
Выбор сервера точного времени
От выбора сервера зависят и точность, и стабильность синхронизации. Общедоступные варианты различаются по инфраструктуре и географической близости:
| Сервер / пул | Тип | Особенности |
|---|---|---|
pool.ntp.org | Распределённый пул | Автоматически подбирает ближайшие серверы из пула |
time.windows.com | Сервер Microsoft | Используется в Windows по умолчанию |
time.google.com | Сервер Google | Применяет «растянутую» високосную секунду (leap smear) |
| Локальный NTP в сети | Корпоративный | Снижает внешний трафик, задаёт единое время в организации |
⚠️ Внимание: серверы с механизмом leap smear (например, Google) обрабатывают високосную секунду иначе, чем классические NTP-источники. Смешивать оба типа в одной конфигурации не стоит — клиенты могут получать противоречивые значения времени.
Что такое високосная секунда
Из-за неравномерности вращения Земли к всемирному координированному времени (UTC) периодически добавляют корректирующую секунду. Разные системы обрабатывают её по-разному: классический NTP вставляет секунду напрямую, а часть крупных сервисов «размазывает» её на длительный интервал, чтобы избежать сбоев в программах, не ожидающих повторяющегося значения времени.
Типичные проблемы и их диагностика
Когда синхронизация не работает, действуйте по цепочке от простого к сложному. Сначала проверьте сам факт сетевого доступа к серверу: команда w32tm /stripchart /computer:pool.ntp.org в Windows покажет, отвечает ли сервер и какова разница во времени. Если ответа нет — почти наверняка трафик блокируется сетью или файрволом.
Вторая типичная ситуация — большое расхождение времени. Некоторые клиенты отказываются корректировать часы, если разница слишком велика, считая это ошибкой источника. В этом случае вам нужно вручную выставить примерно верное время, после чего автоматическая синхронизация сможет довести его до точного значения.
Третий сценарий — конфликт источников в виртуальных средах. Гипервизор может принудительно подставлять своё время гостевой системе, перебивая NTP. Проверьте настройки интеграционных служб виртуальной машины: параметры зависят от используемой платформы виртуализации.
Зачем нужна точная синхронизация времени
Точность часов — это не эстетика, а функциональное требование. Проверка TLS-сертификатов при открытии сайтов опирается на дату и время: при сильном расхождении браузер начнёт показывать ошибки безопасности. В доменных сетях протокол аутентификации Kerberos отвергает запросы при заметном рассинхроне часов клиента и контроллера домена.
Не менее важна синхронизация для журналирования. Когда логи серверов, сетевого оборудования и приложений пишутся с единым временем, расследование инцидентов занимает минуты вместо часов. Финансовые и торговые системы предъявляют к точности ещё более жёсткие требования, там применяют локальные эталоны и протокол PTP (Precision Time Protocol) с точностью до микросекунд.
Часто задаваемые вопросы
Насколько точна синхронизация через интернет?
Типичная точность NTP через публичный интернет — от единиц до десятков миллисекунд в зависимости от качества канала и удалённости сервера. Для домашних и офисных задач этого достаточно. Там, где нужны микросекунды, применяют локальные источники времени и протокол PTP.
Почему Windows показывает источник «Local CMOS Clock»?
Это означает, что служба времени не получает данные от внешнего NTP-сервера: либо синхронизация не настроена, либо запросы блокируются сетью. Выполните w32tm /resync и проверьте доступность сервера через w32tm /stripchart.
Можно ли синхронизировать часы без интернета?
Да. В локальной сети можно поднять собственный NTP-сервер, который получает время с GPS/ГЛОНАСС-приёмника, а остальные машины синхронизируются с ним. Это стандартное решение для изолированных сетей.
Опасно ли менять время вручную на работающей системе?
Резкий перевод часов назад может нарушить работу программ, опирающихся на монотонное время: планировщиков задач, баз данных, систем резервного копирования. Безопаснее сначала выставить время приблизительно, а точную коррекцию доверить NTP-клиенту, который подводит часы плавно.
Что делать, если время сбивается после каждого выключения ПК?
Проверьте батарейку CMOS на материнской плате — это наиболее вероятная аппаратная причина. Если после её замены проблема осталась, убедитесь, что в операционной системе включена автоматическая синхронизация времени при загрузке.