Синхронизация времени на Android через TimeServer

Как работает синхронизация времени в интернете

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

От того, какое на компьютере установлено время, зависит многое:

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

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

Синхронизация времени с TimeServer на Android

В операционных системах Android также имеется встроенная функция синхронизация времени по сети. Однако пользователи не могут ее настраивать. Т.е. система сверяет время с NTP-сервером, который, по сути, неизвестен владельцу Андроид-устройства. Также остается секретом и то, насколько точно работает базовая функция синхронизации часов в Android.

Для возможности синхронизации времени на смартфонах и планшетах под управлением Андроид существует только один выход — использование специальных приложений. Но и здесь есть свои нюансы. ОС Android запрещает сторонним приложениям изменять настройки даты и времени, что сделано в целях безопасности. Для полноценной работы приложений синхронизации времени требуется root-права. Без root-прав такие программы не могут изменять системные настройки в автоматическом режиме, однако определять точное время они все же в состоянии. В этом случае пользователю придется время от времени устанавливать время на своем Android-устройстве вручную.

Рассмотрим, как это делается на примере приложения синхронизации времени ClockSync с NTP-сервером timeserver.ru

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

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

Для активации сервера нужно в реестре в ветке HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer установить значение параметра Enabled равным 1.

Затем через командную строку нужно перезапустить службу времени Windows (или просто перезагрузите компьютер):

Как синхронизировать время с интернет

Атомные часы — дорогое и громоздкое устройство. Гораздо удобнее получать сигналы точного времени по телефону, радио или со спутника. С недавних пор еще одним каналом для получения информации о точном времени стал интернет.

Как синхронизировать время с интернет

  • Как синхронизировать время с интернет
  • Как синхронизировать время
  • Как обновлять время через интернет

Если вы хотите лишь получать из интернете информацию о точном времени, а синхронизацию осуществлять вручную, воспользуйтесь услугами одного из так называемых Daytime-серверов. Перед тем как подключаться к такому серверу, убедитесь, что у вас есть консольный Telnet-клиент (он встречается как в Linux, так и во многих версиях Windows). Запустите программу telnet с параметром, состоящим из IP-адреса сервера и номера порта, разделенных двоеточием. Номер порта для протокола Daytime — всегда 13. Например: telnet 198.60.73.8:13
В ответ вы получите информацию о времени и дате, после чего соединение автоматически разорвется. Не обращайте внимание на часы — сервер находится в другом часовом поясе. Вам нужна информация только о минутах и секундах. Используйте только те серверы из списка, о которых прямо сказано, что они поддерживают протокол Daytime. Никогда не подключайтесь к одному и тому же серверу чаще, чем раз в четыре секунды включительно, иначе ваш IP-адрес будет заблокирован (ваши запросы будут приняты за DoS-атаку).

Чтобы синхронизировать часы компьютера с сервером автоматически, придется воспользоваться другим протоколом — NTP. Его поддерживают все серверы из указанного списка, даже те, которые не работают по протоколу Daytime. Однако лучше всего воспользоваться для этого более точным NTP-сервером — ntp.mobatime.com. Несколько менее точен публичный пул серверов time.windows.com. Обратите внимание на то, что пишутся URL этих серверов без привычной строки «http://www». Запросы к любым NTP-серверам также ни в коем случае нельзя повторять чаще, чем раз в четыре секунды включительно.

Чтобы автоматически синхронизировать встроенные часы компьютера с NTP-сервером в операционной системе Linux, вначале установите пакет ntp. Затем введите команду: sudo ntpdate (URL NTP-сервера)

Чтобы в операционной системе Windows время автоматически синхронизировалось с NTP-сервером при каждом включении компьютера, выберите в «Панели управления» пункт «Дата и время». Переключитесь на вкладку «Время интернета». Установите галочку «Включить синхронизацию с сервером времени в интернете». Введите в единственное на странице поле URL NTP-сервера.

Установите на свой мобильный телефон J2ME-приложение Server Time. Запустив его, введите в настройках URL NTP-сервера. Затем выберите в меню пункт «Старт!». После того, как запрос будет осуществлен, вы сможете сравнить время на сервере с временем во встроенных часах телефона. Осуществить синхронизацию придется вручную, несмотря на использование протокола NTP. Связано это с тем, что виртуальная машина Java на телефоне не позволяет приложениям изменять показания системных часов.

Что делать, если время сбрасывается (слетает)

Причина 1

Наиболее частая причина сброса времени — это севшая батарейка на материнской плате компьютера (в среднем одна добротная батарейка живет ∼5-7 лет). Что характерно при этом: время слетает после отключения/перезагрузки ПК (в процессе работы — должно быть всё нормально. ).

Как выглядит батарейка на мат. плате

Как выглядит батарейка на мат. плате

Приобрести новую батарейку можно практически в любом компьютерном магазине (и даже заказать в Китае ?).

Причина 2

Неправильно установленный часовой пояс . Из-за этого Windows при любых обновлениях устанавливает автоматически некорректное время.

Если авто-режим неправильно определяет ваш пояс — задайте его вручную (для Windows 10: сочетание клавиш Win+i —> Время и язык —> Дата и время —> Часовой пояс ?).

Часовой пояс - Windows 10

Часовой пояс — Windows 10

Windows 11 — время и язык — дата и время

Windows 11 — время и язык — дата и время

? Еще один вариант : сочетание Win+R — > команда timedate.cpl

Изменить часовой пояс

Изменить часовой пояс

Причина 3

Дело также может быть в некорректной работе синхронизации (например, из-за каких-то системных сбоев ОС, или неправильно-установленного часового пояса, или, например, из-за использования устаревшей версии Windows (от народных «умельцев»)).

Чтобы исправить подобную проблему : уточните часовой пояс и измените сервер для обновления. Если не поможет — отключите синхронизацию и установите время вручную (как это сделать — см. чуть выше в статье ?).

Особенности программы ClockSync

Автоматическая синхронизация работает только на телефонах с ROOT.
Если root-прав нет, то проверка времени проводится автоматически и вы получите уведомление если часы сильно убежали. А синхронизировать часы придется «руками».

Программа поддерживает свежую базу обновленных часовых поясов. И если у вашего смартфона старая прошивка и он каждую весну и осень в России переводит часы, то это программа восстановит несправедливость. И вы не придете весной на работу на час раньше.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector