Синхронизация времени в домене Active Directory критически важна для корректного функционирования сервисов и механизмов безопасности. Если в домене не настроена четкач схема синхронизации времени, это может вызвать проблемы с аутентификацией, работой криптографических протоколов, сертификатов при взаимодействии со внутренними и внешними системами. Так, например, Kerberos аутентификация требует, чтобы время между клиентом и сервером не отличалась более чем на пять минут. В этой статье, мы рассмотрим, как должна работать синхронизация времени в домене AD, и как настроить синхронизацию контроллера домена с внешним источником точного времени (NTP).
Содержание:
- Как работает синхронизация времени в домене AD?
- Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
- Настройка групповой политики для синхронизации времени PDC с NTP
- Настройка синхронизации времени на клиентах домена
Как работает синхронизация времени в домене AD?
Схема синхронизации времени в домене Active Directory имеет строгую иерархию:
- Главным источником времени в домене является контроллер домена с FSMO ролью эмулятора PDC.
- С PDC синхронизируют время все остальные контроллеры домена.
- Рядовые сервера и рабочие станции синхронизируют свое время с ближайшими DC согласно топологии AD (по умолчанию компьютеры Windows синхронизируют время внешним
time.windows.com
, но после добавления в домен синхронизация выполняется согласно иерархии домена)
Источник
Для обеспечения точного времени на всех компьютерах домена, нужно настроить синхронизацию PDC с неким внешним источником точного времени по протоколу NTP.
Чтобы определить имя контроллера домена, на котором запущена FSMO роль эмулятора PDC, выполните PowerShell команду:
Get-ADDomain | Select-Object PDCEmulator
Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
По умолчанию PDC синхронизирует время с аппаратными часами материнской платы физического сервера, на котором он запущен. Это можно проверить, выполнив на нем команду:
w32tm /query /source
Local CMOS Clock
указывает, что в качестве источника времени используются локальные часы. При этом в логе Event Viewe на PDC будет регистрироваться событие Event ID 12 от Time-Service:
Time Provider NtpClient: This machine is configured to use the domain hierarchy to determine its time source, but it is the AD PDC emulator for the domain at the root of the forest, so there is no machine above it in the domain hierarchy to use as a time source. It is recommended that you either configure a reliable time service in the root domain, or manually configure the AD PDC to synchronize with an external time source. Otherwise, this machine will function as the authoritative time source in the domain hierarchy. If an external time source is not configured or used for this computer, you may choose to disable the NtpClient.
Если DC запущен на виртуальной машине, в настройках которой включена синхронизация времени с хостом (гипервизором), эта команда вернет:
VM IC Time Synchronization Provider
Поэтому для всех DC нужно отключить синхронизацию времени в настройках ВМ, или запретить DC получать время с хоста, создав параметр реестра:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 0 /f
Перенастроим настройки Windows Time на PDC так, чтобы он использовал в качестве источника времени внешний NTP сервер. В качестве источника времени можно использовать ближайшие к вам сервера NTP из пула проекта https://www.ntppool.org
Для России это будут сервера 0.ru.pool.ntp.org, 1.ru.pool.ntp.org и 2.ru.pool.ntp.org
Проверьте с PDC эмулятора, что доступ к этим NTP серверам доступен (и порт 123/UDP не блокируется файерволами):
w32tm /stripchart /computer:0.ru.pool.ntp.org
Если вы получили ответ от NTP сервера, можно задать эти внешние сервера в качестве источников времени для Primary DC. Выполните команды:
net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8 4.ru.pool.ntp.org,0x8"
w32tm /config /reliable:yes
net start w32time
w32tm /config /update
Выполните синхронизацию времени с NTP:
w32tm /resync
Проверьте, что теперь источником времени на PDC является внешние NTP сервера:
w32tm /query /configuration
Настройка групповой политики для синхронизации времени PDC с NTP
Так как роль эмулятора PDC может быть передана на другой контроллер домена, можно настроить групповую политику, которая будет автоматически применять настройки синхронизации с внешним NTP источников времени на текущем DC с ролью PDC.
Для этого в консоли управления Group Policy Management Console (
GPMC.msc
), создайте новый WMI фильтр групповых политик. Перейдите разделе WMI Filters, создайте фильтр с именем PDC Emulator и WMI запросом:
Select * from Win32_ComputerSystem where DomainRole = 5
Создайте новую GPO, откройте ее и перейдите в раздел Computer Configuration-> Administrative Templates -> System -> Windows Time Service -> Time Providers
Нас интересуют три политики:
- Configure Windows NTP Client: Enabled (настройки политики описаны ниже)
- Enable Windows NTP Client: Enabled
- Enable Windows NTP Server: Enabled
В настройках политики Configure Windows NTP Client укажите следующие параметры:
- NtpServer: 0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 2.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8
- Type: NTP
- CrossSiteSyncFlags: 2
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 1024
- EventLogFlags: 0
Примените созданный ранее фильтр PDC Emulator к GPO.
Осталось прилинковать новую GPO на контейнер Domain Controllers.
Настройка синхронизации времени на клиентах домена
В домене нужно настраивать время только на контроллере домена с ролью PDC. Он должен синхронизировать время с внешним NTP. Специально какие-то отдельные политики или настройки для синхронизации времени на оставшихся DC или компьютерах делать не нужно (это может быть даже вредно). Синхронизация времени должна отлично работать согласно иерархии AD (NT5DS).
На оставшихся (дополнительных) контроллерах домена и остальных клиентах синхронизация времени должна выполняться согласно иерархии домена. Проверим это:
w32tm /query /configuration
Если все настроено правильно, в качестве типа источника времени в разделе
TimeProviders
должен быть задан NT5DS.
Настройки службы времени хранятся в ветке реестра
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
.
Если это не так, можно сбросить настройки синхронизации времени на клиенте и принудительно указать, что нужно использовать схему синхронизации по-умолчанию (по доменной иерархии):
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
w32tm /config /syncfromflags:DOMHIER /update
w32tm /resync
Проверьте что теперь в качестве источника времени на клиенте используется ближайший контроллер домена (LogonServer):
w32tm /query /source
Типовые ошибки синхронизации времени на клиентах Windows описаны в статье.
Download Article
Download Article
Your computer’s clock may be as many as a few seconds to a few minutes off the correct time. Therefore, Windows includes a time synchronization scheduler to synchronize your clock automatically, located on the Internet Time tab in the Date & Time Settings. The default interval for this process is one week (which is 604,800 seconds). There is no way to change this interval through the user interface, it has to be done using the registry editor (regedit).
-
To do this, open Date and Time Settings. You can do this either through the Control Panel, or by clicking on the time on the taskbar, then clicking «Change date and time settings…» then clicking the «Internet Time» tab.
- Verify the computer is set to synchronize automatically.
-
There are several ways of doing this, choose the most convenient for you. If you get a User Account Control dialog, click Yes.
- Press the Windows logo key and R. This will open the Run dialog. Then type regedit and click OK.
- Alternatively, open the Start Menu and type «regedit» in the search box. Click the regedit program to open.
Advertisement
-
Just click the arrows next to the folder icons to navigate to the correct directories. You may have to scroll a bit when you reach the SYSTEM key.
-
-
You can quickly do this using Google or a website like Easysurf.
-
Then, enter your interval in seconds (without commas), and click OK.
-
-
Click Internet Time, click Change Settings, then Update Now. This will immediately synchronize your clock. Click OK to close the dialog.
-
If it does, the next synchronization time should be exactly one interval away from the time you synchronized.
Advertisement
Add New Question
-
Question
Will this cause an issue with my Internet access?
No, it won’t cause internet access issues.
-
Question
What units are the value for the system variable that I change in in Windows?
You may specify decimal (base 10, like our number system) or hexadecimal (base 16, used in the programming industry).
-
Question
Purely for curiosity’s sake, why not set it to less than 15 minutes?
There’s a possibility that Microsoft could block you from the server if you send too many requests in a short amount of time.
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
A synchronization interval of one day is usually enough for most users. However, if you need a highly accurate time and your clock drifts often, an hour should be suitable. Under no circumstances should you poll a time server more often than once every 15 minutes.
-
If you are interested in how it works, look up «Network Time Protocol».
-
If your computer is not synchronizing at the correct time, you may need to tell the Time Service to use the SpecialPollInterval setting. See this link for instructions.
Thanks for submitting a tip for review!
Advertisement
-
Keep in mind that it takes several seconds to synchronize the time. So, do not make the interval one second. This will cause unnecessary load to your computer, as it will be constantly running the synchronization program.
Advertisement
About This Article
Thanks to all authors for creating a page that has been read 288,785 times.
Is this article up to date?
Что такое протокол 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-инфраструктуры.
Задача:
Имеется домен Active Directory на базе нескольких серверов MS Windows Server.
Необходимо настроить синхронизацию времени всех членов домена по следующей схеме:
-
Первичный контроллер домена является сервером времени. Он синхронизируется с одним из общедоступных серверов времени (например, 0.ru.pool.ntp.org или ntp0.ntp-servers.net и далее — 1.ru.pool.ntp.org, ntp1.ntp-servers.net);
-
Вторичные контроллеры домена являются серверами времени. Они синхронизируются с первичным контроллером домена;
-
Прочие ПК и серверы не являются серверами времени. Синхронизируются с контроллерами домена.
Решение:
На контроллерах домена, которые будут серверами времени выполняем следующие шаги:
-
От имени Администратора регистрируем службу времени:
-
На первичном контроллере домена прописываем поставщиков времени:
через реестр:Код: Выделить всё
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters /v NtpServer /t REG_SZ /d "0.ru.pool.ntp.org,0x1,ntp0.ntp-servers.net,0x1" /f
или из командной строки с правами Администратора (служба w32tm должна быть запущена):
Код: Выделить всё
w32tm /config /manualpeerlist:"0.ru.pool.ntp.org,0x1,ntp0.ntp-servers.net,0x1"
и тип синхронизации — с внешним сервером NTP:
через реестр:Код: Выделить всё
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters /v Type /t REG_SZ /d "NTP" /f
или из командной строки с правами Администратора (служба w32tm должна быть запущена):
-
На вторичных контроллерах домена прописываем тип синхронизации, согласно доменной иерархии:
через реестр:Код: Выделить всё
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters /v Type /t REG_SZ /d "NT5DS" /f
или из командной строки с правами Администратора (служба w32tm должна быть запущена):
-
На всех контроллерах домена прописываем интервал синхронизации, ну, например, 30 минут через реестр:
Код: Выделить всё
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 1800 /f
Из командной строки настройка недоступна.
Объявляем их в качестве надежных поставщиков времени:
через реестр:Код: Выделить всё
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 10 /f
или из командной строки с правами Администратора (служба w32tm должна быть запущена):
Запускаем службу времени:
Применяем выполненные изменения:
И принудительно синхронизируем серверы времени с источниками:
Командный файл выглядит так:
Код: Выделить всё
@Echo Off
w32tm /register
net start w32time
w32tm /config /manualpeerlist:"0.ru.pool.ntp.org,0x1,ntp0.ntp-servers.net,0x1"
w32tm /config /syncfromflags:manual
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 1800 /f
w32tm /config /reliable:yes
w32tm /config /update
net stop w32time
net start w32time
w32tm /resync /rediscover
Код: Выделить всё
@Echo Off
w32tm /register
net start w32time
w32tm /config /syncfromflags:DOMHIER
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 1800 /f
w32tm /config /reliable:yes
w32tm /config /update
net stop w32time
net start w32time
w32tm /resync /rediscover
Архив с командными файлами можно скачать здесь:
Настраиваем DHCP для клиентов:
В настройках DHCP сервера (или в настройках для каждой зоны) прописываем в опцию 042 «NTP Servers» (для оборудования Apple, нужно прописать ITP сервер 004 «Time Servers») адреса контроллеров домена с настроенными серверами NTP:
Настраиваем групповые политики для ПК домена:
Если все компьютеры являются членами домена, то как альтернативу настройкам через DHCP, можно использовать настройку через групповые политики.
Для этого открываем Объект политики -> «Конфигурация компьютера» -> «Конфигурация Windows» -> «Административные шаблоны» -> «Система» -> «Служба времени Windows» -> «Поставщик времени». Здесь включаем параметр «Включить NTP-клиент Windows» и настраиваем параметр -> «Настроить NTP-клиент Windows»:
-
NtpServer — PDC.mydomai.com,0x9,BDC.mydomai.com,0x9 (указываем настроенные NTP серверы своего домена);
-
Type — NT5DS (то есть синхронизируемся в соответствии с доменной иерархией);
-
SpecialPollInterval — 1800 (частота синхронизации времени)
Настраиваем сервера времени, с которых будем брать текущее время:
Код: Выделить всё
net time /SETSNTP:time.windows.com,ntp.psn.ru,time.nist.gov
Создаем батник со следующим содержанием:
Код: Выделить всё
@ECHO OFF
w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com
w32tm /config /update
REM w32tm /config /syncfromflags:manual /manualpeerlist:ntp.psn.ru
REM w32tm /config /update
EXIT
Добавляем новое назначенное задание, где в качестве выполняемого файла указываем этот батник, расписание ставим — ежедневно, а время — до начала рабочего дня, чтобы при загрузке компы подхватывали с сервера правильное время.
Если мы планируем использовать внутренние часы, встроенные в микросхему CMOS:
Чтобы служба времени на компьютере, являющемся хозяином операций PDC, не использовала внешний источник времени, необходимо изменить параметр реестра AnnounceFlags. Хозяином PDC называется сервер, исполняющий роль эмулятора PDC корневого домена леса. Данное изменение конфигурации предписывает хозяину PDC сообщать о себе как о надежном источнике времени и использовать часы, встроенные в микросхему CMOS
Либо качаем и выполняем патч, либо вручную делаем:
-
В реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags меняем значение параметра «AnnounceFlags» на «A» (без кавычек, заглавная, латиницей (в английской раскладке клавиатуры).
-
Перезапускаем службу времени.
Примечание: Служба времени хозяина PDC не должна быть настроена на синхронизацию с самим хозяином PDC. Дополнительные сведения о том, почему основной контроллер домена не следует настраивать на синхронизацию с самим собой, см. документе (RFC 1305). Если основной контроллер домена настроен на синхронизацию с самим собой, в журнал системы записываются указанные ниже события:
Тип события: Сведения
Источник события: W32Time
Категория события: отсутствует
Код события: 38
Компьютер: имякомпьютера
Описание: NTP-клиент поставщика времени не может достичь или получает неправильные данные о времени с адреса IP-адрессервера_NTP. Для получения дополнительных сведений посетите веб-узел центра справки и поддержки по адресу http://support.microsoft.com.
Тип события: Предупреждение
Источник события: W32Time
Категория события: отсутствует
Код события: 47
Компьютер: имякомпьютера
Описание: NTP-клиент поставщика времени: правильный ответ от узла IP-адресNTP-сервера не был получен после 8 попыток обращения. Этот узел не будет использоваться в качестве источника времени, а NTP-клиент попытается найти новый узел с этим доменным именем. Для получения дополнительных сведений посетите веб-узел центра справки и поддержки по адресу http://support.microsoft.com.
Тип события: ошибка
Источник события: W32Time
Категория события: отсутствует
Код события: 29
Компьютер: имя_компьютера
Описание: NTP-клиент поставщика времени настроен на получение времени из одного или нескольких источников, однако ни один из этих источников не доступен. Попытки подключения к источнику не будут выполняться в течение 15 мин. NTP-клиент не имеет источника правильного времени. Для получения дополнительных сведений посетите веб-узел центра справки и поддержки по адресу http://support.microsoft.com.
Если служба времени хозяина PDC не использует внешний источник времени, то в журнале событий приложений будет регистрироваться следующее событие.
Тип события: ошибка
Источник события: W32Time
Категория события: —
Код события: 12
Описание NTP-клиент поставщика времени: этот компьютер использует доменную структуру для определения своего источника времени, но для этого домена в корне леса находится PDC-эмулятор, поэтому нет компьютера, расположенного выше в доменной иерархии, который можно использовать как источник времени. Рекомендуется настроить надежную службу времени в корневом домене либо вручную настроить PDC для синхронизации с внешним источником времени. В противном случае этот компьютер будет выступать в роли основного источника времени в иерархии домена. Если внешний источник времени не настроен или не должен использоваться для этого компьютера, можно отключить NTP-клиент.
Данное сообщение напоминает о том, что рекомендуется использовать внешний источник времени, и может быть пропущено.
Если мы планируем для службы времени Windows использовать внешний источник, то либо качаем и выполняем патч, либо вручную делаем:
-
Меняем тип сервера на NTP. В реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type меняем значение параметра «Type» на «NTP» (английская раскладка клавиатуры), верхний регистр (заглавные буквы)).
-
Присваиваем параметру «AnnounceFlags» значение «5». В реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags находим параметр AnnounceFlags и устанавливаем ему значение 5 (без кавычек).
Примечания:
-
Если полномочный сервер времени, на котором флаг AnnounceFlag равен 0x5, не синхронизируется с вышестоящим сервером, клиентский сервер может неправильно синхронизироваться с ним при возобновлении синхронизации между полномочным сервером времени и вышестоящим сервером. Соответственно, при наличии проблем с сетевым подключением или иных потенциальных причин сбоя синхронизации полномочного сервера с вышестоящим для флага AnnounceFlag следует задать значение 0xA, а не 0x5.
-
Если полномочный сервер времени, на котором флаг AnnounceFlag равен 0x5, синхронизируется с вышестоящим сервером по интервалу SpecialPollInterval, клиентский сервер может неправильно синхронизироваться с ним после перезагрузки полномочного сервера времени. Соответственно, если для полномочного сервера времени настроена синхронизация с вышестоящим NTP-сервером по фиксированному интервалу SpecialPollInterval, для флага AnnounceFlag следует задать значение 0xA, а не 0x5.
-
-
Включаем сервер NTP. В реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer меняем значение параметра «Enabled» на «1» (без кавычек).
-
Указываем источники времени. В реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters меняем значение параметра «NtpServer» на список узлов, предоставляющих данные о текущем времени (то есть список внешних серверов NTP). Для разделения имен узлов в списке используются пробелы. Все имена DNS в данном списке должны быть уникальными. В конце каждого имени DNS необходимо добавлять символы «,0x1» (без кавычек). Если данные символы не были добавлены, то изменения, вносимые на следующем шаге, не вступят в силу.
-
Задаем интервал опроса. В реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval устанавливаем значение параметра «SpecialPollInterval» числом, означающим интервал времени (в секундах) между двумя опросами. Рекомендуется установить его равным 900. В этом случае опрос будет выполняться каждые 15 минут.
-
Задаем параметры, определяющие максимальную величину коррекции времени.
-
В реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection устанавливаем значение параметра «MaxPosPhaseCorrection» в секундах.
-
В реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection устанавливаем значение параметра «MaxNegPhaseCorrection» в секундах.
Примечание: Оба последних параметра, определяющих максимальную величину коррекции времени могут принимать любое значение в разумных пределах (например, 1 час (3600) или 30 минут (1800)). Данные значения выбираются исходя из величины интервала опроса, состояния сети и типа внешнего источника времени.
-
-
Перезапускаем службу времени:
Дополнения:
-
Для того, чтобы сервер MS Winsows стал полноценным поставщиком (сервером) NTP, выполняем команду:
Чтобы убедиться, что сервер NTP включен, в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer[/b] смотри значение параметра «Enabled». Он должен быть равен«1» (без кавычек)
Справку по команде w32tm смотрим так:
Настраиваем w32tm так:
-
Параметры реестра, используемые службой времени Windows Server и Windows Workstation:
-
MaxPosPhaseCorrection — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] — Этот параметр задает максимальную величину положительной коррекции времени, которую может выполнить служба времени. Если окажется, что величина коррекции превышает допустимое значение, то будет зарегистрировано соответствующее событие. Значение 0xFFFFFFFF указывает на то, что коррекция времени будет выполняться всегда. По умолчанию для компьютеров-членов домена используется значение 0xFFFFFFFF, а для автономных компьютеров и серверов – значение 54 000 (15 часов).
-
MaxNegPhaseCorrection — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] — Этот параметр задает максимальную величину отрицательной коррекции времени, которую может выполнить служба времени. Если окажется, что величина коррекции превышает допустимое значение, то будет зарегистрировано соответствующее событие. Значение -1 означает, что коррекция времени будет выполняться всегда. По умолчанию для компьютеров-членов домена используется значение 0xFFFFFFFF, а для автономных компьютеров и серверов – значение 54 000 (15 часов).
-
MaxPollInterval — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] — Данный параметр задает наибольший допустимый интервал (в секундах) между опросами. Обратите внимание, что система обязана отправлять запрос по истечении интервала опроса, однако поставщик времени может проигнорировать данный запрос. Для членов домена по умолчанию используется значение 10, а для автономных компьютеров и серверов – значение 15.
-
SpecialPollInterval — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient] — Этот параметр определяет интервал опроса (в секундах) при задании узлов для синхронизации вручную. Если установлен флаг SpecialInterval 0x1, служба W32Time использует величину интервала опроса, указанную в параметре SpecialPollInterval, а не значение, определяемое операционной системой. Для членов домена по умолчанию используется значение 3 600, а для автономных компьютеров и серверов – значение 604 800.
-
Type — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] — Этот параметр задает тип синхронизации:
-
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера.
-
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer.
-
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии.
-
AllSync — NTP-сервер использует для синхронизации все доступные источники.
-
-
NtpServer — [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] — Задает список внешних источников (серверов времени), с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0×1). В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:
-
0x1 – SpecialInterval, использование специального интервала опроса ;
-
0x2 – режим UseAsFallbackOnly;
-
0x4 – SymmetricActive, симметричный активный режим;
-
0x8 – Client, отправка запроса в клиентском режиме.
При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо просто ставить везде ,0x1 (как советует Microsoft).
-
-
AnnounceFlags — [HKEY_LOCAL_MACHINE\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.
-
Команды, используемые для настройки и мониторинга сервера времени.
-
Обновить конфигурацию сервиса:
-
Узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах:
Например:
-
Принудительная синхронизация компьютера с используемым им сервером времени:
или с ключом rediscover
-
Показать разницу во времени между текущим и удаленным компьютером:
Например:
Код: Выделить всё
w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly
произведет 5 сравнений с указанным источником и выведет результат в текстовом виде.
-
Основная команда, используемая для конфигурирования службы NTP:
С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой
Код: Выделить всё
w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update
-
Показать текущие настройки службы:
Например:
покажет текущий источник времени
выведет все параметры службы.
А так можно отобразить текущих источников синхронизации и их статуса: -
Удаление службы времени с компьютера:
-
Зарегистрировать службу времени на компьютере
При этом создается заново вся ветка параметров в реестре.
-
Запуск службы времени:
-
Остановка службы времени:
Инструменты и параметры службы времени Windows
Как настроить полномочный сервер времени в операционной системе Windows Server.
-
Полезные ссылки по теме:
Настройка полномочного сервера времени в операционной системе Windows Server
Настройка службы времени Windows при больших смещениях времени
Настройка основного сервера времени в Windows XP
Для управлением службой времени в Windows используется команда win32tm.exe.
Посмотреть текущие настройки службы времени (выполнять из консоли с правами администратора):
w32tm /query /configuration
Посмотреть текущее состояние службы времени можно командой:
w32tm /query /status
Чтобы понять, что это нам там Windows выводит на экран, нужно разобраться как Windows работает со временем. Служба времени зависит от того является ли компьютер частью централизовано администрируемого домена или нет.
Возможные две ситуации:
- компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
- компьютер (сервер) входит в состав домена Active Directory.
Компьютер входит в состав рабочей группы.
В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды
w32tm /query /configuration будет следующим.
Обратите внимание на параметры:
SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю.
Type — определяет источник синхронизации времени. Возможные значени параметра Type:
NoSync. Служба времени вообще не синхронизируется ни с чем.
NTP. Служба времени синхронизируется с серверами указынными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.
NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.
AllSync. Служба времени использует все возможные механизмы для синхронизации.
NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.
Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.
Компьютер входит в состав домена Active Directory.
Домен AD — иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером, выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.
Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:
netdom /query fsmo
и вот на нем то и надо настраивать синхнонизацию времени в внешним источников времени, которым является какой либо NTP сервер.
Делается это из командной строки с адмнистративными правами следующим образом (один из способов):
- Останавливаем службу времени W32Time: C:\>net stop w32time
- Конфигурируем внешние источники синхронизации:
C:\> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org” - Делаем PDC-Emulator надежным источником для клиентов: C:\>w32tm /config /reliable:yes
- Запускаем службу времени w32time : C:\>net start w32time
- Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: C:\>w32tm /query /configuration
- Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.
На остальных компьютерах домена вывод команды C:\>w32tm /query /configuration будет следующим:
Если вы по какой-то причине поменяли конфигурацию службы времени на доменном компьютере, то чтобы вернуть настройки по-умолчанию выполните команду:
w32tm /config /syncfromflags:domhier /update
Иногда при переносе роли PDC-Emulator на другой контроллер домена, старый продолжает считает считать себя сервером времени для всего домена, что может стать причиной ошибок в Системном логе, например таких:
«The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will try again in 15 minutes.»
и других веселых глюков. «Успокоить» его можно такой-же командой с небольшим дополнением:
w32tm /config /syncfromflags:domhier /reliable:no /update
Несколько комментариев:
- В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
- Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
- Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.