Как найти время через ntp

Работа многих служб ОС зависит от того, насколько точны системные часы. Для чего нужна эта точность? Затем, что неточное время на сервере повлечет за собой много неприятностей.

В качестве примера приведем следующий: если в локальной сети часы машин, которые совместно используют файлы, не будут синхронизированы, то нельзя будет установить время изменения файлов. Из-за этого возникнет конфликт версий или перезаписи данных. Без установки точного времени на сервере появятся и сложности с задачами Cron – непонятно, когда они запустятся. Невозможно будет проанализировать журналы системных событий, чтобы понять причины неисправностей и сбоев.

Для того чтобы эти неприятности не возникли, нужно наладить синхронизацию системных часов. Для этого используется протокол NTP (Network Time Protocol).

Как устроен протокол NTP 

Протокол NTP основан на иерархической структуре сервера точного времени, где выделены разные уровни. К нулевому уровню, на котором NTP-серверы не работают, относятся так называемые эталонные часы.

С ними синхронизируются NTP серверы уровня 1, являющиеся источниками для серверов уровня 2. Серверы второго уровня синхронизируются с серверами первого уровня, но еще могут синхронизироваться между собой. Точно так же функционируют серверы третьего уровня и ниже. В целом, поддерживается порядка 256 уровней.

Иерархическая структура NTP является отказоустойчивой и избыточной. Так, резервные серверы берут синхронизацию на себя, когда речь идет об отказах соединения с вышестоящими серверами. Для расчета точного времени NTP берет данные ото всех источников, синхронизируясь с несколькими серверами.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Как установить и настроить NTP-сервер

Чтобы синхронизировать время, используют демон ntpd, который может быть как сервером, принимающим время из удаленных хостов, так и клиентом, раздающим время сторонним хостам. Демон ntpd зависит от указанных в файле конфигурации настроек.

Для установки сервера NTP используется стандартный менеджер пакетов $ sudo apt-get install ntp.

После установки все необходимые настройки 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 можно увеличить точность синхронизации, то есть указать то, что на сервер необходимо отправлять несколько пакетов вместо одного:

  • 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:

server 0.ubuntu.pool.ntp.org iburst prefer

VDS Timeweb арендовать

Ареал использования серверов 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-сервер, по какой-либо причине отключенный от интернета, может передавать для синхронизации данные своих системных часов. Для этого в конфигурационный файл нужно добавить следующую строку:

server 127.127.1.0

Особые случаи использования NTP

Например, NTP могут использовать, чтобы усилить трафик в DDoS-атаках. А чтобы избежать столкновения с различными злоупотреблениями, следует ограничить доступ для внешних клиентов. Говоря об ограничениях, то по умолчанию в /etc/ntp.conf файле выставлены такие:

  • restrict − 4 default kod notrap nomodify nopeer noquery
  • restrict − 6 default kod notrap nomodify nopeer noquery

Такие опции, как nomodify, notrap, nopeer и noquery, не позволяют внешним клиентам менять конфигурации на сервере. Параметр kod (расшифровывается как kiss of death, «смертельный поцелуй») дает дополнительный уровень защиты: клиент, который часто отправляет запросы, получает сперва kod-пакет, являющийся предупреждением о том, что в обслуживании отказано, а потом отключается от сервера.

Для синхронизации машин из локальной сети с сервером NTP в файл конфигурации добавляется такая строчка:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

А для локального хоста устанавливается неограниченный доступ к серверу NTP:

restrict 127.127.1.0

Как проверить синхронизацию

После сохранения всех изменений в файле конфигурации NTP-сервер нужно перезагрузить:

$ service restart ntp

А затем выполнить команду:

$ ntpq -p

NTP INFOНа выходе получится таблица, в которой указаны следующие параметры:

  • remote – адрес сервера точного времени;
  • refid – вышестоящий сервер;
  • st – уровень (stratum) сервера;
  • t – тип пира (u- unicast, m- multicast);
  • when – время последней синхронизации;
  • poll – время в секундах, за которое демон NTP синхронизируется с пиром;
  • reach – состояние доступности сервера;
  • delay – время задержки ответа от сервера;
  • offset – временная разница между сервером и сервером синхронизации;
  • jitter – смещение времени на удаленном сервере.

Слева от адреса сервера могут быть указаны еще и такие символы:

  • * – сервер выбран для синхронизации;
  • + – сервер, пригодный для синхронизации;
  • – – с сервером синхронизироваться не стоит;
  • х – сервер недоступен.

Чтобы проверить, насколько сервер подходит для синхронизации, нужно использовать команду ntpdate -q.

Как установить локальные дату и время

Чтобы установить локальные дату и время на сервере, нужно использовать команду ntpdate, при этом отправив необходимый запрос к серверу NTP:

$ ntpdate -u 192.168.1.1

Статус ntpd проверяется при помощи команды:

$ ntpdc -c sysinfo

ntpdc status info

Точное время и дата без часов. NTP сервер точного времени.

Как узнать точное время без часов. Нам понадобится только ESP. Получать время и дату будем с сервера точного времени NTP.
Сегодня будет видео, про то как узнать время и дату без часов. Используя  только ESP и доступ в интернет.  У меня на канале много видео про часы, но все они деланы на базе модуля часов DS3231, но как вы узнаете сегодня  можно сделать часы и без часов.

Для чего это может понадобиться. Например, чтобы синхронизировать разные устройства с сервером точного времени. Чтобы уменьшить само устройство и сделать его более дешёвым. А ещё оно будет меньше потреблять электричество.
Для этого мы будем использовать NTP.
NTP — это сетевой протокол для синхронизации часов. В интернете есть NTP сервера которые показывают точное время в любой точке мира, вот мы и будем забирать от туда своё время и дату.
Посмотрим что у нас получится.

А в следующем видео я покажу как на основе этого примера сделать точные часы и вывести их на различные экраны и дисплеи. Чтобы не пропустить это видео, подписывайтесь на канал и нажимайте колокольчик.

Для работы нам понадобится одноимённая библиотека.
В ней есть 2 примера. Базовый и продвинутый.
Мы же не чайники какие-то поэтому сразу смотрим Продвинутый вариант.
Я буду показывать на своём варианте. Он отличается тем, что я его русифицировал и ввёл Тайм зону московского региона.
Если вы не знаете в какой зоне живёте, то можете посмотреть на этом сайте.
Так как в этом примере Таймзону надо указывать в секундах, вот формула для перевода. Надо свою зону умножить на 60 и ещё раз на 60. Или просто сразу умножить на 3600. У меня получилось 10800.

Здесь как обычно вставляем название сети и пароль от неё.
Создаём объект класса WiFiUdp. Так как NTPработает поверх UDP. Но вам это знать не обязательно.
Сюда записываем к какому серверу будем подключаться. Указываем зону в секундах, и время обновления данных с сервера. Я указал раз в минуту.
Теперь ждём пока подключимся к WIFI.

Если всё прошло успешно, по запускаем клиент и получаем время. Чтобы цифры не мельтишили, я сделал паузу в 1 секунду.
Посмотрим что у нас получилось. Видим, что время выводится на экран. Это именно то чего мы хотели. Этот пример нам нужен был для того чтобы узнать что мы действительно подключились к серверу. Теперь настало время для более сложного примера. Будем выводить дату, время и день недели.

Этот пример посложнее, но и более функциональней. Здесь будет не только время, но и день, месяц и год. А также день недели. Всё это может пригодиться в разных разработках, когда например надо установить будильник только по рабочим дням. Дни недели и месяцы можно выводить как цифрами, так и по названиям.

Теперь рассмотрим код. Начало здесь такое же как и в предыдущем примере, ну кроме вот этих массивов с названиями месяцев и дней недели. Поэтому пропускаем.

А перенёс я её вот сюда. Можно было и не делать такие сложные вычисления, а записать в этой функции таймзону прямо в часах.

Здесь мы постоянно обновляем данные с сервера точного времени.
Теперь давайте рассмотрим, что мы можем получить.
Первое это таймстамп.
Это 4-байтное целое число, равное количеству секунд, прошедших с полуночи 1 января 1970 года по усреднённому времени Гринвича (т.е. нулевой часовой пояс, точка отсчёта часовых поясов). При получении из базы отображается с учётом часового пояса.

Дальше идут часы, минуты и секунды. Всю грязную работу за нас делает библиотека, а нам выводятся уже готовые данные. Мы присваиваем их переменным. Чтобы потом легче было к ним обращаться.

Тоже самое с днями, месяцами и годами. Месяцы и дни недели можно выводить как в числовом формате, так и с названиями месяцев.

Ну и наконец полный вывод даты и времени. Посмотрим как это выводится в мониторе порта.
Видим, что мы имеем доступ к каждой переменной по отдельности, а это значит мы сможем теперь вывести эти значения на любой экран или дисплеи. Будь то телефон, LED, LCD или OLED дисплеи. Чем мы и займёмся с следующем видео.
Я сейчас сделал так что данные выводятся каждые 5 секунд. Но это только в мониторе порта. Так значения в переменных обновляются каждую секунду.
Я пока разбирался с NTP пробовал много различных библиотек. Вот например NTPTimeESP,  тоже неплохая библиотека. Может она кому понравится больше. Поэтому покажу как она работает.

Так же указываем адрес сервера. Дальше всё тоже самое как и везде. А здесь указываем часовой пояс и переход на летнее время. В общем у меня вот такие значения.
А вот так полученные значения о дате и времени присваиваются переменным. В основном все значения кроме года двухзначные, поэтому и переменные были созданы с типом byte.
А здесь мне пришлось из дней недели вычесть единицу, так как у них первый день недели – это воскресенье.

Смотрим, что выводится. Вроде всё правильно. Но сейчас выводятся не переменные, а массив значений и к нему мы доступа не имеем, и ничего изменить не можем. Теперь давайте немного подрехтуем скетч.

Я сделал вывод каждой переменной по отдельности, и добавил свои разделители. А ещё я убрал стандартный вывод. Смотрим как стало сейчас.
Ну конечно не шедевр, но тоже имеет право на существование. Какой библиотекой пользоваться решайте сами. И та и другая работают быстро и стабильно и какую выбирать решать вам. Я на первую потратил больше времени, и наверное по этому буду пользоваться ей.

Если вам интересна эта тема, то я могу снять ещё много видео про получение и вывод даты и времени и не только про это.
Объём вашего интереса, я буду оценивать по количеству лайков и комментариев. Чем их будет больше, тем быстрее выйдет новое видео.
Ну, а если вам нравятся мои уроки, то ставьте лайк и делитесь моими видео с другими. Это очень поможет мне в продвижении канала, а меня будет стимулировать выпускать уроки чаще и интереснее.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне.
Спасибо.
А пока на этом всё. До встречи в новых видео.  И ещё раз спасибо за то, что досмотрели до конца.
Пока!!!

Содержание

  1. Как проверить текущую конфигурацию NTP системы?
  2. 6 ответов
  3. Как найти сервер времени в домене?
  4. 4 ответа
  5. Повторная синхронизация (требуется права администратора):
  6. Повторная синхронизация с конкретным компьютером (требуется права администратора):
  7. Показывать сервер, который в настоящее время используется (требует прав администратора):
  8. Двойная проверка, если он работает:
  9. См. настройки:
  10. Как найти NTP-сервер в домене для синхронизации всех компьютеров
  11. Зарегистрируйтесь и начните
  12. W32tm / запрос
  13. /положение дел
  14. /положение дел /подробный
  15. /источник
  16. / конфигурации
  17. / сверстники
  18. w32tm / ресинхронизации
  19. / Компьютер:
  20. /Нет, подождите
  21. /мягкий
  22. w32tm / конфигурации
  23. / Manualpeerlist:
  24. /Обновить
  25. / Localclockdispersion:
  26. / Надежность:
  27. / Largephaseoffset:
  28. w32tm / dumpreg
  29. / Подраздел:
  30. / Компьютер:
  31. w32tm / отладки
  32. /включить или / отключить
  33. /размер:
  34. / записи:
  35. Как найти сервер времени в домене?
  36. Настройка NTP сервера в Windows
  37. Запуск NTP сервера
  38. Основные настройки NTP сервера

Как проверить текущую конфигурацию NTP системы?

Мне нужно проверить текущую конфигурацию NTP на некоторых системах Windows. В идеале я хотел бы сделать это через командную строку вместо навигации по экранам конфигурации.

(Я работаю над несколькими версиями ОС, а экраны конфигурации не всегда находятся в одном месте по всем версиям.)

Я надеюсь найти быструю, запоминающуюся команду, которую я могу просто пробить в консоли CMD, чтобы получить результат. Пакетный файл, который я могу носить с собой, также будет работать.

В частности, мне нужно следующее:

Какие команды необходимы для достижения этих результатов?

Ищем решение, совместимое с Windows XP, 7, Server 2003 и Server 2008.

6 ответов

В командной строке введите

w32tm /query /configuration предоставляет конфигурацию, которую вы настроили.

w32tm /query /status предоставляет информацию, такую ​​как:

time /T выводит текущее системное время.

Примечание: w32tm /query был впервые предоставлен в версиях Windows Vista для Windows Vista и Windows Server 2008. См. Инструменты и настройки Windows Time

Это ответ на ваш последний вопрос:

Откройте командную строку и введите точно:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (сколько возвращается вы хотите)

Возвращает время и разницу времени сервера NTP. Если он возвращает время, ошибка: 0x80072746, то это не ваш NTP-сервер.

Ниже приведен пример команды:

4ck1b

На другой машине я получил:

На другой машине я получил страницу справки, также сказав:

Итак, в основном служба не запускалась. Следуя этих инструкций, я сделал:

следуя инструкциям из %20%D0%B7%D0%B4%D0%B5%D1%81%D1%8C%20,%20%D0%BD%D0%BE,%20%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE,%20%D1%8D%D1%82%D0%BE%20%D0%B1%D1%8B%D0%BB%D0%BE%20%D1%82%D0%B0%D0%BA%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE:%20

Наконец, вам может потребоваться сделать следующее, что не было необходимо для меня:

ПРИМЕЧАНИЕ: если w32tm /config /update w32tm /resync /rediscover завершится с ошибкой 1290 (запуск службы невозможен, поскольку одна или несколько служб в одном процессе имеют несовместимую службу SID), затем выполните шаги здесь :

Затем следуйте приведенным выше.

ПРИМЕЧАНИЕ 2: если служба NTP не запускается автоматически при перезагрузке, это может быть связано с ее настройками запуска, как описано здесь : в зависимости от ваших окон его можно настроить только тогда, когда он присоединяется к домену. Вы можете проверить:

Если он настроен для запуска при присоединении к домену и у вас нет домена, настроенного на вашем компьютере, он не запустит службу и не установит время. Вероятно, он не входит в домен, потому что вы этого не хотите. В любом случае просто измените, какой триггер запускает его. Например, чтобы начать, когда машина имеет сеть (и, следовательно, имеет доступ к серверу), выполните:

В командной строке вы можете получить такую ​​информацию:

