Настройка ntp-клиента Windows
Обновлено: 21.11.2024
В течение многих лет я использовал инструкции, аналогичные статье Microsoft, для настройки серверов Windows 2012 в качестве клиента NTP. По сути, как локальный администратор Windows, измените настройки реестра Windows. Я помещаю все настройки в обычный текстовый файл, как показано ниже, и импортирую файл.
Он работал нормально, пока недавно мне не пришлось развернуть новую виртуальную машину Windows 2012, чтобы протестировать обновление. Как и раньше, я импортировал файл конфигурации NTP в реестр Windows, включил службу W32Time и запустил ее. В этот раз не получилось — не подцепились настройки реестра. При запросе источника, конфигурации, состояния в качестве источника сообщалось «ЛОКАЛЬНЫЙ». При запросе одноранговых узлов (список серверов NTP) возвращается 0.
Моя первая мысль была связана с инструментами VMware, но они не включены. Подтверждено, что параметр виртуальной машины «Синхронизировать время с хостом» не отмечен в клиенте vSphere
Пытался использовать графический интерфейс «Изменить настройки даты и времени» -> «Настройки времени в Интернете». Это не помогло.
Попытка отменить регистрацию/регистрацию службы W32time, выполнить повторную синхронизацию/повторное обнаружение, вручную обновить адрес NTP-сервера. Перезапускал W32time каждый раз, когда я вносил изменения. Ни один не работал.
В конце концов это сработало с редактором групповой политики. С помощью gpedit.msc зашел в «Административный шаблон» -> «Система» -> «Служба времени Windows» -> «Поставщики времени». На левой панели включены следующие два параметра:
- «Включить клиент Windows NTP»
- «Настройка клиента Windows NTP»
Введена информация о сервере NTP в разделе «Настройка клиента Windows NTP».
Примечание:
Значение по умолчанию [0x9] добавляется в конец каждого DNS-имени. Это означает [0x01] + [0x08]. Они означают следующее:
- 0x01 Специальный интервал
- 0x02 UseAsFallbackOnly
- 0x04 Симметричный Актив
- Запрос NTP 0x08 в режиме клиента
В разделе «Тип» можно оставить значение по умолчанию [NT5DS], если ваш компьютер находится в домене, но если нет, измените его на [NTP].
Не знаю, почему на этот раз мне понадобилось использовать редактор групповой политики и чем эта виртуальная машина отличается от других, над которыми я работал. Может мне просто повезло раньше?
Еще одно замечание: сразу после перезапуска службы времени Windows источник может вернуться к «LOCL». запустите команду «w32tm /resync /rediscover», чтобы переопределить настройки внешних NTP-серверов. Или подождите несколько минут, сервис подхватит настройки.
Производительность w32time в качестве NTP-клиента сильно зависит от версии программного обеспечения w32time. Однако корпорация Майкрософт начала улучшать точность, которой можно достичь с помощью w32time, если вы запускаете версии, поставляемые с Windows Server 2016, Windows 10 версии 1607 или более поздней версии.
Странная конфигурация w32time по умолчанию
Если компьютер Windows получает время от NTP-сервера в сети, то он является просто клиентом этого сервера и должен отправлять на сервер обычные «клиентские» пакеты запроса NTP, чтобы сервер отправлял NTP-серверу ” ответный пакет обратно.
Однако по умолчанию многие версии службы w32time («Время Windows»), поставляемой с Windows, отправляют пакеты «симметричного активного однорангового узла» вместо пакетов режима «клиент», и обычно демон NTP ( ntpd ) как сервер NTP должен даже не отвечайте на такие пакеты, если только пакет «симметричного действия» действительно не исходит от аутентифицированного узла.
Однако за много лет ntpd реализовал обходной путь, при котором он не обрабатывает такие глупые одноранговые запросы, как это было бы для реальных одноранговых узлов, но все равно отправляет ответ, просто чтобы удовлетворить этих клиентов w32time. .
Версии встроенного ПО LANTIME/ntpd, которые не отвечают на «симметричные активные» запросы
В июне 2018 года в исходный код ntpd было внесено изменение для решения другой проблемы, и это изменение непреднамеренно отключило упомянутый выше обходной путь. Как только это было замечено пользователями, обходной путь был снова включен, и, таким образом, последующий выпуск исправления ntp-4.2.8p12 снова работает, как и в течение многих лет.
Версия ntpd, в которой обходной путь для клиентов w32time был непреднамеренно отключен, поставлялась с версиями прошивки LANTIME 6.24.013 и 6.24.014. Таким образом, это должно правильно работать со всеми старыми версиями прошивки LANTIME, а также с прошивкой LANTIME версии 6.24.015 или новее.
В любом случае правильным решением будет настроить службу w32time на компьютерах с Windows таким образом, чтобы она отправляла «клиентские» запросы на сервер, как того требуют стандарты NTP. Это описано в следующей главе.
Правильное указание собственного NTP-сервера
Команда w32tm, однако, представляет собой служебную программу, которую можно запустить в окне консоли (cmd) с правами администратора для настройки и мониторинга службы w32time. Следующие команды можно использовать для указания имени хоста или IP-адреса внешнего NTP-сервера, который необходимо опрашивать, и проверки текущих настроек.
При указании NTP-сервера может потребоваться добавить специальный флаг к имени хоста или IP-адресу, даже несмотря на то, что это плохо документировано корпорацией Майкрософт. Согласно документации Microsoft по адресу
поддерживаются следующие флаги:
0x1 | SpecialInterval | Подождите специальный интервал вместо стандартного интервала перед отправкой следующего запроса, см. Настройки реестра |
---|---|---|
0x2 | UseAsFallbackOnly | Использовать указанный NTP-сервер только как резервный | < /tr>
0x4 | SymmatricActive | Принудительная отправка симметричных активных одноранговых запросов на указанный сервер NTP |
0x8 | Клиент | Принудительно отправлять клиентские запросы на указанный сервер NTP |
Как уже упоминалось выше, некоторые версии w32time по умолчанию используют для отправки симметричных одноранговых запросов на NTP-серверы, но если на NTP-сервере работает стандартное программное обеспечение NTP ( ntpd ), то сервер может не отвечать на такие неаутентифицированные одноранговые запросы на все. Обычным поведением является отправка клиентских запросов на сервер, и в этом случае сервер отправляет ответ сервера.
Поэтому безопасно использовать флаг 0x8 или комбинацию других флагов с 0x8, если это необходимо. Например, 0x8 и 0x1 приведут к флагу 0x9 .
На самом деле для указания одного сервера можно использовать следующую команду:
Если несколько серверов должны быть настроены для резервирования, то серверы, указанные в /manualpeerlist, должны быть разделены пробелом, поэтому весь параметр должен быть заключен в двойные кавычки:
Параметр /update гарантирует, что изменения вступят в силу немедленно.
Следующую команду можно использовать для проверки списка серверов (фактически всегда помеченных как одноранговые), которые используются в данный момент:
В выходных данных этой команды также отображается режим для каждого указанного сервера/узла, который в большинстве случаев должен быть равен 3 (Клиент).
Другие параметры команды w32tm см. в информации об использовании, отображаемой, если команда запускается без каких-либо параметров.
Команда net time … использовалась в старых системах Windows для настройки службы w32time. Однако эту команду следует использовать только в том случае, если утилита w32tm недоступна.
Настройки реестра
Для достижения наилучших результатов на каждом узле, на котором выполняется w32time, требуются следующие настройки:
Ключ реестра | Значение |
---|---|
MinPollInterval | 6 |
MaxPollInterval | 6 |
UpdateInterval | 100 |
SpecialPollInterval | 64 |
FrequencyCorrectRate | 2 |
Эти параметры контролируются с помощью настроек реестра или некоторых групповых политик. См. раздел ПРЕДУПРЕЖДЕНИЕ на этой веб-странице:
Служба времени Windows является основой для нормального функционирования домена Active Directory. Kerberos, основной протокол проверки подлинности AD, для правильной работы использует службу времени W32Time (Windows Time). В среде AD синхронизация времени осуществляется в соответствии со строгой иерархией: компьютеры и серверы, присоединенные к домену, получают время от ближайшего контроллера домена, на котором они зарегистрированы, все контроллеры домена синхронизируют свое время с одним контроллером домена, которому принадлежит PDC. Роль эмулятора FSMO.
Как служба времени Windows работает в домене?
Все версии Windows имеют службу W32Time. Эта служба используется для синхронизации времени в организации AD. Компьютер может быть как клиентом, так и сервером NTP. По умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows, а не с помощью NTP.
По умолчанию служба времени Windows настроена следующим образом:
- После выполнения чистой установки Windows на компьютере запускается NTP-клиент, который синхронизируется с внешним источником времени;
- Если вы присоединили компьютер к домену, тип синхронизации изменится. Все клиентские компьютеры и рядовые серверы в домене используют контроллер домена для синхронизации времени.
- При повышении уровня рядового сервера до контроллера домена на нем запускается NTP-сервер, который использует в качестве источника времени контроллер домена с ролью эмулятора PDC;
- Эмулятор PDC — это основной сервер времени для всей организации. При этом также синхронизируется с внешним источником времени, либо с аппаратными часами сервера в CMOS (данный способ синхронизации времени не рекомендуется);
- Эта схема работает в большинстве случаев и не требует вмешательства администратора. Однако структура службы времени в Windows может не соответствовать иерархии доменов.
Если вы столкнулись с проблемой, когда время на клиентах и контроллерах домена отличается, скорее всего, в вашем домене проблема с синхронизацией времени и тогда эта статья может быть вам очень полезна.
Настройка синхронизации времени домена с помощью групповой политики состоит из двух шагов:
- Создайте объект групповой политики для контроллера домена с ролью PDC;
- Создайте объект групповой политики для клиентских компьютеров Windows в домене AD.
Настройка NTP-сервера на PDC
Прежде всего необходимо настроить PDC и включить на нем службу NTP. Откройте командную строку и выполните:
Если вы видите в выводе:
- Локальные часы CMOS — источником времени на этом сервере являются его локальные аппаратные часы;
- VM IC Time Synchronization Provider — тогда ваш контроллер домена с ролью PDC является виртуальной машиной, которая синхронизирует время с хостом.
Отключить синхронизацию времени с хостом через реестр:
- Установите для параметра Enabled значение 0 в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider
или в настройках виртуальной машины (на снимке экрана ниже показано, как отключить синхронизацию времени ВМ с хостом Hyper-V с помощью параметра Синхронизация времени в разделе Службы интеграции).
Если вы используете виртуализированный контроллер домена на VMware vSphere/ESXi, вы можете отключить синхронизацию времени в настройках виртуальной машины (Правка настроек > Параметры VM > Инструменты VMware > Время, снимите флажок Синхронизировать время гостя с хостом).< /p>
Или добавьте следующие параметры в расширенную конфигурацию ВМ:
Примечание. Эмулятор виртуального основного контроллера домена всегда должен синхронизировать время с внешним источником, а синхронизация времени с хостом должна быть отключена. Это также относится к любым другим виртуальным машинам, присоединенным к домену.
Убедитесь, что служба NTP включена на контроллере домена. Для этого откройте редактор реестра, перейдите в раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer и убедитесь, что значение параметра Enabled равно 1.
Настройка параметров NTP на контроллере домена PDC с помощью GPO
На этом этапе вам необходимо настроить контроллер домена с ролью эмулятора PDC для синхронизации времени с внешним источником. Роль эмулятора PDC можно передавать между контроллерами домена, поэтому нам нужно убедиться, что GPO применяется только к текущему держателю роли основного контроллера домена. Для этого запустите консоль управления групповыми политиками (GPMC.msc). Выберите раздел «Фильтры WMI» и создайте новый фильтр WMI с именем «Эмулятор фильтра PDC» и следующий запрос WMI в пространстве имен root\CIMv2. Выберите * из Win32_ComputerSystem, где DomainRole = 5.
Создайте новый объект групповой политики и свяжите его с OU под названием «Контроллеры домена».
Выберите этот объект групповой политики и переключитесь в режим редактирования. Перейдите в следующий раздел консоли редактора групповой политики: Конфигурация компьютера > Административные шаблоны > Система > Служба времени Windows > Поставщики времени.
Включите следующие параметры политики:
- Настроить клиент Windows NTP: включено (параметры политики описаны ниже);
- Включить клиент Windows NTP: включено;
- Включить Windows NTP-сервер: включено.
Укажите следующие параметры в политике Настройка Windows NTP-клиента:
Примечание. Не забудьте правильно настроить брандмауэр и разрешить вашему PDC доступ к внешним NTP-серверам по протоколу NTP (UDP-порт 123).
Вы можете открыть порт NTP в брандмауэре Защитника Windows с помощью PowerShell:
Назначьте фильтр WMI Filter PDC Emulator, созданный ранее, объекту групповой политики.
Совет. Вы можете найти текущий сервер PDC с помощью команды:
Выполните ручную синхронизацию времени с источником NTP:
И проверьте текущие настройки NTP:
Выполните команду:
При выполнении на контроллере домена эта команда показывает, насколько отличается время между другими контроллерами домена и внешним источником времени, для которого настроен основной контроллер домена.
Совет. Если что-то не работает, попробуйте перезапустить службу времени Windows и сбросить ее настройки:
Кроме того, вы можете настроить PDC на использование внешнего источника времени с помощью инструмента w32tm.exe:
После указания списка NTP-серверов необходимо сообщить службе времени для обновления настроек:
Настройка параметров синхронизации времени клиента с помощью объекта групповой политики
По умолчанию в Active Directory клиенты домена синхронизируют свое время с контроллерами домена (опция Nt5DS — синхронизировать время с иерархией домена). Как правило, это поведение не требует перенастройки. Однако, если есть проблемы с синхронизацией времени на клиентах вашего домена, вы можете попробовать указать сервер времени непосредственно на клиентах с помощью GPO.
Для этого создайте новый объект групповой политики и назначьте его организационной единице с компьютерами. В редакторе GPO перейдите в следующий раздел «Конфигурация компьютера» > «Административные шаблоны» > «Система» > «Служба времени Windows» > «Поставщики времени» и включите политику «Настроить клиент Windows NTP».
В качестве NTP-сервера укажите имя или IP-адрес PDC:
Тип набора:
Примечание. Возможные значения параметра Type:
NoSync — сервер NTP не синхронизируется с каким-либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS сервера;
NTP — сервер NTP синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer (это поведение по умолчанию на отдельном компьютере);
NT5DS — сервер NTP выполняет синхронизацию в соответствии с иерархией домена (используется по умолчанию на присоединенных к домену компьютерах;
AllSync — сервер NTP использует все доступные источники для синхронизации времени.
Обновите параметры групповой политики на клиентах и проверьте параметры синхронизации полученного времени, как описано выше.
Как вручную настроить Windows-клиент для синхронизации времени с NTP-сервером?
В этом разделе мы опишем, как вручную настроить синхронизацию времени на клиентах Windows. Это руководство можно использовать для настройки синхронизации времени на компьютерах Windows, не входящих в домен.
Сначала сбросьте все настройки службы времени и удалите службу:
Перезагрузите компьютер, а затем повторно зарегистрируйте службу времени:
Запустите службу w32Time:
Настройте синхронизацию клиента Windows с сервером NTP (вашим основным контроллером домена):
Перезапустите службу:
Обновите настройки конфигурации времени:
Синхронизировать время:
Проверьте статус:
Включить автоматический запуск службы времени с помощью PowerShell:
Подсказка. Если вам нужно быстро синхронизировать ваше устройство Windows с сервером точного времени, запустите:
Мне нравится технология и разработка веб-сайтов. С 2012 года я веду несколько собственных веб-сайтов и делюсь полезным контентом по гаджетам, администрированию ПК и продвижению веб-сайтов.
Большинство современных операционных систем, включая Windows, могут синхронизировать свое системное время с сервером NTP. Windows использует службу времени под названием «Время Windows», которая автоматически устанавливается в списке служб. Исполняемый файл программы — «w32time.exe». Служба устанавливается и включается по умолчанию во время установки.
Windows синхронизирует время по-разному, в зависимости от используемой реализации сети. При использовании одноранговой сети каждая отдельная рабочая станция синхронизируется с эталоном времени независимо.
Однако при развертывании доменной сети Windows только первичный контроллер домена (PDC) синхронизируется со ссылкой на время. Все остальные серверы и рабочие станции в домене синхронизируются с основным контроллером домена с использованием собственного протокола Windows. Процедура установки по умолчанию автоматически настраивает рабочие станции и серверы для синхронизации с управляющим основным контроллером домена. Только PDC необходимо настроить для синхронизации с внешним эталоном времени.
Настройка Windows Server для синхронизации с внешним эталоном времени.
Microsoft Windows Server 2008, Server 2003
Чтобы настроить Windows PDC для синхронизации с внешним сервером NTP, необходимо изменить запись реестра. При изменении настроек реестра рекомендуется заранее сделать резервную копию текущих настроек. Резервное копирование и модификация реестра легко выполняются с помощью утилиты «regedit», которую можно запустить из командной строки. Вы можете вернуться к предыдущим настройкам, если возникнут проблемы с изменениями реестра. Используйте редактор реестра «regedit», чтобы изменить следующие записи:
<р>1. Измените тип сервера на NTP.Раздел реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
Измените значение данных на: NTP <р>2. Установите флаги объявлений.
Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
Измените значение данных на: 5 <р>3. Включить сервер NTP
Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Измените значение data на: 1. <р>4. Укажите источники времени.
Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Измените значение данных на:
— это список одноранговых узлов NTP, разделенных пробелами, от которых может быть получено время. Если используются DNS-имена, вы должны добавить «0x1» к каждому DNS-имени. В качестве альтернативы можно указать список IP-адресов.
<р>5. Выберите интервал опроса.Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
Измените данные значения на:
это время в секундах между каждым опросом. Microsoft рекомендует значение 900, что соответствует частоте опроса каждые 15 минут.
<р>6. Задайте параметры коррекции времени.Эти параметры задают период времени для проверки меток времени, полученных из внешней ссылки. Они будут приняты только в том случае, если полученная временная метка окажется между этими параметрами реестра. Он предоставляет возможность отклонять метки времени, которые слишком далеки от системного времени хоста. Microsoft рекомендует установить значение 1 час (3600) или 30 минут (1800).
Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
Измените значение данных на:
Где максимальное положительное смещение полученной метки времени от системного времени.
Раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
Изменить значение данных на:
Где находится максимальное отрицательное смещение полученной отметки времени от системы время.
Остановите и перезапустите службу времени Windows с помощью команд net stop и net start:
net stop w32time && net start w32time
Синхронизация рабочей группы Windows< /p>
Microsoft Windows XP, Vista, Windows 7
При развертывании Windows для рабочих групп необходимо вручную настроить параметры синхронизации времени. Вам необходимо указать сервер времени, который служба времени Windows будет использовать в качестве эталонных часов. Это очень простой процесс; просто укажите отсчет времени, с которым хост должен синхронизироваться, используя команду «net time»:
Где находится DNS-имя или IP-адрес эталона времени.
Кроме того, вы можете использовать апплет свойств даты и времени из панели управления. Выберите вкладку «Интернет-время» в апплете, установите флажок «Автоматическая синхронизация с сервером времени в Интернете» и введите DNS-имя или IP-адрес сервера. Если вы выберете «Обновить сейчас», служба времени попытается связаться и синхронизироваться с эталоном времени немедленно.
«Время успешно синхронизировано с»
Это указывает на то, что связь с эталоном времени была успешно установлена и синхронизация прошла успешно.
"Произошла ошибка при синхронизации Windows с"
Была предпринята попытка связаться с указанной ссылкой времени, но ответ не получен.
"Произошла ошибка при синхронизации Windows с . Выборка времени была отклонена, потому что: Уровень партнера меньше уровня узла.
Это указывает на то, что контакт был установлен с указанной привязкой ко времени, но была обнаружена проблема. Как правило, это связано с тем, что эталон времени находился в несинхронизированном состоянии.
Апплет также будет периодически автоматически синхронизироваться с указанной ссылкой. Время следующего начала синхронизации отображается в нижней части окна апплета.
Об авторе.
Энди Шинтон всю свою карьеру работал в ИТ-индустрии, в основном в секторе времени и частоты. С 2002 года возглавляет отдел исследований и разработок TimeTools. Энди регулярно пишет официальные документы и статьи о NTP и сетевых решениях синхронизации.
Читайте также: