Вы можете столкнуться с ошибкой синхронизации времени в 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
Что такое протокол NTP и зачем он нужен
Протокол NTP позволяет компьютерам и устройствам синхронизироваться с высокоточными источниками времени, такими как атомные часы или GPS-устройства. Его разработали для точной и надежной передачи временных меток по IP-сетям. Понимание этого протокола поможет вам не только поддерживать точное время в сети, но и повысить общую стабильность и безопасность информационных систем.
Как время связано со стабильностью и безопасностью? В операционных системах есть службы, нормальная работа которых зависит от точности хода системных часов. Если на сервере не установлено точное время, это может стать причиной различных проблем. Например, в локальной сети требуется, чтобы часы машин, совместно использующих файлы, были синхронизированы — иначе невозможно будет правильно устанавливать время модификации файлов. Это, в свою очередь, может привести к конфликту версий или перезаписи важных данных.
В распределенных системах синхронизированное время жизненно важно для координации действий и процессов. Без него операции могут конфликтовать или завершаться неудачей. Это приводит к потенциальной потере или повреждению данных. Точное время также имеет критическое значение для протоколов безопасности, которые используются в аутентификации и шифровании. Несоответствия времени могут создавать уязвимости, которые будут использовать злоумышленники. Кроме того, во многих отраслях требуется точное отслеживание времени для соблюдения нормативных требований. Точные логи необходимы для аудитов и в юридических вопросах.
Как работает протокол NTP
В основе протокола NTP лежит иерархическая структура серверов точного времени. Она включает несколько уровней.
- Нулевой уровень — это эталонные часы, например атомные.
- Первый уровень — NTP-серверы, которые синхронизируются с эталонными часами. Это источник данных для серверов второго уровня.
- Второй уровень — тоже NTP-серверы. Они синхронизируются с первым уровнем, а также между собой.
Далее структура повторяется — она поддерживает до 256 уровней. При этом ей свойственны отказоустойчивость и избыточность. В случае отказов соединения с вышестоящими серверами резервные берут процесс синхронизации на себя. За счет избыточности обеспечивается постоянная доступность NTP-серверов. Многократная синхронизация позволяет протоколу использовать данные всех источников, чтобы рассчитать наиболее точное время.
Чем NTP отличается от SNTP
SNTP (Simple network time protocol), или простой протокол времени сети, — упрощенная версия NTP. Обе технологии предназначены для синхронизации часов компьютеров и устройств в сети, однако значительно различаются по своей сложности и точности.
NTP использует сложные алгоритмы для достижения высокой точности синхронизации времени, обычно в пределах миллисекунд от всемирного координированного времени (UTC). Протокол может учитывать задержки в сети и смещение времени часов в разных точках планеты, производя непрерывные корректировки для поддержания точности. Из-за своей сложности и точности NTP обычно используется в корпоративных средах, где критически важно поддерживать точное время. Например, в финансовых транзакциях, ведении логов и протоколах безопасности.
SNTP не выполняет постоянных корректировок. Это приводит к более низкому качеству синхронизации времени. В результате протокол больше подходит для простых приложений, где высокая точность не так важна. Это могут быть IP-камеры, видеорегистраторы и некоторые сетевые коммутаторы.
Еще одно различие двух протоколов в том, что NTP может подключаться к нескольким источникам времени, идентифицируя и игнорируя неисправные. SNTP подключается к единственному источнику и не обладает продвинутыми функциями, что делает его менее надежным. Он служит более простой альтернативой: жертвует точностью и надежностью ради легкости реализации.
Выбор протокола должен основываться на двух факторов:
- потребностях сети,
- критичности задач, которым важна синхронизация времени.
Установка и настройка NTP-клиента
Самым известным и распространенным программным средством для синхронизации времени является демон ntpd. В зависимости от настроек, указанных в конфигурационном файле (об этом еще пойдет речь ниже), он может выступать как в качестве сервера, так и в качестве клиента. Другими словами, может как принимать время с удаленных хостов, так и раздавать. Ниже подробно расскажем, как установить и настроить этот демон в Linux.
Шаг 1: установка пакета NTP
На этом шаге вы можете использовать инструмент управления пакетами вашей ОС. Например, для Ubuntu или дистрибутивов на базе Debian выполните команду в терминале:
sudo apt update
sudo apt install ntp
Для CentOS или RHEL используйте команду:
sudo yum install ntp
Это установит демон NTP, который отвечает за синхронизацию времени.
Шаг 2: настройка NTP-клиента
По завершении установки откройте в текстовом редакторе файл /etc/ntp.conf. В нем хранятся все настройки программы. Рассмотрим их более подробно.
Параметры логирования
Первая строка конфигурационного файла выглядит так: driftfile /var/lib/ntp/ntp.drift. В ней указывается файл для хранения информации о частоте смещения времени.
Внутри файла хранится значение, получаемое в результате предшествующих корректировок. Если внешние NTP-серверы по той или иной причине становятся недоступными, значение будет взятого из него.
Далее указывается файл, в который будут сохраняться логи синхронизации: logfile /var/log/ntp.log.
Список серверов для синхронизации
В конфигурационном файле указывается список NTP-серверов, с которыми будет осуществляться синхронизация. По умолчанию он выглядит так:
- server 0.ubuntu.pool.ntp.org
- server 1.ubuntu.pool.ntp.org
- server 2.ubuntu.pool.ntp.org
- server 3.ubuntu.pool.ntp.org
Каждая строка означает группу серверов, которые будут сообщать нашей машине корректное время. Повысить точность синхронизации можно с помощью опции iburst. Она указывает, что на сервер для синхронизации нужно посылать не один, а несколько пакетов. Чтобы добавить эту опцию, допишите к каждому серверу из списка выше iburst:
- server 0.ubuntu.pool.ntp.org iburst
- server 1.ubuntu.pool.ntp.org iburst
- server 2.ubuntu.pool.ntp.org iburst
- server 3.ubuntu.pool.ntp.org iburst
Можно также указать предпочтительный сервер при помощи опции prefer. По аналогии с проведенными выше манипуляциями просто допишите prefer в каждой строке со списком серверов:
- server 0.ubuntu.pool.ntp.org iburst prefer
- server 1.ubuntu.pool.ntp.org iburst prefer
- server 2.ubuntu.pool.ntp.org iburst prefer
- server 3.ubuntu.pool.ntp.org iburst prefer
NTP-серверы разбросаны по всему миру — вот, например, список доступных публичных NTP-серверов. Чтобы обеспечить более точную установку системных часов, лучше синхронизироваться только с NTP-серверами того региона, в котором расположен ваш сервер. Для этого в конфигурационном файле /etc/ntp.conf нужно указать в адресах региональный поддомен для pool.ntp.org:
- Азия — asia.pool.ntp.org,
- Европа — europe.pool.ntp org,
- Африка — africa.pool.ntp.org,
- Северная Америка — north-america.pool.ntp.org,
- Южная Америка — south-america.pool.ntp.org,
- Океания — oceania.pool.ntp.org.
Можно также указывать поддомены для отдельных стран. Например, для России это ru.pool.ntp.org. Полный список региональных поддоменов доступен на сайте NTP Pool Project.
Пример файла для NTP-клиента:
# Указываем NTP-сервер, к которому будет подключаться клиент
server 192.168.1.10 iburst
# Настройки локальной сети
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Логирование
logfile /var/log/ntp.log
# Указываем, что это клиент
driftfile /var/lib/ntp/drift
Шаг 3: Запуск и включение службы NTP
После настройки клиента необходимо запустить службу NTP. Используйте следующую команду:
sudo systemctl start ntp
Шаг 4: Настройка брандмауэра (если необходимо)
Если на вашей системе включен брандмауэр, необходимо разрешить трафик NTP через UDP-порт 123. На Ubuntu с UFW это можно сделать командой:
sudo ufw allow 123/udp
Шаг 5: Проверка синхронизации NTP
Чтобы проверить, правильно ли синхронизируется ваш клиент, можете использовать следующую команду:
ntpq -p
Эта команда отобразит список NTP-серверов, к которым подключен ваш клиент, вместе с их статусом. Вы должны увидеть звездочку (*) рядом с сервером, с которым ваша система в настоящее время синхронизирована.
Установка и настройка NTP-сервера
Клиент готов — теперь настроим сервер.
Шаг 1: Установка пакета NTP
Для сервера NTP установка такая же, как для клиента. Используйте команды:
sudo apt update
sudo apt install ntp
Для CentOS или RHEL используйте:
sudo yum install ntp
Шаг 2: Настройка NTP-сервера
Пример файла ntp.conf для NTP-сервера:
# Указываем серверы времени, с которыми будет синхронизироваться наш сервер
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
# Настройки локальной сети
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Разрешаем доступ к серверу для локальных клиентов
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Логирование
logfile /var/log/ntp.log
# Указываем, что это сервер времени
driftfile /var/lib/ntp/drift
Проверка работы NTP-сервера
Для проверки работы сервера можно выполнить команду:
ntpq -pn
Ее вывод будет представлен в виде таблицы:
remote refid st t when poll reach delay offset jitter
==============================================================================
*62.76.96.4 130.173.91.58 2 u 207 256 37 10.985 -215.79 256.992
+85.21.78.91 89.175.22.41 2 u 193 256 37 32.623 -207.70 259.121
+31.131.249.27 89.175.22.41 2 u 198 256 37 0.621 -216.90 257.037
+85.21.78.8 193.11.166.20 2 u 193 256 37 32.028 -207.41 259.863
+91.189.94.4 193.79.237.14 2 u 192 256 37 50.573 -206.62 259.542
В таблице указываются следующие параметры:
- remote — адрес сервера точного времени (в этой графе отображаются серверы из списка в конфигурационном файле);
- refid — вышестоящий сервер (тот, от которого сервер из предыдущей графы получает синхронизацию);
- st — уровень (stratum) сервера;
- t — тип пира (u- unicast, m- multicast);
- when — время последней синхронизации;
- poll — время в секундах, за которое демон NTP синхронизируется с пиром;
- reach — состояние доступности сервера; после восьми успешных попыток синхронизации значение этого параметра становится равным 377;
- delay — время задержки ответа от сервера;
- offset — разница времени между нашим сервером и сервером синхронизации; положительное значение этого параметра означает, что наши часы спешат, отрицательное — что отстают;
- jitter — смещение времени на удаленном сервере.
Слева от адреса сервера могут быть указаны следующие символы:
- * (звездочка) — сервер выбран для синхронизации;
- + (плюс) — сервер, пригодный для обновления (с которым можно синхронизироваться);
- (нет символа) — с сервером синхронизироваться не рекомендуется;
- х — сервер недоступен.
Проверить, пригоден ли сервер из списка для синхронизации, можно при помощи команды:
ntpdate -q <адрес_NTP_сервера>
Вывод команды будет иметь такой вид:
server хх.ххх.ххх.ххх, stratum 2, offset −0.127936, delay 0.02600
7 Jul 14:30:23 ntpdate[7716]: adjust time server хх.ххх.ххх.ххх offset −0.127936 sec
Здесь видно, что сервер пригоден для синхронизации, его уровень — 2, смещение — 0,127936 мс, задержка — 0,026 мс.
Узнать, были ли ошибки при синхронизации, можно из логов. Чтобы их посмотреть, введите команду:
journalctl -u ntpd
Текущий статус ntpd можно проверить с помощью следующей команды:
ntpdc -c sysinfo
Вывод выглядит так:
system peer: 62.76.96.10
system peer mode: client
leap indicator: 11
stratum: 3
precision: −21
root distance: 0.01314 s
root dispersion: 1.66203 s
reference ID: [62.76.96.4]
reference time: d768a894.3824a929 Thu, Jul 10 2014 9:52:20.219
system flags: auth monitor ntp kernel stats
jitter: 0.393768 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
Зачем нужен резервный сервер точного времени
Резервный сервер никогда не будет лишним. Если основной окажется недоступным из-за проблем с сетью, технического обслуживания или сбоя, резервный сможет взять на себя его функции. Так получится избежать сбоев в синхронизации времени.
В средах с высоким трафиком или множеством устройств использование основного и резервного NTP-серверов помогает распределить нагрузку. Это помогает исключить эффект «узкого горлышка» и улучшить общую производительность.
Настройка резервных серверов, расположенных в разных регионах, позволяет снизить риск локальных сбоев, влияющих на синхронизацию времени. Если основной сервер находится, скажем, в Москве и сталкивается с проблемами, резервный сервер в Санкт-Петербурге сможет предоставить информацию о времени. Кроме того, при использовании нескольких серверов клиент может сравнивать время, предоставляемое каждым из них. Это позволяет системе выбрать наиболее точный источник и повышает общую точность синхронизации.
Настройка резервного сервера
Откройте файл конфигурации ntp.conf — о нем мы писали выше — и укажите резервный сервер. Пример:
- server primary-ntp-server.example.com iburst
- server backup-ntp-server.example.com iburst
Также можно настроить приоритеты для серверов. Например, использовать параметр prefer только для основного сервера:
- server primary-ntp-server.example.com iburst prefer
- server backup-ntp-server.example.com iburst
После этих изменений необходимо будет перезапустить службу.
Проверка статуса синхронизации NTP в Linux и Windows
Несмотря на то, что NTP характеризуется высокой надежностью, рекомендуем периодически проверять статус синхронизации. Посмотрим, как это можно сделать в Linux и Windows.
Linux
Чтобы получить информацию о состоянии сервера и его синхронизации, выполните команду:
ntpq -p
Она выведет список NTP-серверов, с которыми ваш сервер пытается синхронизироваться, а также информацию о состоянии синхронизации.
Чтобы узнать о состоянии синхронизации демона NTP (ntpd), работающего на локальной машине, выполните команду:
ntpstat
Вы получите информацию о том, синхронизирован ли сервер, и если да, то насколько точно.
Если ваша система использует systemd, вы можете проверить статус времени и синхронизации с помощью команды:
timedatectl status
Она покажет текущее время, статус синхронизации и информацию о часовом поясе.
Windows
Для проверки статуса синхронизации времени введите в терминале команду:
w32tm /query /status
Она покажет текущее состояние службы времени Windows, включая информацию о последнем успешном синхронизированном времени.
Чтобы увидеть список доступных NTP-серверов, с которыми ваш компьютер может синхронизироваться, выполните команду:
w32tm /query /peers
Это даст вам представление о том, с какими серверами ваша система пытается установить связь.
Для проверки конфигурации NTP-сервера можно использовать команду:
w32tm /query /configuration
Она покажет текущие настройки службы времени Windows.
Основные ошибки при настройке NTP и их устранение
Настройка NTP может быть сопряжена с различными проблемами. Рассмотрим три распространенные ошибки и способы их устранения.
The NTP socket is in use, exiting
Эта ошибка возникает, когда служба пытается запуститься, но обнаруживает, что сокет уже используется другой службой или процессом. Такое может произойти, если NTP уже запущен или если другой процесс использует тот же порт (обычно 123).
Чтобы устранить ошибку, проверьте, запущен ли уже процесс NTP, командой:
sudo systemctl status ntp
Если он запущен, вы можете перезапустить его:
sudo systemctl restart ntp
Если другой процесс использует порт, вы можете найти его с помощью команды:
sudo lsof -i :123
После этого можно остановить конфликтующий процесс или изменить конфигурацию.
Connection refused
Ошибка Connection refused возникает, когда клиент NTP не может подключиться к серверу. Это может быть связано с неправильной конфигурацией сервера, его недоступностью или блокировкой порта.
Чтобы устранить ошибку, проверьте, что сервер доступен и работает. Попробуйте выполнить команду:
ntpq -p
Она покажет список доступных серверов и их статус. Проверьте конфигурацию вашего NTP-клиента. Убедитесь, что в файле конфигурации /etc/ntp.conf указаны правильные адреса серверов. Убедитесь, что порты не блокируются брандмауэром. Проверьте настройки iptables или ufw:
sudo ufw status
Если порт 123 закрыт, откройте его:
sudo ufw allow 123/udp
No server suitable for synchronization found
Эта ошибка указывает, что клиент не может найти подходящий сервер для синхронизации времени. Это может быть вызвано неправильной конфигурацией серверов или их недоступностью.
Для устранения проверьте файл конфигурации /etc/ntp.conf и убедитесь, что в нем указаны корректные и доступные NTP-серверы. Попробуйте использовать другие публичные серверы, если текущие недоступны. Убедитесь, что ваш сервер имеет доступ к интернету, если вы используете публичные NTP-серверы. Проверить соединение можно с помощью команды:
ping google.com
После выполнения команды вы увидите вывод, который будет выглядеть примерно так:
PING google.com (172.217.16.206): 56 data bytes
64 bytes from 172.217.16.206: icmp_seq=0 ttl=117 time=14.2 ms
64 bytes from 172.217.16.206: icmp_seq=1 ttl=117 time=13.8 ms
64 bytes from 172.217.16.206: icmp_seq=2 ttl=117 time=14.0 ms
- 64 bytes from…: ваш компьютер успешно получил ответ от указанного адреса.
- icmp_seq: номер последовательности пакета.
- ttl: время жизни пакета, указывающее, сколько маршрутизаторов он прошел.
- time: время, затраченное на получение ответа, измеряется в миллисекундах (ms).
Чтобы остановить выполнение команды ping, нажмите Ctrl + C. Это завершит процесс и покажет статистику, включая количество отправленных и полученных пакетов, а также среднее время ответа.
Как сделать систему NTP более безопасной
У протокола NTP есть защищенная версия — NTS (Network Time Security). Она была разработана для устранения уязвимостей, который может подвергаться атакам, таким как подделка времени и атаки типа «man-in-the-middle».
Первым шагом в использовании NTS является выбор сервера, который поддерживает этот протокол. Современные NTP-серверы, такие как NTPsec и Chrony, уже имеют встроенную поддержку NTS.
Для настройки сервера необходимо активировать NTS. Это включит конфигурацию прослушивания NTS-соединений и установку необходимых криптографических ключей. Они отвечают за аутентификацию и шифрование данных. Управление этими ключами является критически важным аспектом реализации NTS. Сервер должен генерировать и хранить закрытые ключи, в то время как открытые могут быть распространены среди клиентов.
Клиенты, которые хотят использовать NTS для синхронизации времени, также должны быть настроены на работу с протоколом. Это подразумевает указание адреса сервера и, в некоторых случаях, загрузку открытого ключа сервера для аутентификации.
При установлении соединения между клиентом и сервером происходит обмен ключами, что позволяет обеим сторонам аутентифицировать друг друга. Этот процесс предотвращает возможность того, что клиент получит недостоверную информацию о времени из-за вмешательства со стороны злоумышленника. После успешной аутентификации устанавливается безопасное соединение, которое позволяет клиенту запрашивать и получать точное время от сервера.
Заключение
NTP играет важную роль в современном мире, обеспечивая синхронизацию времени между устройствами в компьютерных сетях. Точное время необходимо для финансовых транзакций, работы систем управления, распределенных баз данных и многого другого. Благодаря этому протоколу устройства могут корректно обмениваться данными, поддерживать согласованность и обеспечивать безопасность операций.
Кроме того, с учетом растущих угроз кибербезопасности, использование защищенных версий NTP, таких как Network Time Security (NTS), становится все более актуальным. NTS обеспечивает дополнительные уровни аутентификации и шифрования, что помогает защитить системы от атак и гарантировать целостность получаемой информации о времени. В итогеёёё NTP не только облегчает повседневные операции, но и обеспечивает необходимую безопасность, что делает его неотъемлемой частью любой надежной IT-инфраструктуры.
Ошибка синхронизации времени в Windows может вызывать проблемы с доступом к HTTPS-сайтам, работой программ и другими неполадками. Например, браузеры могут выдавать ошибку «Your clock is ahead» или «Your clock is behind». В этой статье расскажем, как устранить ошибки синхронизации времени с NTP-серверами (например, time.windows.com) с помощью PowerShell, проверки сети и настройки службы w32time.
Приобрести оригинальные ключи активации Windows 10 можно у нас в каталоге от 1490 ₽
Проверка автоматической синхронизации времени
1. Проверьте настройки времени:
– Откройте Параметры → Время и язык → Дата и время (ms-settings:dateandtime).
– Убедитесь, что включена опция Установить время автоматически (Set time automatically).
– Нажмите Синхронизировать (Sync now) в разделе Дополнительные настройки.
2. Проверьте источник времени:
w32tm /query /peers
– По умолчанию: time.windows.com (для компьютеров в рабочей группе).
Диагностика службы Windows Time
1. Проверьте состояние службы w32time:
Get-Service w32time | Select DisplayName, Status, ServiceName, StartType
– Служба должна быть Запущена (Running) и иметь тип запуска Автоматический или Ручной.
2. Перезапустите службу:
Restart-Service -Name w32time
3. Включите службу, если отключена:
Set-Service -Name w32time -StartupType Automatic
Start-Service -Name w32time
Проверка сетевой доступности NTP-сервера
1. Проверьте разрешение имени:
nslookup time.windows.com
– Если ошибка «The peer is unresolved», DNS-сервер недоступен или изолирован.
2. Смените DNS на Google:
– Выведите сетевые интерфейсы:
Get-NetAdapter
– Установите DNS (ifIndex — номер интерфейса, например, 10):
Set-DNSClientServerAddress -InterfaceIndex 10 -ServerAddresses 8.8.8.8
3. Проверьте доступность сервера:
ping time.windows.com
4. Проверьте порт NTP (UDP 123):
w32tm /stripchart /computer:time.windows.com
– Ошибка 0x800705B4 указывает на недоступность сервера.
5. Откройте порт UDP 123 в Windows Defender Firewall:
New-NetFirewallRule -DisplayName "AllowOutNTP" -Direction Outbound -Protocol UDP -RemotePort 123 -Action Allow
Enable-NetFirewallRule -DisplayName AllowOutNTP
6. Проверьте сетевые ограничения:
– Убедитесь, что UDP 123 не блокируется провайдером, файрволом или роутером.
Смена NTP-сервера
Если time.windows.com недоступен, используйте другой сервер, например, time.nist.gov или серверы из ntppool.org.
1. Настройте новый NTP-сервер:
w32tm /config /manualpeerlist:time.nist.gov,0x1 /syncfromflags:manual /reliable:yes /update
2. Перезапустите службу:
net stop w32time && net start w32time
3. Выполните синхронизацию:
w32tm /config /update
w32tm /resync
4. Проверьте статус:
w32tm /query /status
Сброс настроек службы времени
Если синхронизация не работает, сбросьте настройки w32time:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /resync
Настройка через графический интерфейс
1. Откройте Параметры → Время и язык → Дата и время → Дополнительные часы → Время Интернета.
2. Убедитесь, что включена Синхронизация с сервером времени в Интернете.
3. Добавьте time.nist.gov → Обновить сейчас (Update Now).
Настройка через реестр
Добавьте NTP-сервер в реестр:
– Путь: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers.
– Создайте строковый параметр (например, 2) со значением time.nist.gov.
Проверка задания в планировщике задач
1. Откройте Планировщик задач (taskschd.msc).
2. Перейдите в Библиотека планировщика задач → Microsoft → Windows → Time Synchronization.
3. Убедитесь, что задание SynchronizeTime включено.
4. Через PowerShell:
Get-ScheduledTask SynchronizeTime
Get-ScheduledTask SynchronizeTime | Enable-ScheduledTask
Рекомендации
– Безопасность: Используйте надёжные NTP-серверы (time.nist.gov, pool.ntp.org).
– Мониторинг: Проверяйте логи в Event Viewer (System, события w32time):
Get-WinEvent -LogName System | Where-Object {$_.ProviderName -eq "Microsoft-Windows-Time-Service"}
– Автоматизация: Настройте скрипт для проверки синхронизации:
$status = w32tm /query /status
if ($status -notlike "*Synchronized*") { w32tm /resync; Write-Output "Time resynced" }
– Резервное копирование: Сохраняйте настройки реестра перед изменением:
reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers C:\PS\ntp.reg
Ошибки синхронизации времени в Windows устраняются проверкой службы w32time, DNS, порта UDP 123 и настройкой NTP-серверов. PowerShell упрощает диагностику и настройку, позволяя быстро сменить сервер, открыть порт или сбросить настройки. Правильная синхронизация времени критически важна для стабильной работы приложений и безопасности соединений.
Компьютеры члены домена синхронизируют свое время с доменным контроллером. Эта настройка прописывается автоматически при включении компьютера в домен. Но сам доменный контроллер остается не настроенным, источника точного времени по умолчанию у него нет.
В интернете существует большое количество ntp серверов, предоставляющих точное время. И Windows Server может с ними синхронизироваться.Для указания адреса ntp сервера используется команда w32tm (KB307897):
w32tm /config /syncfromflags:manual /manualpeerlist:список
Где список — адрес(а) ntp сервера(ов).
После указания адреса ntp сервера требуется сообщить запущенной службе времени об изменении настроек:
w32tm /config /update
Пример настройки Windows Server
Исходное состояние:
C:\>w32tm /query /status Leap Indicator: 0(no warning) Stratum: 1 (primary reference - syncd by radio clock) Precision: -6 (15.625ms per tick) Root Delay: 0.0000000s Root Dispersion: 10.0000000s ReferenceId: 0x4C4F434C (source name: "LOCL") Last Successful Sync Time: 19.01.2012 22:24:14 Source: Local CMOS Clock Poll Interval: 6 (64s)
Указываем адрес ntp сервера:
C:\>w32tm /config /syncfromflags:manual /manualpeerlist:ntp.time.in.ua The command completed successfully.
Применяем настройки:
C:\>w32tm /config /update The command completed successfully.
Проверяем:
C:\>w32tm /query /status Leap Indicator: 0(no warning) Stratum: 2 (secondary reference - syncd by (S)NTP) Precision: -6 (15.625ms per tick) Root Delay: 0.0312500s Root Dispersion: 7.7760349s ReferenceId: 0x3E95001E (source IP: 62.149.0.30) Last Successful Sync Time: 19.01.2012 23:27:40 Source: ntp.time.in.ua Poll Interval: 8 (256s)
Сервер времени успешно настроен.
microsoft-windows:win-command-line-tools:w32tm-manage-windows-time-service
Содержание
Утилита w32tm — Управляем службой времени в Windows
Как настроить NTP-сервер с помощью w32tm?
Как проверить статус синхронизации с NTP-сервером с помощью w32tm?
Проверяем текущее состояние службы времени и статус последней успешной синхронизации с NTP-сервером:
w32tm /query /Status
Индикатор помех: 0(предупреждений нет) Страта: 4 (вторичная ссылка - синхронизирована с помощью (S)NTP) Точность: -6 (15.625ms за такт времени) Задержка корня: 0.0937500s Дисперсия корня: 7.9058435s Идентификатор опорного времени: 0x0AA01008 (IP-адрес источника: 10.10.1.8) Время последней успешной синхронизации: 14.07.2020 14:53:05 Источник: DC01.ad.holding.com Интервал опроса: 10 (1024s)
Как проверить доступность NTP-сервера с помощью w32tm?
Отсылается 5 запросов на UDP порт 123 NTP-сервера следующим образом:
w32tm /stripchart /computer:DC01.ad.holding.com /dataonly /samples:5
Ответ от NTP-сервера получим примерно такой:
Отслеживание DC01.ad.holding.com [10.10.1.8:123].
Сбор образцов 5.
Текущее время - 21.12.2016 10:28:13.
10:28:13, +00.1740513s
10:28:15, +00.1764264s
10:28:17, +00.1788762s
10:28:19, +00.1871543s
10:28:21, +00.1868310s
· Последнее изменение: 14.07.2020 15:09 —
Алексей Максимов