Кажется, этого должно быть достаточно, по крайней мере, чтобы идти в этом направлении, то есть, если бы я понял ваш вопрос. AFAIK, команда «reg» работает на всех этих разных платформах если у вас есть правильные сервисы.

Источник

Как найти сервер времени в домене?

В домене Windows PDC необязательно сервер времени домена. Как я могу определить авторитетный сервер времени?

4 ответа

Я предполагаю, что вы ищете сервер, используемый службой W32Time, для выполнения синхронизации времени на компьютерах с доменными именами.

В дистрибутиве Active Directory единственным компьютером, настроенным с временным сервером, явным образом будет компьютер, содержащий роль FSMO эмулятора PDC в корневом домене леса. Все контроллеры домена в корневом домене леса синхронизируют время с держателем роли FSMO эмулятора PDC. Все держатели роликов FSMO-эмулятора PDC в дочерних доменах синхронизируют свое время с контроллерами домена в своем родительском домене (в том числе потенциально обладателя роли FSMO для эмулятора PDF в корневом домене леса). Все компьютеры-члены домена синхронизируют время с компьютерами контроллера домена в своих соответствующих доменах.

Чтобы определить, настроен ли член домена для синхронизации времени домена, проверьте значение REG_SZ в HKLM System CurrentControlSet Services W32Time Parameters Type. Если установлено значение «Nt5DS», компьютер синхронизирует время с иерархией времени Active Directory. Если он настроен со значением «NTP», то comptuer синхронизирует время с сервером NTP, указанным в значении REG_SZ NtpServer в том же ключе реестра.

Информация о низкоуровневом протоколе синхронизации времени доступна в этой статье: Как работает служба времени Windows

Помните, что не каждый контроллер домена (KDC, так как Джеймс направляет вас на поиск через DNS в своем сообщении) может работать служба времени. В развертывании AD AD каждый контроллер домена будет, но некоторые развертывания могут использовать виртуализированные контроллеры домена, для которых отключена служба W32Time (для облегчения синхронизации по времени на основе гипервизора), и, как таковой, вам, вероятно, следовало бы реализовать функции, описанные в статья «Как работает служба времени Windows», если вы разрабатываете часть программного обеспечения, которая должна синхронизировать время таким же образом, что и компьютер члена домена.

Некоторые полезные команды

Повторная синхронизация (требуется права администратора):

Повторная синхронизация с конкретным компьютером (требуется права администратора):

Показывать сервер, который в настоящее время используется (требует прав администратора):

Двойная проверка, если он работает:

См. настройки:

Затем посмотрите на Type:

NoSync
Клиент не синхронизирует время.

NTP
Клиент синхронизирует время с внешним источником времени. Просмотрите значения в строке NtpServer на выходе, чтобы увидеть имя сервера или серверов, которые клиент использует для синхронизации времени.

NT5DS
Клиент настроен на использование иерархии домена для временной синхронизации.

AllSync
Клиент синхронизирует время с любым доступным источником времени, включая иерархию доменов и внешние источники времени.

Настройки реестра, найденные здесь:

Чтобы определить, кто в настоящее время держит роль эмулятора PDC в вашем домене, используйте:

Если вам нужно выполнить какое-либо регулярное или текущее обслуживание вашей настройки сервера времени, то что-то не так.

Источник

Как найти NTP-сервер в домене для синхронизации всех компьютеров

Сохранить все ПК
синхронизация, обновление времени в Интернете поможет вам справиться с этим. И делать
что вам нужно сначала найти NTP (сетевой протокол времени).

Командная строка Windows доставит вас туда. А также
если вы не знаете, с чего начать, не волнуйтесь.

В этом посте
вы узнаете, что вам нужно, как найти NTP-сервер для домена.

internet time

Зарегистрируйтесь и начните

Если вы не
зарегистрированный Windows Time Service пока что, приведенные ниже команды покажут вам, как это сделать
Это. Вам также нужно запустить службу, прежде чем вы сможете синхронизировать время вашего компьютера
с вашим NTP-сервером.

Сначала нужно
Запустите командную строку. Выберите «Запуск от имени администратора».

Launch Command Prompt

Затем введите
Следующая команда для регистрации вашей системы: w32tm
/регистр

Register

Как только вы нажмете
введите, вы узнаете, если регистрация прошла успешно.

Successfully Registered

Теперь начнем
с помощью этой команды: sc start
w32time

SC Start

W32tm / запрос

Теперь, когда
Служба времени Windows зарегистрирована и работает, вы можете получить информацию от
Это. Вы можете сделать это, набрав следующее: w32tm / query и сопоставив его со следующими параметрами.

/положение дел

Это покажет
у вас статус службы времени Windows.

Status

/положение дел
/подробный

Это установит
подробный режим, чтобы показать вам больше информации.

Status Verbose

/источник

Это покажет
Вы источник времени.

Source

/ конфигурации

Это покажет
вы конфигурация и настройки во время выполнения.

Configuration

/ сверстники

Это покажет
список людей, использующих вашу систему.

Peers

w32tm
/ ресинхронизации

Вы также можете использовать
Командная строка для повторной синхронизации
часы как можно скорее.

Вот
обсуждение каждого параметра этой команды:

/ Компьютер:

