Проверка расхождения часов

Ваше устройство ведёт собственное время, и оно редко бывает точным. Эта страница измеряет разницу с нашими эталонными часами и говорит, достаточно ли она велика, чтобы создать проблемы.

Эталонное время

--:--:--

 

Это устройство

--:--:--

Сравниваем часы…

Ваш браузер пять раз подряд запрашивает время у нашего сервера и оставляет обмен, который вернулся быстрее всех. Часы сервера синхронизируются с атомными часами по NTP. Передаются только отметки времени, ничего не сохраняется.

Почему часы устройства уходят

Внутри каждого компьютера и телефона маленький кварцевый кристалл колеблется с известной частотой, а счётчик превращает эти колебания в секунды. Кристалл дешёвый и чувствителен к температуре, поэтому типичное устройство, предоставленное самому себе, убегает вперёд или отстаёт на секунду-две в сутки. За месяц без коррекции набегает целая минута.

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

ОшибкаЧто начинает ломаться
Около 30 секундШестизначные коды из приложения-аутентификатора. Они вычисляются из текущего времени с шагом 30 секунд, а серверы допускают примерно один шаг в каждую сторону.
5 минутВход в офисные сети Windows. Kerberos, система, на которой он построен, отклоняет билеты, если часы расходятся больше чем на пять минут.
Сутки и большеHTTPS везде. Сертификаты действительны между двумя датами, и устройство, живущее не в том месяце, считает их все просроченными или ещё не вступившими в силу.

Как делается измерение

Спросите у сервера, который час, и ответ устареет уже к моменту, когда дойдёт до вас. В NTP для этого есть решение, и мы его заимствуем: засечь время полного обмена и считать, что ответ провёл в пути половину этого времени.

Допустим, браузер отправляет запрос, когда ваши часы показывают 12:00:00.000. Ответ приходит через 80 миллисекунд и сообщает, что время сервера было 12:00:02.540. В середине пути ваши часы показывали 12:00:00.040, значит, они отстают на 2,5 секунды, плюс-минус 40 миллисекунд.

Страница отправляет один запрос и отбрасывает его, потому что первый платит за открытие соединения. Затем она отправляет ещё пять, один за другим, и оставляет тот, у которого самый короткий путь туда и обратно: быстрый обмен оставляет меньше всего места для ошибки. Результат показывает смещение, точность (половину этого лучшего времени обмена) и часовой пояс, который сообщает ваше устройство.

Как читать вердикт

Точно
Разница меньше полсекунды или слишком мала, чтобы отличить её от погрешности измерения.
Точно, в пределах нескольких секунд
До 5 секунд. Ни один сервис этого не заметит.
Спешат или отстают, показано как предупреждение
От 5 до 30 секунд. Пока ничего не ломается, но синхронизированное устройство так далеко не уходит, так что автоматическое время, скорее всего, выключено.
Спешат или отстают, показано как ошибка
30 секунд и больше. В сообщении названо, что находится под угрозой при вашем уровне расхождения.

Если разница отличается от целого числа часов не больше чем на две минуты, страница добавляет пометку о часовом поясе. Обычно это значит, что кто-то вручную выставил отображаемое время, а устройство настроено на другой пояс. На экране часы выглядят правильно, а время под ними сдвинуто на несколько часов.

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

Как вернуть часам точное время

Не вводите точное время вручную. Через несколько недель оно снова будет неверным. Включите автоматическую синхронизацию и запустите одно обновление принудительно:

СистемаГде
Windows 10 и 11Параметры, Время и язык, Дата и время. Включите «Установить время автоматически» и «Автоматически устанавливать часовой пояс», затем нажмите «Синхронизировать». Из командной строки администратора: w32tm /resync.
macOSСистемные настройки, Основные, Дата и время. Включите «Устанавливать время и дату автоматически».
iPhone и iPadНастройки, Основные, Дата и время, «Автоматически». Если переключатель заблокирован, его удерживает ограничение «Экранного времени» или профиль управления устройством.
AndroidНастройки, Система, Дата и время, «Автоматическая настройка времени». У Samsung это в разделе «Общие настройки».
Linux с systemdtimedatectl set-ntp true, после чего timedatectl status должна сообщить «System clock synchronized: yes».

Если расхождение возвращается, у него есть причина. Настольный компьютер или старый ноутбук, теряющий часы при каждом отключении от сети, имеет севшую батарейку часов на материнской плате, обычно это таблетка CR2032, замена которой почти ничего не стоит. Компьютер, на котором стоят и Windows, и Linux, может сдвигаться ровно на ваше смещение от UTC при каждом переключении, потому что две системы по-разному считают, что хранят аппаратные часы: местное время или UTC. Гостевые и гостиничные сети иногда блокируют NTP (UDP-порт 123), и тогда часы исправляются сами в другой сети.

Частые вопросы

Почему не работают коды из приложения-аутентификатора?

Чаще всего часы телефона расходятся больше чем примерно на 30 секунд. Коды получаются из текущего времени, поэтому телефон и сервер должны быть согласны. Включите на телефоне автоматическое время, затем попробуйте новый код.

Насколько точна эта проверка часов?

На обычном широкополосном подключении точность до нескольких сотых секунды. После каждого измерения страница показывает свою погрешность: половину времени самого быстрого из пяти обменов с нашим сервером.

Почему часы компьютера сбиваются при каждом включении?

Маленькая батарейка поддерживает ход часов, пока компьютер выключен. Когда она садится, часы сбрасываются или сильно уходят при каждом отключении питания. Замена батарейки-таблетки на материнской плате решает проблему. До тех пор автоматическое время будет исправлять часы, как только система выйдет в сеть.

Мои часы расходятся ровно на час. В чём дело?

Это указывает на часовой пояс или настройку летнего времени, а не на сами часы. Включите автоматический выбор часового пояса или выберите правильный пояс вручную и дайте системе самой установить время.

Ломает ли неправильный часовой пояс коды двухэтапной проверки?

Сам по себе нет. Коды вычисляются по всемирному времени, которое везде одинаково. Проблемы начинаются, когда отображаемое время подогнали вручную, чтобы оно выглядело правильно в неправильном поясе: это сдвигает всемирное время под ним на несколько часов.