В этой статье мы расскажем, как проверить, работает ли NTP сервер по указанному адресу в сети с помощью командной строки Windows или терминала в Linux.
Приобрести оригинальные ключи активации Windows всегда можно у нас в каталоге от 1099 ₽
Проверка NTP сервера в Windows
Для проверки работы NTP сервера в Windows, необходимо открыть командную строку и выполнить команду w32tm с нужными параметрами. Команда имеет следующий вид:
w32tm /stripchart /computer:[ИМЯ ИЛИ IP АДРЕС] /dataonly /samples:3
Например, чтобы проверить сервер clock.isc.org, нужно ввести следующую команду:
w32tm /stripchart /computer:clock.isc.org /dataonly /samples:3
Ответ будет содержать текущее локальное время и разницу со временем на указанном NTP сервере. Пример выполнения команды:
C:\Users\Recluse>w32tm /stripchart /computer:clock.isc.org /dataonly /samples:3
Отслеживание clock.isc.org [64.62.194.189:123].
Сбор образцов 3.
Текущее время - 07.06.2020 19:55:28.
19:55:28, +00.0777312s
19:55:30, +00.0786069s
19:55:32, +00.0779390s
Проверка NTP сервера в Linux
В Linux для проверки работы NTP сервера используется утилита ntpdate. Команда имеет следующий вид:
ntpdate -q [ИМЯ ИЛИ IP АДРЕС]
Для проверки сервера clock.isc.org, команда будет выглядеть так:
ntpdate -q clock.isc.org
Пример выполнения команды:
[email protected]:~$ ntpdate -q clock.isc.org
После выполнения команды в терминале будет выведена информация о текущем времени и разнице между локальным временем и временем на указанном NTP сервере.
Лицензионный ключ активации Windows от
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 —
Алексей Максимов
NTP — протокол для синхронизации системного времени с эталонным, предоставляемым специальными серверами. В статье рассмотрим, как настроить протокол NTP в различных ОС и на некоторых устройствах, а начнем с большой инструкции по настройке NTP Server Linux.
Пошаговая инструкция по настройке NTP-сервера Linux
Настраивать протокол синхронизации будем на примере Ubuntu, однако это руководство также подойдет для Debian и любых других Linux-подобных систем. Инструкцию мы разбили на три части: первая будет посвящена установке NTP-сервера, вторая — синхронизации NTP-клиентов, а третья — продвинутым настройкам протокола синхронизации.
Часть 1. Устанавливаем NTP-сервер
Семь простых шагов помогут без проблем установить NTP-сервер и сделать его доступным для дальнейшей настройки. Работать будем в командной строке и редакторе nano, а также используем Terminal, который открывается по нажатию Ctrl+Alt+T
.
Шаг 1. Обновляем индекс репозитория
Это нужно, чтобы иметь возможность скачивать свежие версии ПО. Обновить индекс поможет вот эта инструкция:
sudo apt-get update
Шаг 2. Устанавливаем сервер
Установка запускается следующей инструкцией:
sudo apt-get install ntp
Но перед тем, как вводить ее, следует авторизоваться в sudo
. Для подтверждения установки выберите Y, если система попросит сделать такой выбор (Y/N). Теперь ждем, пока ПО скачается и установится.
Шаг 3. Проверяем установку
Делать это не обязательно, но желательно для того, чтобы убедиться, что процесс завершился корректно. Для этого введите в терминале такую инструкцию:
sntp --version
Вывод должен содержать номер версии и время установки.
Шаг 4. Переключаемся на ближайший пул
По умолчанию сервер должен получать корректное время, но для большей надежности лучше переключиться на ближайший к нам пул серверов. Это делается с помощью редактирования ntp.conf
, файл находится по пути /etc/ntp.conf
. Открываем его при помощи nano
(у вас должны быть права sudo), введя инструкцию:
sudo nano /etc/ntp.conf
В открывшемся файле вы увидите 4 строчки, которые мы для удобства выделили оранжевым прямоугольником:
Это стандартные пулы, которые мы заменим на российские, а возьмем их, например, с этой страницы. После замены строк выходим из ntp.conf
по нажатию Ctrl+O и Ctrl+X.
Шаг 5. Перезапускаем сервер
Это делается просто, при помощи следующей инструкции:
sudo service ntp restart
Шаг 6. Проверяем запуск
В этом нам поможет инструкция:
sudo service ntp status
В выводе в одной из первых строк (Active) должно быть указано Active (running)
, и далее в этой же строке отображено время запуска.
Шаг 7. Настраиваем брандмауэр
Чтобы ваши клиенты могли заходить на сервер, откроем им доступ через UFW, прокинув UDP-порт 123 следующей инструкцией:
sudo ufw allow from any to any port 123 proto udp
Установка завершена, сервер запущен, теперь приступаем к настройке.
Часть 2. Настраиваем синхронизацию NTP-клиентов
Следующие шаги мы выполним для того, чтобы обеспечить возможность синхронизации клиентов с нашим NTP-сервером, который будет служить для них эталонным источником времени.
Шаг 1. Проверяем соединение
Для проверки сетевой конфигурации NTP вводим следующую инструкцию в терминале:
sudo apt-get install ntpdate
Шаг 2. Указываем IP и хост
Это делается путем редактирования файла hosts
, который находится по пути /etc/hosts
. Вводим:
sudo nano /etc/hosts
В третью строчку сверху добавляем актуальные данные (адрес добавлен просто для примера, введите реальный IP своего NTP-сервера):
192.168.154.142 ntp-server
Теперь жмем Ctrl+X и сохраняем изменения по нажатию Y. Добавим, что эту процедуру можно выполнить и на DNS-сервере, если он у вас есть.
Шаг 3. Проверяем синхронизацию клиента с сервером
Чтобы выяснить наличие синхронизации между системами сервера и клиента, введите:
sudo ntpdate ntp-server
Значение в выводе будет означать смещение времени. Расхождение в несколько миллисекунд нормально, поэтому на такие цифры можно не обращать внимания.
Шаг 4. Отключаем службу timesyncd
Эта служба синхронизирует время локальной системы, однако нам она не нужна, поскольку в нашей схеме клиенты будут синхронизироваться через NTP-сервер. Поэтому вводим:
sudo timedatectl set-ntp off
Шаг 5. Устанавливаем NTP на системе клиента
Это делается при помощи инструкции:
sudo apt-get install ntp
Шаг 6. Делаем наш NTP-сервер эталонным
Мы хотим, чтобы клиенты сверялись именно с ним, поэтому открываем уже знакомый файл конфигураций ntp.conf
и добавляем туда инструкцию следующего вида:
server NTP-server-host prefer iburst
Инструкция prefer
добавляется для указания на предпочтение (в данном случае сервера). В свою очередь, iburst
позволяет отправлять на сервер несколько запросов, что повышает точность синхронизации. Теперь снова жмем Ctrl+X и сохраняем изменения по нажатию Y.
Шаг 7. Перезапускаем сервер
Эта инструкция тоже простая и в комментариях не нуждается:
sudo service ntp restart
Шаг 8. Смотрим на очередь синхронизации
Мы почти закончили, осталось ввести инструкцию:
ntpq -ps
Она понадобится нам для проверки NTP-сервера, который указан как источник в очереди синхронизации времени.
клауд
Часть 3. Продвинутые возможности синхронизации
Итак, мы установили и настроили NTP-сервер, а затем синхронизировали с ним клиентские машины. Теперь снова открываем ntp.conf
(напомним, что он находится по пути /etc/ntp.conf
), который содержит немало других интересных настроек, позволяющих обеспечить надежную синхронизацию с внешним миром.
Предпочитаемый сервер
Вызывающий наибольшее доверие сервер или серверный пул сопровождаем инструкцией prefer
, которая уже встречалась нам выше. Вот так:
server 1.ru.pool.ntp.org prefer
О том, что мы обращаемся именно к серверу, говорит директива server
в начале, а если нужно указать серверный пул, то будет использоваться директива pool
.
Также не стоит забывать про строчку server 127.127.1.0
в конце списка пулов: она нужна для того, чтобы подхватывалось системное время, если вдруг не будет соединения.
Настройки безопасности
Обратите внимание на наличие следующих строчек в ntp.conf
:
restrict default kod notrap nomodify nopeer noquery
- Команда
default
служит для установки значений по умолчанию. В данном случае она действует для всехrestrict
. - Команда
kod
используется для отправкиkiss of death
серверам, отправляющим слишком много запросов.
Далее идут инструкции:
- о запрете на прием управляющих команд (
notrap
); - и запрете тех, которые изменяют состояние или способны это делать (
nomodify
); - о запрете синхронизации с хостом (
nopeer
); - и о запрете запросов (
noquery
); - если используется протокол IPv4, то перед инструкцией
default
следует поставить -4, а если IPv6, то, соответственно, -6.
А вот и наглядный пример использования некоторых команд, описанных выше. Следующая строчка разрешает синхронизацию узлов в соответствующей сети, дополнительно запрещая узлам принимать управляющие и изменяющие состояние команды:
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
А эти рестрикты нужны для того, чтобы сервер мог обмениваться данными сам с собой:
restrict 127.0.0.1
restrict ::1
И не забывайте о перезапуске сервера после внесения изменений.
Проверяем корректность работы NTP
Для этого используйте инструкцию ntpq -p
. При правильных настройках ответом будет таблица со столбцами, которая выглядит примерно так:
В первом столбце указан адрес сервера для синхронизации, далее показан вышестоящий сервер, уровень (столбец st
) и nup
(столбец t
). В следующих 3 столбцах отражена информация о последнем времени сверки, периоде синхронизации, работоспособности (число 377 означает 8 успешных синхронизаций с этим сервером). Последние 2 столбца показывают разницу между временем синхронизируемого и эталонного сервера, а также смещение времени.
Кроме того, обратите внимание на знаки в первом столбце, которые стоят перед IP. Самый хороший знак — это +
, который говорит о том, что данный сервер заслуживает доверия в плане синхронизации. Соответственно, –
указывает на обратное, а *
— это текущий сервер, выбранный для синхронизации. Также иногда встречается значок x
, который означает, что сервер недоступен.
Проверяем, правильно ли сервер отдает время
Для этого потребуется ввести на другой системе инструкцию ntpdate
с указанием IP проверяемого сервера. Ответ должен быть примерно таким:
adjust time server (здесь будет IP-адрес) offset 0.012319 sec
Число здесь означает время рассинхронизации. В данном случае всё в порядке, рассинхронизация составляет всего около 0,01 сек., а если точнее — 12 миллисекунд, что вполне допустимо.
Что ж, с Linux разобрались, теперь рассмотрим, как настроить протокол NTP в ОС Windows.
Настройка NTP сервера Windows Server
Для этого нам понадобится выполнить несколько операций в реестре и ввести инструкции в командной строке. Но перед тем как приступить к настройке, службу нужно запустить. Это делается путем изменения следующей записи в реестре:
HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
В данной ветке находим Enabled
справа и выставляем 1, чтобы запись в столбце Data
имела следующий вид:
0x00000001 (1)
Теперь открываем cmd
и вводим инструкцию, которая нужна для перезапуска протокола:
net stop w32time && net start w32time
Учтите, что вводить инструкцию нужно из-под C:\Users\Administrator
. Проверить, что NTP включился, можно следующей командой:
w32tm /query /configuration
Выведется длинная запись, в которой обратите внимание на блок NtpServer <Local>
: в строке Enabled
значение должно быть 1. Теперь откроем в фаерволе UDP-порт 123 для корректного обслуживания клиентов, после чего приступаем к настройке.
Возвращаемся в реестр и ищем запись:
HKLM\System\CurrentControlSet\services\W32Time\Parameters
В этой ветке довольно много параметров, а главным является Type
, который принимает одно из 4 значений:
NoSync
— без синхронизации;NTP
— синхронизация с внешними серверами, определенными вNtpServer
в реестре (устанавливается по умолчанию для отдельной машины);NT5DS
— синхронизация в соответствии с иерархией доменов (устанавливается по умолчанию для машины в составе домена);AllSync
— синхронизация со всеми доступными серверами.
Теперь снова обратимся к реестру и настроим значения в ветке NtpServer
. Скорее всего там указан только сервер Майкрософта. Вы можете добавить другие, обращая внимание на флаг в конце:
- 0x1, SpecialInterval, стандартный режим, рекомендуемый Microsoft;
- 0x2, UseAsFallbackOnly, для использования сервера в качестве резервного;
- 0x4, SymmetricActive, этот режим основной для NTP-серверов;
- 0x8, Client, при возникновении проблем с синхронизацией.
И последнее, что нужно сделать — задать интервал синхронизации в ветке:
W32Time\TimeProviders\NtpClient
За это отвечает SpecialPollInterval
, где поставьте требуемое значение (указывается в секундах). По умолчанию там выставлено значение, равное неделе. Если хотите синхронизироваться чаще, то для 1 дня поставьте 86400, для времени суток (четверть дня или 6 часов) — 21600, а для часа 3600. Последнее значение является оптимальным с точки зрения соотношения нагрузки на систему и приемлемой точности там, где требуется синхронизировать время достаточно часто.
Настройка NTP сервера Cisco
На устройствах Cisco всё делается просто и быстро:
- Запускаем конфигурационный режим командой
conf t
. - Устанавливаем часовой пояс инструкцией
clock timezone
. Если время московское, ставим далееMSK 3
. - Далее вводим команду
ntp source
и указываем источник. - Если требуется сделать сервер главным для других машин в сети, то значение в инструкции
ntp master
должно быть 2 или больше. - Инструкция
ntp update-calendar
нужна для обновления времени. - Теперь укажите названия или IP серверов.
- Введите часовой пояс командой
clock timezone
и источник при помощи инструкцииntp source
. - Для проверки и при возникновении проблем поможет инструкция
show
, которая пригодится для вызова времени (show clock
), статуса NTP (show ntp status
) и ассоциаций (show ntp associations
).
Настройка NTP-сервера на роутерах MikroTik
Выполним настройку при помощи SNTP:
- В Winbox перейдите в
System
–SNTP Client
. - Найдите пункт
SNTP Client
и включите его, поставив галочку в полеEnabled
. - В строки
Server DNS Names
ниже введите IP-адреса эталонных серверов. - Проверим, всё ли заработало. Перейдите в
System
–Clock
. Там же установите часовой пояс, выбрав его из выпадающего списка, либо поставьте галочку в полеTime Zone Autodetect
, и тогда часовой пояс установится автоматически. - Интервал синхронизации можно посмотреть в поле
Poll Interval
в менюSNTP Client
. А ниже будет показано время последней синхронизации (полеLast Update
).
Вот мы и научились настраивать NTP в распространенных ОС и на отдельных устройствах.
The other day I got a client asking for help syncing time across all Windows 10 thin clients with their NTP server. After taking a walk around NYC and witnessing many hanging shoes I refreshed my head I found a useful way to check Windows NTP configuration using the command prompt.
Using w32tm To Check and configure NTP using the Command Prompt
In Windows 10 open your command prompt and type the below command to check your current NTP configuration:
w32tm /query /configuration
The above gives you the current time configuration.
w32tm /query /status
The above shows you many more details, such as: stratum, precision, last sync, NTP server and etc..
time /T
This last one shows the current time.
At some Windows10 machines I got the below error:
The following error occurred: The service has not been started. (0x80070426)
This means the time service has is not running or disabled. I made sure to enabled accordingly either using the command prompt:
net start w32time
or at the services window when the above did not work:
There’s also a way to set and start Windows NTP configuration using the command prompt this way:
w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update
Then, as usual Windows stays problematic. I had to run the below commands in sequence:
w32tm /unregister
w32tm /register
net start w32time
I did all these because I found out by running:
net time /querysntp
I got the deprecated error:
The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.
At the end of the config you might need to run:
w32tm /config /update
w32tm /resync /rediscover
To make Windows 10 rediscover its NTP settings. Play around, research the official Windows documentation. You can also place all these command on a batch file and deploy it to all your clients.
Good luck! Contact me if you have any questions. Remember to check out my IT Handyman shop for cool T-Shirts and coffee mugs I designed once in a while.
Sometimes we need to retrieve the date from a NTP Network Time Protocol server to record it somewhere.
The first thing is to know if the server is working and reacheable from our computer (yep, firewalls still works). Then we can check the returned date format to adapt to our needs.
The most common thing is that we have to use a NIST server or a SNPT server. And, at the moment of checking them and programming, there is subtle differences between them.
Checking a NIST server
Check a NIST server is very straightforward. These servers listens on port 13, and responds to TCP or UDP requests. We can do a simple telnet or a netcat to check it. For example, if we wanted to check if time-c.nist.gov will work for us:
windows > run > cmd
1 |
telnet time-c.nist.gov 13 |
1 |
netcat time-c.nist.gov 13 |
Checking a SNTP server
Check a SNTP is not as straightforward as check a NTP server. SNTP servers uses the UDP protocol and the 123 port. Telnet or netcat won’t work for us… But we can use w32tm. For example, if we wanted to check if ntp02.oal.ul.pt will work for us:
windows > run > cmd
1 |
w32tm /stripchart /computer:ntp02.oal.ul.pt /dataonly /samples:1 |
Enjoy!
This post is licensed under CC BY 4.0 by the author.