Это позволяет вам
укажите компьютер, который будет синхронизирован. Если вы оставите это поле пустым,
темой будет локальный компьютер.

/Нет, подождите

Это позволяет вам
исключить время ожидания для повторной синхронизации. Это означает, что вы не будете
придется ждать завершения процесса, прежде чем результаты будут возвращены.

/мягкий

Это позволяет вам
повторно синхронизировать часы, используя существующие ошибки. Конечно, это не сделает вас
хорошо. Но вы можете обратиться к информации, которую он предоставляет для совместимости.

resync

w32tm
/ конфигурации

Используйте эту команду
настроить вашу систему.

Давайте посмотрим на его
компоненты:

/ Manualpeerlist:

Это позволяет вам установить
список пэров. Это список IP-адресов.

Вы можете оставить это
пусто и по умолчанию будет установлено значение

/Обновить

Это позволяет вам
уведомить службу о новых изменениях, которые должны вступить в силу.

/ Localclockdispersion:

Это настраивает
Точность внутренних часов.

/ Надежность:

Это позволяет вам
указать, является ли система надежным источником времени.

/ Largephaseoffset:

Это позволяет вам установить
разница во времени с вашим местным и сетевым временем.

Config

w32tm
/ dumpreg

Получить
Информацию о ключе реестра вы также можете перейти в командную строку. Там введите следующее вместе с w32tm / dumpreg

/ Подраздел:

Это показывает вам
значения, связанные с вложенным ключом ключа по умолчанию.

/ Компьютер:

Это показывает вам
параметры реестра запросов для указанного компьютера.

dumpreg

w32tm
/ отладки

Командная строка также там, где вы можете
получить доступ к личному журналу вашего компьютера. Вот краткое обсуждение параметров
в этой категории.

/включить
или / отключить

Это позволяет вам включить или отключить личный журнал. Потому что вы хотите получить доступ к этому журналу,
Разрешение — это путь.

Это позволяет вам
укажите название вашего файла. В приведенном ниже примере, скажем, название нашего
файл «ххх».

/размер:

Это позволяет вам
укажите размер вашего файла. То, что вы должны ввести здесь, это максимальное количество
oftes.в примере, размер нашего файла составляет 100 байт.

/ записи:

Это позволяет вам
перечислить значение для ваших записей. Допустимые числа для этого поля:
от 0 до 300. В данном примере значение равно 10.

Источник

Как найти сервер времени в домене?

В домене Windows PDC не обязательно является сервером времени домена. Как я могу определить авторитетный сервер времени?

Я предполагаю, что вы ищете сервер, используемый службой W32Time для синхронизации времени на компьютерах, входящих в домен.

В стандартном развертывании Active Directory единственным компьютером, явно настроенным с сервером времени, будет компьютер, выполняющий роль FSMO эмулятора PDC в корневом домене леса. Все контроллеры домена в корневом домене леса синхронизируют время с держателем роли PDM Emulator FSMO. Все обладатели ролей PDM Emulator FSMO в дочерних доменах синхронизируют свое время с контроллерами домена в своем родительском домене (включая, потенциально, держателя роли PDF Emulator FSMO в корневом домене леса). Все компьютеры-члены домена синхронизируют время с компьютерами контроллера домена в соответствующих доменах.

Чтобы определить, настроен ли член домена для синхронизации времени домена, проверьте значение REG_SZ в HKLM System CurrentControlSet Services W32Time Parameters Type. Если установлено значение «Nt5DS», то компьютер синхронизирует время с иерархией времени Active Directory. Если он настроен со значением «NTP», то компьютер синхронизирует время с NTP-сервером, указанным в значении REG_SZ NtpServer в том же разделе реестра.

Сведения о низкоуровневом протоколе синхронизации времени доступны в этой статье: Как работает служба времени Windows

Помните, что не каждый контроллер домена (KDC, как Джеймс указывает вам при поиске через DNS в своем посте) может использовать службу времени. В стандартном развертывании AD каждый контроллер домена будет, но в некоторых развертываниях могут использоваться виртуализированные контроллеры домена, у которых отключена служба W32Time (для облегчения синхронизации времени на основе гипервизора), и, как таковая, вы, вероятно, преуспели бы в реализации функциональности, как описано в статью «Как работает служба времени Windows», если вы разрабатываете программное обеспечение, которое должно синхронизировать время так же, как это делает компьютер, являющийся членом домена.

Источник

Настройка NTP сервера в Windows

Начиная с Windows 2000 все операционные системы Windows включают в себя службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol).

По умолчанию служба времени в Windows сконфигурирована следующим образом:

• При установке операционной системы Windows запускает клиента NTP и синхронизируется с внешним источником времени;
• При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;
• При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;
• PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.

Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии, и надежным источником времени можно назначить любой компьютер. В качестве примера я опишу настройку NTP-сервера в Windows Server 2008 R2, хотя со времен Windows 2000 процедура не особо изменилась.

Запуск NTP сервера

Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2012) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.

Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.

ntp1

Затем перезапускаем службу времени командой net stop w32time && net start w32time

ntp2

ntp3

