Мегафон

По синхронизации времени. Как синхронизировать время с интернет. Настройка синхронизации времени на компьютерах

Добрый день уважаемые читатели и гости блога сайт, как много люди говорят о времени, что оно быстро или медленно бежит, и все понимают, что оно бесценно и важно. Так и в инфраструктуре Active Directory, она является одним из важнейших факторов, правильного функционирования домена. В домене все друг другу доверяют, и один раз авторизовавшись и получив все тикеты от Kerberos , пользователь ходит куда угодно, ограничиваясь лишь своими доступными правами. Так вот если у вас не будет точного времени на ваших рабочих станциях к контроллеру домена, то можете считать, что у вас начинаются серьезные проблемы, о которых мы поговорим ниже и рассмотрим как их устранить с помощью настройки NTP сервера в Windows .

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

Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.

  • Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
  • Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
  • Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.

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

Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).

Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.

Вводим netdom query fsmo. В моем примере, роль PDC и NTP сервера, принадлежит контроллеру dc7

Конфигурация NTP-сервера на корневом PDC

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

w32tm /query /configuration

EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 6 (Локально)
MaxPollInterval: 10 (Локально)
MaxNegPhaseCorrection: 172800 (Локально)
MaxPosPhaseCorrection: 172800 (Локально)
MaxAllowedPhaseOffset: 300 (Локально)

FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 7 (Локально)
UpdateInterval: 100 (Локально)

NtpClient (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
CrossSiteSyncFlags: 2 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 3600 (Локально)
Type: NT5DS (Локально)

NtpServer (Локально)
DllName: C:\Windows\system32\w32time.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 0 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)

VMICTimeProvider (Локально)
DllName: C:\Windows\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)

Включение синхронизации внутренних часов с внешним источником


Включение NTP-сервера

NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.


Задание списка внешних источников для синхронизации


Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1.

Задание интервала синхронизации с внешним источником

Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.


  • "SpecialPollInterval"=dword:00000384

Установка минимальной положительной и отрицательной коррекции

Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.


"MaxPosPhaseCorrection"=dword:FFFFFFFF
"MaxNegPhaseCorrection"=dword:FFFFFFFF

Все необходимое одной строкой

w32tm.exe /config /manualpeerlist:"time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

Полезные команды

  • Применение внесенных в конфигурацию службы времени изменений
    w32tm /config /update
  • Принудительная синхронизация от источника
    w32tm /resync /rediscover
  • Отображение состояния синхронизации контроллеров домена в домене
    w32tm /monitor
  • Отображение текущих источников синхронизации и их статуса
    w32tm /query /peers

Настройка NTP сервера и клиента групповой политикой

Раз уж у нас с вами домен Active Directory, то глупо не использовать групповые политики, для массовой настройки серверов и рабочих станций, я покажу как настроить ваш NTP сервер в windows и клиента. Открываем оснастку "Редактор групповых политик". Перед тем как настроить наш NTP сервер в Windows, нам необходимо создать WMI фильтр, который будет применять политику, только к серверу мастера PDC.

Вводим имя запроса, пространство имен, будет иметь значение "root\CIMv2" и запрос "Select * from Win32_ComputerSystem where DomainRole = 5". Сохраняем его.

Затем вы создаете политику на контейнере Domain Controllers.

В самом низу политики применяете ваш созданный WMI фильтр.

Переходим в ветку: Конфигурация компьютера > Политики > Административные шаблоны > Система > Служба времени Windows > Поставщики времени.

Тут открываем политику "Настроить NTP-клиент Windows". Задаем параметры

  • NtpServer: 0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1 3.ru.pool.ntp.org,0x1
  • Type: NTP
  • CrossSiteSyncFlags: 2. Двойка означает, если этот параметр равен 2 (Все), можно использовать любого участника синхронизации. Это значение игнорируется, если не задано значение NT5DS. Значение по умолчанию: 2 (десятичное) (0x02 (шестнадцатеричное))
  • ResolvePeerBackoffMinutes: 15. Это значение, выраженное в минутах, определяет интервал ожидания службы W32time перед попыткой разрешения DNS-имени в случае неудачи. Значение по умолчанию: 15 минут
  • Resolve Peer BAckoffMaxTimes: 7. Это значение определяет число попыток разрешения DNS-имени, предпринимаемых службой W32time перед перезапуском процесса обнаружения. При каждом неудачном разрешении DNS-имени интервал ожидания перед следующей попыткой удваивается. Значение по умолчанию: семь попыток.
  • SpecilalPoolInterval: 3600. Это значение параметра NTP-клиента, выраженное в секундах, определяет частоту опроса настроенного вручную источника времени, который использует особый интервал опроса. Если для параметра NTPServer установлен флаг SpecialInterval, клиент использует значение, заданное как SpecialPollInterval, вместо значений MinPollInterval и MaxPollInterval, чтобы определить частоту опроса источника времени. Значение по умолчанию: 3600 секунд (1 час).
  • EventLogFlags: 0

