Время на прочтение1 мин
Количество просмотров19K
Демократия есть искусство управления цирком изнутри обезьяньей клетки.
Генри Луис Менкен
В крупных, постоянно меняющихся и развивающихся гетерогенных сетях установка адреса локального 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 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
Отправка команды синхронизации на локальный компьютер
Команда выполнена успешно.
Готово.
A Time Server or NTP Server is used to synchronize the time across devices in a network. For example, in Windows, your time automatically gets synchronized with time.windows.com
. The time.windows.com
is the time server or NTP server created by Microsoft. Similarly, you can also make your computer a time server or NTP server. And then, you can synchronize the time of all devices in your local (LAN) network with your PC.
In this tutorial, we are going to show you how to make your computer an NTP or Time Server. And, you don’t need to install any software to do this. We will be using Windows Registry Editor to turn your computer into Time Server.
SEE ALSO: How to Make Your Computer a Web Server?
Follow these steps to configure your Windows 10 or Windows 11 PC as a Time Server.
Step 1: Open Services and Stop Windows Time Service
To make your computer a time server, we will need to make some changes to Windows Time Service. So, first of all, we will need to stop the Windows Time service in the Windows services console.
Go to Start > Control Panel > System & Security > Administrative Tools > Services to open the Windows Services console. Alternatively, you can type services.msc
in RUN and press ENTER.
Now, the Windows Services console will open. Here, look for the ‘Windows Time‘ service. After that, right-click on Windows Time service and select Stop to stop this service. But if the service is already in the stopped state, you can move to the next step.
Step 2: Open Registry Editor and Create LocalNTP DWORD
Now, open Registry Editor. Go to RUN, type regedit
, and press the Enter button to launch Registry Editor.
You may see UAC Prompt, click on Yes to continue. Registry Editor will open. In Registry Editor, go to the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
If you don’t see the LocalNTP
DWORD on the right side, you will have to create it to make your computer a time server. So, to create the DWORD, right-click in the blank space and select New > DWORD (32-bit) Value.
Now, type the name of the new DWORD as LocalNTP
(case sensitive).
After creating the DWORD, double-click on it to modify its value. Then set the DWORD value to 1
(Hexadecimal).
Step 3: Enable NTP Server in Windows
This is one of the most important steps to make your PC an NTP server. Do not close the Registry Editor yet, go to the following key in the Registry Editor.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
Here, on the right side, you will find a DWORD named Enabled. Right-click and select Modify to change its value.
Now, set the value data of Enabled DWORD to “1” (Hexadecimal).
Step 4: Set Announce Flags
Now, go to the following key in Registry Editor.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config
Here, we will change the value of AnnounceFlags DWORD. So, right-click on it and select Modify.
Now, set the value of AnnounceFlags DWORD to “5” (Hexadecimal). Now, your PC will advertise itself as an NTP server.
Step 5: Start Windows Time Service
Go to Start > Control Panel > System and Security > Administrative Tools > Services again. Now, double-click on the “Windows Time” service to open its Properties. Here, set the Startup type to Automatic, start the service, and then click OK.
Now, you can use your computer as an NTP server. You can now synchronize the time of other computers in your LAN/Local network with your PC.
SEE ALSO: Check these 10 Cool Command Prompt Tricks for you.
Step 6: Synchronize Time with NTP Server
Let’s see how to synchronize the time of any other PC using this newly created NTP Server. First, you need to find the IP address of your PC. You can check your IP in Network Settings or via Command prompt using the ipconfig
command. In this tutorial, the IP address of our PC is 192.168.56.101
. This is just an example, it may be different for you.
ipconfig
command to find the IP Address of Your PCNow, go to another computer whose time you want to synchronize. Open the Control Panel and search for date time
and click on Set the time and date link from the search results.
Date and Time settings will open. Go to the Internet Time tab and click on Change Settings.
A small Internet Time Settings window will open. Here, enter the IP address of your NTP server (192.168.56.101
in our case) in the box and click on Update Now to synchronize time. It may give you an error on the first attempt. Click on Update Now again and your time will be synchronized successfully. Now, you can click OK to close the time settings window.
SEE ALSO: How to Set up Minecraft Server on Android Phone?
Turn your PC into an NTP Server without Any Software
Now, you have successfully turned your computer into an NTP or Time Server without any software. You can synchronize the time of every device on your network using this NTP server. You can also synchronize the time of any remote device using this NTP server by forwarding the NTP port on your router. NTP port is “123” by default. The process of forwarding a port in your router depends on the type of router you use. You can check your router’s manual for more details.
We hope you liked this tutorial. In case you have any problems, feel free to write them down in the comment section below. Feel free to subscribe to our newsletter to get the latest tutorials directly into your inbox.
howto:ntp_server_activation
по материалам сайта http://windowsnotes.ru
Операционные системы семейства Windows содержат службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol).
По умолчанию служба времени в Windows сконфигурирована следующим образом:
-
При установке операционной системы Windows запускает клиента NTP, который синхронизируется с внешним источником времени;
-
При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;
-
При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;
-
PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.
Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии и надежным источником времени можно назначить любой компьютер.
В качестве примера приведем настройку NTP-сервера в Windows Server 2008 R2, по аналогии можно настроить NTP сервер и в Windows 7.
Запуск NTP сервера
Служба времени в Windows Server не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Рассмотрим второй способ:
Необходимо запустить сервер 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 сервера
Открываем ветку реестра:
HKLM\System\CurrentControlSet\services\W32Time\Parameters
.
Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:
-
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера (в свою очередь эти часы могут синхронизироваться от источника NMEA по RS-232 например);
-
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
-
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
-
AllSync — NTP-сервер использует для синхронизации все доступные источники.
Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.
В параметре NtpServer указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0×1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять флаг (напр. ,0×1) который определяет режим для синхронизации с сервером времени.
Допускаются следующие значения режима:
-
0×1 – SpecialInterval, использование временного интервала опроса;
-
0×2 – режим UseAsFallbackOnly;
-
0×4 – SymmetricActive, симметричный активный режим;
-
0×8 – Client, отправка запроса в клиентском режиме.
Еще один важный параметр AnnounceFlags находится в разделе реестра:
HKLM\System\CurrentControlSet\services\W32Time\Config
.
Он отвечает за то, как о себе заявляет NTP-сервер. Чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.
Если настраиваемый сервер в свою очередь является клиентом NTP (получает время от GPS-приемника по NTP, например), можно настроить интервал между обновлениями. Этот параметр может быть актуальным и для клиентских РС. За время обновления отвечает ключ 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 выведет все параметры службы. -
net stop w32time
— останавливает службу времени, если запущена. -
w32tm /unregister
— удаляет службу времени с компьютера. -
w32tm /register
– регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре. -
net start w32time
— запускает службу.
Особенности, замеченные в Windows 7 — служба времени не запускается автоматически при старте Windows. Исправлено в SP1 для Windows 7.
· Последнее изменение: 2022/02/24 17:39 —
Dmitriy Sazhin
Продолжение статьи о настройке и управлении NTP сервера в Windows Server
Все ОС Windows начиная с Windows 2000 имеют службу времени 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-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Microsoft рекомендует ставить везде параметр = 0x1.
Важный параметр 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).
Команды управления службой времени W32Time:
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 – регистрирует службу времени на ПК, создается заново вся ветка параметров в реестре.
источник