Для того, чтобы NTP-сервер мог обслуживать клиентов, не забудьте на файерволле открыть UDP порт 123 для входящего и исходящего траффика.

Основные настройки NTP сервера

NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLMSystemCurrentControlSetservicesW32TimeParameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.

И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.

В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:

0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).

ntp4

Еще один важный параметр AnnounceFlags находится в разделе реестра HKLMSystemCurrentControlSetservicesW32TimeConfig. Он отвечает за то, как о себе заявляет 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.

ntp5

Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).

ntp6

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой 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 – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.

Источник

Синхронизация времени является важной задачей, хотя не многие задумывались об этом. Ну что плохого в убежавшем на сервере времени? А знаете ли вы, что многие проблемы с часами влияют на протоколы, связанные с криптографией? По этой причине в Active Directory разница в часах более 5 минут будет приводить к проблемам аутентификации Kerberos.

Часовые уровни. Strata.

Чтобы понять устройство NTP следует знать про концепцию strata или stratum. Авторитетные источники времени, такие как спутники GPS, цезиевые атомные часы, радио волны WWVB — всё это stratum 0. Они авторитетны на том основании, что у них есть некоторый способ поддержания высокоточного хронометража. Можно, конечно, воспользоваться обычными кварцевыми часами, но зная, что за месяц с ними легко потерять 15 секунд, то лучше их не использовать в качестве мерила времени. Stratum 0 это когда секунда не потеряется за 300 000 лет!

Компьютеры, которые напрямую (не по сети!) берут время у stratum 0 — это stratum 1. Так как всегда есть задержки из-за передачи сигнала и затраты на установку времени, то компьютеры stratum 1 не так точны как stratum 0, но в реальной жизни различие достигает пару микросекунд (1 мкс = 10-6 с), что вполне допустимое отклонение.

Следующий уровень компьютеров, берущих время по сети у stratum 1 — это … барабанная дробь … интрига … stratum 2! Опять таки из-за различных задержек (сетевые точно), stratum 2 чуток отстаёт от stratum 1 и уж точно от stratum 0. На практике это разница от нескольких микросекунд (1 мкс = 10-6 с) до нескольких миллисекунд (1 мс = 10-3 с). Многие хотят синхронизироваться со слоем не дальше stratum 2.

Как понятно из схемы, stratum 4 берёт время у вышестоящего stratum 3. stratum 5 у stratum 4 и так далее. stratum 16 считается самым нижним слоем и время там считается несинхронизированным.

Чтобы синхронизировать время с помощью протокола NTP, следует сначала вручную выставить ваше время. Недопустима разница между вашим точным временем и показаниями ваших часов более 1000 секунд. Если используемый вами сервер времени врёт более 1000 миллисекунд (1 секунда), то он будет исключён из списка и будут использоваться другие вместо него. Данный механизм позволяет отсеивать плохие источники времени.

Клиент времени.

В файле /etc/ntp.conf для клиента важны строки Server. Их может быть несколько — до 10 штук!

Сколько добавлять? Следует иметь в виду:

  • Если у вас только один сервер (одна строка server), то если данный сервер начнёт врать, то вы будете слепо следовать за ним. Если его время убежит на 5 секунд и вы убежите в след за ним.
  • Если добавлено 2 сервера (2 строки server), то NTP пометит их обоих как false tickers. Если один из них будет врать, то NTP не может понять кто врёт, так как нет кворума.
  • Если добавлено 3 и более сервера времени, то можно вычислить одного вруна false tickers. Если серверов времени 5 или 6, то можно найти 2 вруна false tickers. Если серверов 7 или 8, то 3 false tickers. Если серверов 9 и 10, то 4 false tickers.

Проект NTP Pool.

Есть такой проект NTP Pool по адресу которого pool.ntp.org/zone/ru/ можно найти рекомендованные для русских пользователей сервера времени.

server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org

Такие операционные системы, как Debian и Ubuntu, предлагают пользователям свои сервера времени.

server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server 3.debian.pool.ntp.org

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

Если вызвать на вашем Linux компьютере, который использует NTP, команду ntpq -pn

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+93.180.6.3      77.37.134.150    2 u   62 1024  377   53.658   -0.877   1.174
+85.21.78.23     193.190.230.65   2 u 1027 1024  377   54.651    0.167   1.531
*62.173.138.130  89.109.251.24    2 u  940 1024  377   52.796   -0.143   1.001
+91.206.16.3     194.190.168.1    2 u  258 1024  377   93.882   -0.680   2.196
-91.189.94.4     193.79.237.14    2 u  596 1024  377  100.219    1.562   1.482

О чём говорят названия столбцов:

  • remote — удалённые сервера, с которыми вы синхронизируете время.
  • refid — вышестоящий stratum для данного сервера.
  • st — уровень stratum. От 0 (нам недоступно) до 16 (нам не желательно). Идеально — 2.
  • t — тип соединения. «u» — unicast или manycast, «b» — broadcast или multicast, «l» local reference clock, «s» — симметричный узел, «A» — manycast сервер, «B» — broadcast server, «M» — multicast сервер.
  • when — время, когда последний раз сервер ответил нам. Параметр отображает число в секундах, но может в минутах, если число с m или в часах, если h.
  • poll — частота опроса. Минимум 16 секунд, максимум 32 часа. Число должно быть 2n. Обычно в данном параметре наблюдается или 64 секунды или 1024.
  • reach — 8 бит октета, показывающий статус общения с удалённым сервером времени: успешный или сбойный. Если биты установлены — то успешно, иначе — сбой. Значение 377 — бинарно это 0000 0000 1111 1111.
  • delay — значение в миллисекундах показывает время между отправкой и получения ответа (round trip time — RTT).
  • offset — смещение в миллисекундах между вами и серверами времени. Может быть положительным и отрицательным числом.
  • jitter — абсолютное значение в миллисекундах с указанием среднеквадратичного отклонения вашего смещения.

Перед IP адресом NTP сервера есть символ — это tally code. Виды tally code:

  • » « — отброшен как недопустимый. Например, нет связи с ним или он в оффлайн, он слишком высокого ранга и не обслуживает таких как вы.
  • «x» — отброшен алгоритмом «пересечения» (intersection algorithm). Алгоритм пересечения подготавливает список кандидатов партнеров, могущих стать источниками синхронизации и вычисляет доверительный интервал для каждого из них.
  • «.» — отброшен из-за переполнения таблицы.
  • «-« — отброшен алгоритмом кластеризации (cluster algorithm). Алгоритм кластеризации сортирует список кандидатов по кодам слоя и расстояния синхронизации.
  • «+» — сервер включён алгоритмом «комбинирования» (combine algorithm). Этот сервер — отличный кандидат если текущий сервер времени начнёт отказывать вам.
  • «#» — сервер является отличным альтернативным сервером времени. Сервер с # можно увидеть только если у вас более 10 записей server в /etc/ntp.conf
  • «*» — текущий сервер времени. Его показания используются для синхронизации ваших часов.
  • «o» — сервер Pulse per second (PPS). Обычно это означает, что данный сервер времени использует источники времени типа GPS спутников и другие сигналы точного времени. Если рисуется о, то другие типы tally code уже отображаться не будут.

В поле refid могут быть следующие значения:

  • IP адрес — адрес удалённого сервера времени.
  • .ACST.- NTP manycast сервер.
  • .ACTS.- Automated Computer Time Service из American National Institute of Standards and Technology.
  • .AUTH.- ошибка аутентификации.
  • .AUTO.- ошибка в последовательностях Autokey.
  • .BCST.- NTP broadcast сервер.
  • .CHU.- Shortwave radio receiver от станции CHU в Ottawa, Ontario, Canada.
  • .CRYPT.- ошибка протокола Autokey.
  • .DCFx.- LF radio receiver от станции DCF77 в Mainflingen, Germany.
  • .DENY.- В доступе отказано.
  • .GAL.- European Galileo satellite receiver.
  • .GOES.- American Geostationary Operational Environmental Satellite receiver.
  • .GPS.- American Global Positioning System receiver.
  • .HBG.- LF radio receiver от станции HBG в Prangins, Switzerland.
  • .INIT.- Peer association initialized.
  • .IRIG.- Inter Range Instrumentation Group time code.
  • .JJY.- LF radio receiver от станции JJY в Mount Otakadoya, рядом с Fukushima или Mount Hagane на острове Kyushu, Japan.
  • .LFx.- Обычный LF radio receiver.
  • .LOCL.- локальные часы хоста.
  • .LORC.- LF radio receiver от Long Range Navigation (LORAN-C).
  • .MCST.- NTP multicast сервер.
  • .MSF.- Anthorn Radio Station рядом с Anthorn, Cumbria.
  • .NIST.- American National Institute of Standards and Technology.
  • .PPS.- часы Pulse per second.
  • .PTB.- Physikalisch-Technische Bundesanstalt от Brunswick и Berlin, Germany.
  • .RATE.- превышен порог опроса NTP.
  • .STEP.- изменение шага NTP. Смещение offset менее 1000 миллисекунд, но более 125 миллисекунд.
  • .TDF.- LF radio receiver от станции TéléDiffusion de France в Allouis, France.
  • .TIME.- NTP association timeout.
  • .USNO.- United States Naval Observatory.
  • .WWV.- HF radio receiver от станции WWV в Fort Collins, Colorado, United States.
  • .WWVB.- LF radio receiver от станции WWVB в Fort Collins, Colorado, United States.
  • .WWVH.- HF radio receiver от станции WWVH в Kekaha, на острове Kauai на Hawaii, United States.

Рекомендации для клиента серверов времени.

Во-первых, избавьтесь от мысли как бы получить время от stratum 1, дескать они ближе всех к точному времени. Они то ближе к точнейшему времени на планете, только сами они перегружены и у них высокие задержки RTT для обычных серверов. Лучше найти нормальный stratum 2 и не переживать по этому поводу. Не забывайте, что речь идёт о микросекундах и миллисекундах, что в обычной жизни — вполне достаточно.

Во-вторых, помните, что подключение к ближайшему серверу времени не всегда идеальный вариант. Важнее не территориальная близость, а уровень stratum. Проект NTP Pool публикует список серверов только уровня stratum 1 и stratum 2 и лучше взять до 10 серверов времени из данного списка, что будет просто замечательно.