Делаем отдельную групповую политику для клиентских рабочих машин, вот с такими параметрами.

  • NtpServer: Адрес вашего контроллера домена с ролью PDC.
  • Type: NT5DS
  • CrossSiteSyncFlags: 2
  • ResolvePeerBackoffMinutes: 15
  • Resolve Peer BAckoffMaxTimes: 7
  • SpecilalPoolInterval: 3600
  • EventLogFlags: 0

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

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

Короче говоря, весь сыр бор объяснялся тем, что в материнской плате "скисла" батарейка и система стала "жить" в 2008 году.

Так как новой батарейки под рукой, естественно, не оказалось, то стал вопрос о желательности синхронизации времени через Интернет после включения компьютера и загрузки операционной системы. Казалось бы, простая ситуация и её разрешение возможно в 2 клика мышкой, но нет – сюрприз.

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

"Корень зла" содержится в том, что при расхождении времени между локальным компьютером и временем Интернет более чем в 15 часов служба синхронизации времени перестаёт осуществлять операцию коррекции имеющегося в системе времени на правильное.

Для решения этой проблемы в настройки Windows, содержащиеся в реестре, необходимо внести ряд изменений.

Перейдите в ветку реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config



Найдите MaxNegPhraseCorrection и MaxPosPhraseCorrection и установите им шестнадцатиричные значения ffffffff (буква f 8 раз подряд), которые являются максимально допустимыми.


Примечание. Первоначальными значениями являются 0x0000d2f0
На всякий случай, проверьте значение LargePhraseOffset
Выставьте интервал обновления, исходя из того, что в десятичном формате оно указывает количество секунд, по истечении которых будет произведено очередное обращение с серверу точного времени.

HCLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient



Найдите параметр SpecialPollInterval. Он как раз и определяет, с какой периодичностью клиент обращается к серверу точного времени. Значение параметра установлено в секундах.


Измените интервал в десятичной системе исчисления из расчёта:
1 минута = 60 секунд,
1 час = 60 минут = 3600 секунд,
1 сутки = 24 часа = 1440 минут = 86400 секунд.

На одном из ресурсов, посвящённом описанию механизма синхронизации времени в Windows, было отмечено, что если этот интервал меньше значения 14400 (240 минут = 4 часа), то сервер NTP может поставить IP-адрес в бан по причине большого числа запросов. Насколько это соответствует истине – мне не известно. Но шлюз на MikroTik по своему алгоритму проверяет соответствие своих часов по 4-6 раз за час.

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



В приведенном примере адрес сервера точного времени time.net.org. Такого сервера в действительности не существует, он является локальным сервером времени, расположенном на роутере . Для своих нужд найдите ближайший к себе сервер точного времени.

Например, можно воспользоваться сведениями, указанными на http://www.ntp-servers.net , http://www.timeserver.ru , http://gladilov.org.ru/ntp

Упомянутые выше изменения в реестре Windows можно внести одним файлом c расширением reg. Создайте в блокноте файл с содержанием:

Windows Registry Editor Version 5.00


"MaxNegPhraseCorrection"=dword:ffffffff
"MaxPosPhraseCorrection"=dword:ffffffff


"NtpServer"="time.net.org,0x01"

Сохраните его как, например, Timecorrect.reg После этого его можно запустить и необходимые изменения будут записаны в реестр. Значение "NtpServer"="time.net.org,0x01" измените на своё (см. текст выше). Скачать этот файл.

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

Для коррекции времени можно использовать файл с расширением bat, содержание которого составляет строка: w32tm /resync Этот файл bat должен быть запущен под правами администратора системы (запуск от имени администратора).

Создайте в блокноте текстовый файл с содержанием w32tm /resync и сохраните его как файл с расширением bat, например, timesync.bat

Но, как показала практика, и запуска этого файла оказалось мало. Командная строка выдала:
Обнаружена следующая ошибка: Служба не запущена (0x80070426)

Оказывается, служба времени в Windows 7 (в Windows XP было иначе) не будет отключаться только в том случае, если она была запущена вручную через окно "Службы" или с помощью кнопки синхронизации "Обновить сейчас" в окне "Время и дата".

Чтобы исправить эту ситуацию, в командной строке (с правами администратора), введите следующие команды:

1. net stop w32time – останавливаем службу времени, если запущена.
2. w32tm /debug /disable – отключаем режим отладки.
3. w32tm /unregister – удаляем регистрацию службы.
4. w32tm /register – снова регистрируем службу.
5. sc triggerinfo w32time start/networkon stop/networkoff – указываем запуск службы при подключении к сети и остановку при отключении от сети.

После команды 5 Вы должны увидеть:

ChangeServiceConfig2: успех

Пробуем снова в командной строке с правами администратора запустить bat-файл с содержанием:

W32tm /resync
pause

Вторая строка pause необходима для того, чтобы увидеть результат выполнения команды w32tm /resync.


Так и хочется воскликнуть: боже мой, как всё запущено! А ведь исходя из описания службы можно подумать, что она, всё-таки, работает после старта системы, хотя и с задержкой:

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

По заданному графику ОС сверяет часы с сервером, указанным в настройках. Если значения не равны, системой выполняется корректировка показателей. Изначально в конфигурации уже задано несколько адресов.

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

Для одноразовой синхронизации нужно проделать следующие действия. Кликнуть левой кнопкой по часам Windows.

Кнопка "Изменение настроек даты и времени" откроет окно настройки. Далее требуется перейти во вкладку "Время по интернету". В ней будет отображен адрес сервера, который указан в настройках, и последняя дата синхронизации.

Нажав на "Изменить параметры", можно будет обновить время.

Автоматизация функции

Чтобы синхронизировать время компьютера с интернетом автоматически, достаточно в последнем окне поставить галочку в единственной клеточке. Если подключиться к северу невозможно или при обновлении времени происходит погрешность, то можно выбрать один из дополнительных серверов, благо ОС предоставляет на выбор целых 5, либо найти и вписать его в строку "сервер".

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

Средства командной строки

Не всегда удобно использовать графические средства настройки системы. Например, если окно перегружено текстом: глаза пытаются найти нужную кнопку, но все сливается в одно монотонное изображение. Да и ввод пары команд производится быстрее, чем частые перемещения курсора мыши из одного угла окна в другой.

Чтобы синхронизировать время на компьютере с интернетом при помощи командной строки, откройте меню "Пуск" и выберите "Выполнить" либо просто нажмите Win+R на клавиатуре. В строке окна, которое запустится, напишите cmd, а после нажмите Enter. Так вы войдете в командную строку, следующая команда выполнит обновление времени на локальном компьютере с сервером, установленным по умолчанию:

  • w32tm /resync.

Для настройки сервера, который будет использовать система, чтобы синхронизировать время на локальном компьютере с интернетом, выполните команды:

  • w32tm /config /manualpeerlist:[сервер для синхронизации] /syncfromflags:manual /reliable:yes (эта команда устанавливает сервер, время которого будет использоваться для обновлений);
  • w32tm /config /update (сообщение службе времени о том, что настройки изменились);
  • net stop w32time && net start w32time (перезапуск службы).

- это слишком сложно?

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

Недокументированные настройки

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

Для запуска реестра в строке окна "Выполнить" введите regedit и нажмите Enter. Перейдите в ветку HKEYLM, в ней необходимо развернуть каталог SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient. Найдите параметр SpecialPollInterval. В нем уже будет записано значение 604800. Именно за такое количество секунд проходит одна неделя. Если изменить эту цифру на 3600, время синхронизации будет равно одному часу.

Не рекомендуется вводить в эту графу значения меньше часа и больше суток. Малые значения заметно увеличат интернет-трафик. К тому же если пытаться синхронизировать время каждые несколько секунд, сервер заблокирует ваш IP. При больших значениях не удастся добиться максимальной точности системных часов. После внесения изменений введите символы net stop w32time && net start w32time в командную строку.

Локальная сеть

Если дома или в офисе установлено несколько компьютеров, подключенных по локальной сети, можно использовать один как сервер точного времени. Синхронизация с временем ПК, входящего в локальную сеть, производится так же, как и с серверами в интернете. Но сначала придется запустить сервер NTP на компьютере, время которого будут использовать остальные участники сети.

Для этого откройте реестр и отредактируйте раздел HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer. В нем ключу Enabled нужно присвоить значение 1, затем перезапустить службу Windows time из командной строки, напечатав net stop w32time, а после выполнения - net start w32time.

