Вы можете столкнуться с ошибкой синхронизации времени в Windows, когда ваш компьютер не может автоматически синхронизировать свое время с серверами времени time.microsoft.com в Интернете. Из-за некорректного времени на компьютере у вас может возникать ошибка «
Your clock is ahead/ Ваши Часы спешат (отстают)
» при открытии HTTPS сайтов Chrome (и в других браузерах), не корректно работать сторонние программы, и появляться различные другие неприятности.
Если попытаться вручную выполнить синхронизацию времени из панели управления Windows (Control Panel -> Date and Time -> Internet Time -> Change Settings -> Update now), появляется ошибка:
An error occurred while windows was synchronizing with time.windows.com. The peer is unreachable.
Также здесь может быть ошибка:
The peer is unresolved.
Проверьте, что у вас настроена автоматическая синхронизация времени с NTP серверами в Интернете. Перейдите в раздел Settings -> Time and Language -> Date and Time (можно перейти в этот раздел с помощью команды быстрого доступа по URI:
ms-settings:dateandtime
). Проверьте, что здесь включена опцию Set time automatically и выполните синхронизацию, нажав кнопку Sync now в разделе Additional settings.
Если синхронизация времени с Интернетом не работает, проверьте, с какого внешнего NTP сервера должен получить время ваш компьютер. Выполните команду:
w32tm /query /peers
По умолчанию компьютеры в рабочих группах (не присоединенные к домену Active Directory) настроены на получение времени с серверов time.windows.com.
Если при запуске этой команды появилась ошибка “The following error occurred: The service has not been started. (0x80070426)”, проверьте состояние службы Windows Time. Она должна быть настроена на автоматический или ручной запуск. Можете проверить состояние службы с помощью PowerShell или консоли services.msc:
Get-Service w32time| Select DisplayName,Status, ServiceName,StartType
Перезапустите службу:
Restart-Service -Name w32time
Если служба отключена, включите ее.
Проверьте, что с вашего компьютера доступен хост time.microsoft.com.
Сначала проверьте, что ваш компьютер может разрешить это имя в IP адрес:
nslookup time.windows.com
Если ваш компьютер не может отрезолвить это имя в IP адрес (ошибка синхронизации времени The peer is unresolved), значит в настройках сетевого адаптера вашего компьютера указан DNS сервер, который не доступен, или изолирован от интернета. Попробуйте сменить адрес первичного DNS сервера на DNS сервер Google (8.8.8.8). Можно изменить настройки DNS для сетевого адаптера в Windows с помощью PowerShell.
Вывести список сетевых интерфейсов:
Get-NetAdapter
Изменить настройки DNS для сетевого адаптера с ifIndex 10:
Set-DNSClientServerAddress –InterfaceIndex 10 –ServerAddresses 8.8.8.8
Проверьте доступность сервера с помощью ping:
ping time.windows.com
И затем проверьте, что сервер времени Microsoft доступен по порту NTP (UDP 123). Для проверки доступности UDP порта можно использовать утилиту portquery или можно напрямую обратиться к серверу и запросить у него текущее время:
w32tm /stripchart /computer:time.windows.com
Если команда вернет ошибку error: 0x800705B4, значить указанный NTP сервер не доступен. Проверьте, что в Windows открыт исходящий порт UDP/123 для протокола NTP (по умолчанию порт должен быть открыт). Вы можете принудительно открыть порт в Windows Defender Firewall с помощью PowerShell:
New-NetFirewallRule -DisplayName "AllowOutNTP" -Direction Outbound -Protocol UDP -RemotePort 123 -Action Allow
Enable-NetFirewallRule -DisplayName AllowOutNTP
Также убедитесь, что исходящий NTP трафик не блокируется на сетевом уровне (провайдера, вашего файервола или другими сетевыми устройствами).
Если этот NTP сервер не доступен, вы можете использовать другой NTP сервер.
Можно указать
time.nist.gov
или ближайший к вам NTP сервер, который можно получить на сайте
https://www.ntppool.org
.
Можно изменить адрес вашего NTP сервера с помощью командной строки:
w32tm /config /manualpeerlist:time.nist.gov,0x1 /syncfromflags:manual /reliable:yes /update
Перезапустите службу времени (в данном примере вы запустим несколько команд в одну строку):
net stop w32time && net start w32time
Затем выполните синхронизацию времени:
w32tm /config /update
w32tm /resync
Проверьте, что ваш компьютер успешно получил время с нового источника времени (NTP сервера):
w32tm /query /status
Если ничего не помогло, попробуйте полностью сбросить настройки службы Windows Time:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
Выполните синхронизацию времени:
w32tm /resync
Также вы можете добавить NTP сервер в список серверов времени и выполнить синхронизацию из панели управления Windows. Перейдите в Settings -> Time & language -> Date & time -> Additional clocks –> Internet Time
Убедитесь, что включена опцию Synchronize with an Internet time, добавьте новый сервер time.nist.gov и нажмите кнопку Update Now.
Вы можете добавить NTP сервера в этот список через реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers.
Для автоматической синхронизации времени в Windows используется отдельно задание в планировщике Task Scheduler. Запустите консоль taskschd.msc и перейдите в раздел Task Scheduler (Local) -> Task Scheduler Library -> Microsoft -> Windows -> Time Synchronization. Проверьте, что задание SynchronizeTime включено.
Также вы можете проверить состояние задания Task Scheduler с помощью PowerShell:
Get-ScheduledTask SynchronizeTime
Чтобы включить его:
Get-ScheduledTask SynchronizeTime|Enable-ScheduledTask
Время на прочтение
1 мин
Количество просмотров 17K
Демократия есть искусство управления цирком изнутри обезьяньей клетки.
Генри Луис Менкен
В крупных, постоянно меняющихся и развивающихся гетерогенных сетях установка адреса локального ntp-сервера на всех машинах может представлять определенную проблему. В данном случае можно воспользоваться возможностями DNS-сервера BIND и подменить выдаваемый по запросу «time.windows.com» ip-адрес.
На DNS сервере (на примере SLES 10) создадим интересующую нас зону следующего содержания:
/var/lib/named/master/time.windows.com
$TTL 2d @ IN SOA ns.example.com. root.ns.example.com. ( 2009012810 ; serial 3h ; refresh 1h ; retry 1w ; expiry 1d ) ; minimum time.windows.com. IN NS ns.example.com. time.windows.com. IN A 192.168.0.1
где 192.168.0.1 — ip-адрес локального ntp-сервера
В конфигурационный файл /etc/named.conf добавляем строки:
zone "time.windows.com" in { file "master/time.windows.com"; type master; allow-transfer { acls; }; };
где »’acls»’ — используемые в локальной сети ACL’и
Перегружаем Bind:
rcnamed reload
Если все правильно в логе /var/log/messages появится подобная строчка:
May 24 08:17:32 ns named[30279]: zone time.windows.com/IN: loaded serial 2009012810
Проверяем результат на клиентской машине предварительно сбросив кэш dns (How_do_I_Flush_DNS?):
# ping time.windows.com PING time.windows.com (192.168.0.1) 56(84) bytes of data. 64 bytes from ntp.example.com (192.168.0.1): icmp_seq=1 ttl=254 time=0.896 ms
Синхронизация времени — это функция на устройствах с Windows, позволяющая в автоматическом режиме подстраивать время к актуальному часовому поясу и дате. Обычно, когда она включена, время настраивается с различными серверами. По умолчанию большинство пользователей могут увидеть, что их устройство подключается к time.windows.com.
Проблема синхронизации времени с данным сервером является довольно распространённой ошибкой. Связана она с тем, что в некоторых случаях службе подстройки Windows не удаётся подключиться к сайту. Причины данного сбоя могут быть разные: от сброса подсоединения к интернету до повреждения определённых протоколов. Ниже представлены несколько вариантов по исправлению данной неполадки.
Решение 1. Временно отключите сторонний брандмауэр и программное обеспечение безопасности
Брандмауэр стороннего производителя — одна из наиболее распространённых причин, по которым не удаётся установить соединение с сервером синхронизации. Поэтому, если вы используете какой-либо тип стороннего устройства, вам следует отключить его или удалить, а затем посмотреть, исправило ли это ситуацию.
Вместе с тем слишком агрессивная защита от вредоносных программ также может вызывать сбой синхронизации времени с ошибкой подключения к time.windows.com. Таким образом, попробуйте отключить антивирусное ПО и посмотреть, поможет ли это. Если проблема в этом, добавьте адрес сервера в список исключений.
Решение 2. Переключите службу времени Windows в автоматический режим
Служба Windows Time поддерживает процесс синхронизации с серверами времени в сети. Если эта служба не включена (для этого может быть много причин), подстройка времени в Windows может сопровождаться сбоем.
- Нажмите сочетание клавиш Win + X, и выберите Панель управления.
- Перейдите в раздел Администрирование.
- В новом окне прокрутите вниз до пункта Службы, и дважды щёлкните ЛКМ.
- Найдите в списке Службу синхронизации времени, кликните ПКМ, и выберите Свойства.
- В пункте Тип запуска установите опцию автоматической подстройки.
- Нажмите: Запустить, Применить, Ок.
Решение 3. Разрешите службе времени Windows взаимодействовать с рабочим столом
Инструкция:
- Откройте Службы, как описано выше.
- Найдите Службу синхронизации времени ещё раз и дважды щёлкните по ней ЛКМ.
- В новом окне перейдите на вкладку Вход в систему.
- Здесь выберите «С системной учётной записью».
- Отметьте опцию Разрешить службе взаимодействовать с рабочим столом.
- Нажмите: Применить и Ок.
Решение 4. Используйте другой сервер
Если системе так и не удаётся синхронизироваться, есть вероятность, что проблема на сервере. Попробуйте использовать другой.
- Нажмите ПКМ по дате и времени в правом нижнем углу.
- Выберите пункт: Настройка даты и времени.
- Перейдите на вкладку Время по Интернету, и нажмите Изменить настройки.
- Установите галочку: Синхронизировать с сервером времени в интернете.
- Введите в строку сервера один из следующих адресов:
- time-b-wwv.nist.gov
- time-e-wwv.nist.gov
- time-e-g.nist.gov
- time-a-g.nist.gov
- utcnist.colorado.edu
- ntp-d.nist.gov
- ntp-b.nist.gov
- Нажмите: Обновить сейчас и ОК.
Примечание: при синхронизации часов убедитесь, что они отклоняются не более чем на 15 часов от текущего времени. Если это так, вам следует установить правильное время вручную, узнать которое можно, введя в поиске браузера запрос «Точное время». Если расхождение более 15 часов, необходимо выбрать другой сервер из предоставленного списка.
Решение 5. Повторно зарегистрируйте службу времени Windows
Используя командную строку, можно попробовать повторно зарегистрировать службу времени Windows:
- Нажмите ПКМ по значку Windows в левом нижнем углу.
- Выберите Командная строка (Администратор).
- В новое окно вставьте поочерёдно следующие команды, нажимая Enter после каждой:
- net stop w32time
- w32tm/unregister
- w32tm/register
- net start w32time
- w32tm/resync/nowait
- После выполнения всех команд перезагрузите компьютер и посмотрите, помогло ли это решить проблему.
Решение 6. Попробуйте выполнить синхронизацию в другой сети
По словам инженеров Windows, сеть некоторых пользователей может блокировать протокол NTP. Чтобы исправить это, вам придётся переключиться на другого интернет-провайдера. Очевидно, что менять его для синхронизации времени не очень разумно, поэтому можно использовать обходной путь.
Если у вас есть современный мобильный телефон, поддерживающий функцию точки доступа, включите её. Затем вернитесь к компьютеру и подключите его к сети телефона. Попробуйте синхронизировать часы.
Начиная с Windows 2000 все операционные системы Windows включают в себя службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol).
По умолчанию служба времени в Windows сконфигурирована следующим образом:
• При установке операционной системы Windows запускает клиента NTP и синхронизируется с внешним источником времени;
• При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;
• При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;
• PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.
Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии, и надежным источником времени можно назначить любой компьютер. В качестве примера я опишу настройку NTP-сервера в Windows Server 2008 R2, хотя со времен Windows 2000 процедура не особо изменилась.
Запуск NTP сервера
Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2012) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.
Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.
Затем перезапускаем службу времени командой net stop w32time && net start w32time
После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды w32tm /query /configuration. Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled :1 , то все в порядке, сервер времени работает.
Для того, чтобы NTP-сервер мог обслуживать клиентов, не забудьте на файерволле открыть UDP порт 123 для входящего и исходящего траффика.
Основные настройки NTP сервера
NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLM\System\CurrentControlSet\services\W32Time\Parameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.
Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.
И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.
В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:
0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.
При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).
Еще один важный параметр AnnounceFlags находится в разделе реестра HKLM\System\CurrentControlSet\services\W32Time\Config. Он отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:
0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его, как источник времени;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени для всего леса даже при отсутствии связи с вышестоящими NTP-серверами. Ни один другой контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как надежном источнике времени, если он не может найти источник времени для себя.
Значение AnnounceFlags составляет сумму составляющих его флагов, например:
10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.
5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.
Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).
После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update. И еще несколько команд для настройки, мониторинга и диагностики службы времени:
w32tm /monitor – при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov
w32tm /resync – при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени.
w32tm /stripchart– показывает разницу во времени между текущим и удаленным компьютером, причем может выводить результат в графическом виде. Например, команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выведет результат в текстовом виде.
w32tm /config – это основная команда, используемая для конфигурирования службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update
w32tm /query — показывает текущие настройки службы. Например команда w32tm /query /source покажет текущий источник времени, а w32tm /query /configuration выведет все параметры службы.
Ну и на крайний случай 🙁
w32tm /unregister — удаляет службу времени с компьютера.
w32tm /register – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.
В Windows Server 2019 и 2022 по умолчанию указан сервер времени time.windows.com. В некоторых средах он недоступен, но точное время нужно, но заменить сервер времени по умолчанию через пользовательский интерфейс затруднительно. Заменить сервер времени можно отредактировав реестр с помощью PowerShell (от имени администратора):
Проверяем текущий сервер:
w32tm /query /source
time.windows.com,0x8
Заменяем на нужный сервер времени:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" -Name "NtpServer" -Value "pool.ntp.org,0x8"
После перезапустим службу, чтобы изменения вступили в силу и выполним синхронизацию времени:
Restart-Service w32time
w32tm /resync
Отправка команды синхронизации на локальный компьютер
Команда выполнена успешно.
Готово.