В-третьих, если вы простой домашний пользователь-клиент, то рекомендованные вам сервера в вашей операционной системе будут идеальным вариантом, не требующим лишних телодвижений.

Для крупных контор, лучшим вариантом будет поднятие своего сервера времени для рабочих компьютеров. Данный сервер будет получать точное время от серверов времени в Интернете и предоставлять его локальным компьютерам. На серверах Debian и Ubuntu достаточно раскомментировать строку

restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

в конфигурационном файле демона ntpd — /etc/ntp.conf

Пользователи из сети 192.168/16 будут иметь возможность брать с вашего сервера показания точнейших часов. Для внутренних серверов на базе Linux, которые не являются серверами времени и занимаются своими задачами, вместо запуска демона ntpd в клиентском режиме — вполне достаточно указать в файле /etc/cron.daily/syncntpd. Рекомендуется прочесть различия между ntpdate и ntp и решить для себя вопрос.
#!/bin/sh
/usr/sbin/ntpdate IP.адрес.вашего.сервера > /dev/null 2>&1
exit 0

и раз в сутки, благодаря команде ntpdate, будет произведена синхронизация времени. Во избежании недоразумений, не поленитесь перед внедрением сервера времени и синхронизации всего и вся через протокол NTP — выставите вручную правильное время на всех доступных вам серверах и рабочих станциях. Если ваше несинхронизированное время слишком отличается от правильного, то можно вначале огрести много не нужных проблем.

В-четвёртых, NTP никак не связан, в какой стране и какие часовые пояса используются и как происходит переход на летнее и зимнее время и делается ли в данной стране такой переход. Это обязанность лежит на операционной системе, которую вам нужно обновлять, если в стране происходят изменения в часовых делах. В системах Debian и Ubuntu за это отвечает пакет tzdata, который должен быть актуальным.

В-пятых, лучше не поднимать свой NTP сервер на высоконагруженной системе.

Дополнительные материалы:
Как разрешить прохождение трафика NTP в iptables.

Дата последней правки: 2016-08-31 11:23:38

  • Синхронизация времени по NTP – что это такое

Все люди следят за временем. Для техники этот вопрос еще критичнее. Учитывая тотальную цифровизацию, отклонение всего на небольшой промежуток способно привести к плачевным последствиям.

С чем необходимо синхронизировать оборудование? В роли базовой точки выступают первичные часы. Это приборы, преимущественно очень большой точности, которые день в день отсчитывают правильные промежутки времени. Но здесь встает вопрос о передачи этой информации на другие устройства. Проблема решается стандартными синхронизации, одним из которых является NTP.

Что такое NTP-синхронизация

Это стандарт, который обеспечивает передачу точных показаний времени через сеть Интернет. NTP синхронизация времени работает через иерархию серверов.

Различают два высших уровня:

  • первый;
  • нулевой.

На первом уровне размещены крупные серверы времени. Они подключены прямым каналом связи к различным временным службам.

На нулевом уровне находятся эталонные часы – атомные, соединенные с GPS, радиоприемниками и т.д. Именно они раздают высокоточный сигнал на остальные устройства по всему миру. Уровень синхронизации достаточно высок, ведь отклонение в долю секунды повлечет сбой навигационных, банковских, компьютерных и других систем.

Что дает синхронизация

NTP сервера для синхронизации времени позволяют контролировать момент пуска и остановки различных процессов в сети вплоть до миллиардной доли секунды. Такая высокая точность позволяет достичь следующих целей:

  • согласованную работу техники и программ, которые находятся на значительном удалении;
  • повышение безопасности в сетях всех уровней, возможность отслеживать нарушения и выявлять злоумышленников;
  • достижение согласованности между приложениями и операционными системами;
  • корректное выполнение алгоритмов, связанных с шифрованием, криптографией, транзакциями, что особенно актуально в банковской сфере;
  • хранение информации, связанной с точными событиями.

По умолчанию, в большинстве популярных операционных систем уже настроен доступ к NTP серверам. Пользователю нет необходимости отдельно устанавливать синхронизацию, разработчики уже позаботились об этом. В отдельных направлениях, например исследования или экономика, для достижения исключительной точности применяется ручная настройка, включая конфигурацию протоколов и портов.

Рекомендуемые

Часы вторичные стрелочные ЧВС 285

3 200.00 р.
Без налога: 2 666.67 р.

Первичные часы ПЧС-2

21 500.00 р.
Без налога: 17 916.67 р.

Часы вторичные цифровые ЧВЦ 100

10 500.00 р.
Без налога: 8 750.00 р.

Часы вторичные стрелочные ЧВС 300 М

4 300.00 р.
Без налога: 3 583.33 р.

Часы вторичные стрелочные ЧВС 590

18 500.00 р.
Без налога: 15 416.67 р.

Понравилась статья? Поделить с друзьями:
  • Как найти студентов определенного вуза
  • Как найти самсунг если нет аккаунта
  • Как составить конспект в тетради
  • Как найти количества теплоты химия
  • Ошибка 104101 zoom как исправить