Помните, что теперь ПК эксплуатируется другими пользователями сети в качестве ориентира, не забывайте проверять его работоспособность время от времени. Включен ли сервер, можно проверить командой w32tm /query /configuration. Значение Enabled, равное 1, показывает, что с сервером всё в порядке.

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

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

Чтобы установить время на андроиде, нужно выполнить несколько простых действий:

Шаг 1 . Запустите Настройки , пройдите в категорию «Система и устройство » и выберите раздел «Дополнительно ».

Шаг 2 . Нажмите кнопку «Дата и время ».

Шаг 3 . В открывшемся окне вы сможете выставить время, поменять дату, выбрать формат отображения времени и даты, установить часовой пояс, а также задать автоматическое получение настроек.

Обратите внимание : параметры даты и времени могут быть скрыты в других подразделах, например, в расширенных настройках. Это зависит от версии Android.

Перейти к параметрам даты и времени можно и другим путем – через приложение Часы :

Шаг 1 . Запустите приложение Часы .

Шаг 2 . Нажмите кнопку параметров.

Шаг 3 . Нажмите на кнопку «Настройки даты и времени ».

Почему сбивается время на Андроид

Синхронизация даты и времени на смартфонах Android иногда может работать некорректно, из-за чего происходит сбой настроек. Чтобы исправить эту проблему, необходимо отключить параметры «Дата и время сети » и «Часовой пояс сети », после чего задать настройки вручную.

Если вопрос не решится, стоит выполнить и заново установить все параметры.

Заключение

    В современных ОС семейства Windows предусмотрена возможность автоматической синхронизации часов локального компьютера с показаниями сервера времени в Интернет по протоколу NTP (N etwork T ime P rotocol). В частности, предусмотрено выполнение планировщиком заданий стандартной задачи синхронизации времени с внешним источником SynchronizeTime , которая может иметь разные настройки в разных версиях ОС Windows.

В Windows 7, задача SynchronizeTime выполняет запуск службы времени Windows по расписанию:

Как видим, задача запускается в 1 час ночи по воскресеньям еженедельно, когда большинство компьютеров выключено. Но настройка Параметры - флажок Немедленно запускать задачу, если пропущен плановый запуск для большинства случаев означает, что задача реально выполняется при первом включении компьютера в понедельник (или другие дни недели). С учетом мизерного трафика, требующегося для синхронизации времени по протоколу NTP и мизерного потребления ресурсов компьютера, такую задачу можно было бы выполнять, например, при каждом входе пользователя в систему, изменив свойства триггера ”Начать задачу”:

В отличие от Windows 7, в Windows 8-10 имеется уже 2 задачи, выполняющие синхронизацию: SynchronizeTime и ForceSynchronizeTime . Первая выполняет те же функции, что и рассмотренная выше, и может быть настроена на запуск таким же образом, обеспечивая синхронизацию при входе пользователя в систему.

Действия, выполняемые задачей SynchronizeTime можно посмотреть на вкладке Действия .

Как видим, задача выполняет запуск утилиты управления системными службами sc.exe , которая запускает Службу времени Windows (W32Time). При запуске службы времени выполняется синхронизация часов локального компьютера с NTP-сервером, определенным настройками службы (стандартно – time.windows.com). Настройки можно изменить командой или изменением параметров в разделе реестра
HKLM\System\CurrentControlSet\services\w32time

В ключе \Config имеются параметры MaxNegPhaseCorrection и MaxPosPhaseCorrection задающие максимальное отрицательное и положительное отклонение показаний часов, при котором может выполняться синхронизация. Значение по умолчанию - 54000 (в секундах), т.е. 15часов, что является причиной невозможности синхронизации часов стандартной задачей планировщика SynchronizeTime, например, при изменении даты (отклонение более чем на 15 часов). Поэтому, для надежной синхронизации, независимо текущих показаний аппаратных часов компьютера, желательно увеличить абсолютное значение параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection , или вообще задать им максимальное значение для типа DWORD – 0xffffffff или 4294967295.

После такого изменения параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection в реестре системы, синхронизация часов с NTP-сервером будет выполняться при любых значениях даты и времени на локальном компьютере.

При желании, можно изменить имя NTP-сервера, с которым будет выполняться синхронизация (подключ Parameters параметр NTPServer) либо правкой реестра, либо с помощью команды w32tm, в командной строке, запущенной от имени администратора:

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update - изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org и применить сделанные изменения.