Разное

Служба ntp: Навигация по рабочему столу | DSM

09.04.2000

Содержание

NTP, Chrony и systemd-timesyncd / Хабр

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

Более того: некоторые из нас одержимы временем. Мои часы питаются от солнечной энергии и получают точное время из Национального института стандартов и технологий (NIST) в Форт-Коллинз (штат Колорадо) через длинноволновую радиостанцию WWVB. Сигналы времени синхронизируются с атомными часами, также расположенными в форте Коллинз. Мой Fitbit синхронизируется с моим телефоном, который синхронизируется с сервером NTP, который в конечном итоге синхронизируется с атомными часами.

Устройства тоже следят за временем

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

Наши телефоны, планшеты, автомобили, системы GPS и компьютеры требуют точной настройки времени и даты. Я хочу, чтобы часы на рабочем столе моего компьютера показывали правильное время. Я хочу, чтобы в моём локальном календаре напоминания появлялись в нужное время. Правильное время также гарантирует, что задания cron и systemd запускались в нужное время.

Дата и время также важны для ведения журнала, поэтому немного проще найти те или иные логи, ориентируясь по дате и времени. Например, однажды я работал в DevOps (в то время его так не называли) и занимался настройкой системы электронной почты в штате Северная Каролина. Раньше мы обрабатывали более 20 миллионов писем в день. Отслеживание электронной почты через серию серверов или определение точной последовательности событий с использованием файлов журналов на географически разнесенных хостах может быть намного проще, если соответствующие компьютеры синхронизированы по времени.

Время одно — часов много

Хосты Linux должны учитывать, что существует системное время и время RTC. RTC (Real Time Clock — часы реального времени) является немного странным и не особо точным названием для аппаратных часов.

Аппаратные часы работают непрерывно, даже когда компьютер выключен, используя аккумулятор на материнской плате системы. Основная функция RTC — хранить время, когда соединение с сервером времени недоступно. В те времена, когда нельзя было подключиться к серверу времени через интернет каждый компьютер должен был иметь точные внутренние часы. Операционные системы должны были обращаться к RTC во время загрузки, и пользователь должен был вручную установить системное время, используя аппаратный интерфейс конфигурации BIOS, чтобы убедиться, что оно правильное.

Аппаратные часы не понимают концепцию часовых поясов; в RTC хранится только время, а не часовой пояс или смещение от UTC (Всемирное координированное время, которое также известно как GMT или среднее время по Гринвичу). Вы можете установить RTC с помощью инструмента, о котором я расскажу позже в этой статье.

Системное время — это время, которое ОС отображает на часах GUI на вашем рабочем столе, в выходных данных команды date, в метках времени журналов. Это также относится ко времени создания, изменения и открытия файлов.

На странице man для rtc есть полное описание RTC и системных часов.

Что там у NTP?

Компьютеры во всем мире используют NTP (сетевой протокол времени) для синхронизации своего времени со стандартными эталонными часами через интернет с помощью иерархии серверов NTP. Основные серверы времени находятся на уровне 1, и они напрямую подключены к различным национальным службам времени на уровне 0 через спутник, радио или даже модемы по телефонным линиям. Службы времени на уровне 0 могут быть атомными часами, радиоприёмником, который настроен на сигналы, передаваемые атомными часами, или приёмником GPS, использующим высокоточные сигналы часов, передаваемые спутниками GPS.

На подавляющем большинстве эталонных серверов открыто несколько тысяч общедоступных серверов NTP stratum 2, которые доступны для всех. Многие организации и пользователи (включая меня) с большим количеством хостов, которым требуется NTP-сервер, предпочитают устанавливать свои собственные серверы времени, поэтому только один локальный хост обращается к stratum 2 или 3. Затем они настраивают оставшиеся узлы в сети для использования локального сервера времени. В случае моей домашней сети это сервер уровня 3.

Различные реализации NTP

Первоначальная реализация NTP — это ntpd. Затем к ней присоединились две более новых, chronyd и systemd-timesyncd. Все три синхронизируют время локального хоста с сервером времени NTP. Служба systemd-timesyncd не так надёжна, как chronyd, но этого достаточно для большинства целей. Если RTC не синхронизирован, она может постепенно корректировать системное время, чтобы синхронизироваться с NTP-сервером, когда локальное системное время немного смещается. Служба systemd-timesync не может использоваться в качестве сервера времени.

Chrony — это реализация NTP, содержащая две программы: демон chronyd и интерфейс командной строки под названием chronyc. У Chrony есть некоторые функции, которые во многих случаях просто незаменимы:

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

Ещё раз: NTP — это протокол, который может быть реализован на хосте Linux с использованием Chrony или systemd-timesyncd.

RPM-пакеты NTP, Chrony и systemd-timesyncd доступны в стандартных репозиториях Fedora. RPM systemd-udev — это менеджер событий ядра, который в Fedora установлен по умолчанию, но не является обязательным для использования.

Вы можете установить все три и переключаться между ними, но это создаст лишнюю головную боль. Так что лучше не стоит. Современные релизы Fedora, CentOS и RHEL перешли на Chrony как стандартную реализацию, и кроме того, у них есть systemd-timesyncd. Я считаю, что Chrony работает хорошо, обеспечивает лучший интерфейс, чем служба NTP, предоставляет гораздо больше информации и повышает контроль, что безусловно понравится системным администраторам.

Отключение служб NTP

Возможно, на вашем хосте уже запущена служба NTP. Если это так, вам нужно отключить её перед переключением на что-то другое. У меня был запущен chronyd, поэтому я использовал следующие команды, чтобы остановить и отключить его. Запустите соответствующие команды для любого демона NTP, который вы используете на своем хосте:

[[email protected] ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[[email protected] ~]#

Проверьте, что служба остановлена и отключена:

[[email protected] ~]# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:chronyd(8)
             man:chrony.conf(5)
[[email protected] ~]#

Проверка статуса перед запуском

Статус системной синхронизации часов позволяет определить, запущена ли служба NTP. Поскольку вы ещё не запустили NTP, команда timesync-status намекнёт на это:

[[email protected] ~]# timedatectl timesync-status
Failed to query server: Could not activate remote peer.

Прямой запрос статуса даёт важную информацию. Например, команда timedatectl без аргумента или параметров выполняет подкоманду status по умолчанию:

[[email protected] ~]# timedatectl status
           Local time: Fri 2020-05-15 08:43:10 EDT  
           Universal time: Fri 2020-05-15 12:43:10 UTC  
                 RTC time: Fri 2020-05-15 08:43:08      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: yes                    

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
[[email protected] ~]#

Так вы получите местное время для вашего хоста, время UTC и время RTC. В данном случае системное время установлено на часовой пояс America / New_York (TZ), RTC установлено на время в местном часовом поясе, а служба NTP не активна. Время RTC начало немного отклоняться от системного времени. Это нормально для систем, часы которых не были синхронизированы. Величина смещения на хосте зависит от времени, прошедшего с момента последней синхронизации системы.

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

Установка часового пояса

Обычно вы указываете часовой пояс во время процедуры установки, и у вас нет задачи менять его в дальнейшем. Однако бывают случаи, когда необходимо изменить часовой пояс. Есть несколько инструментов, которые могут помочь. Для определения местного часового пояса хоста Linux использует файлы часовых поясов. Эти файлы находятся в каталоге

/usr/share/zoneinfo

. По умолчанию для моего часового пояса система прописывает вот это:

/etc/ localtime -> ../usr/share/zoneinfo/America/New_York

. Но вам не нужно знать такие тонкости, чтобы изменить часовой пояс.

Главное — знать официальное название часового пояса для вашего местоположения и соответствующую команду. Скажем, вы хотите изменить часовой пояс на Лос-Анджелес:


[[email protected] ~]# timedatectl list-timezones | column
<SNIP>
America/La_Paz                  Europe/Budapest
America/Lima                    Europe/Chisinau
America/Los_Angeles             Europe/Copenhagen
America/Maceio                  Europe/Dublin
America/Managua                 Europe/Gibraltar
America/Manaus                  Europe/Helsinki
<SNIP>

Теперь вы можете установить часовой пояс. Я использовал команду date для проверки изменений, но вы также можете использовать timedatectl:

[[email protected] ~]# date
Tue 19 May 2020 04:47:49 PM EDT
[[email protected] ~]# timedatectl set-timezone America/Los_Angeles
[[email protected] ~]# date
Tue 19 May 2020 01:48:23 PM PDT
[[email protected] ~]#

Теперь вновь можете изменить часовой пояс своего хоста на местное время.

systemd-timesyncd

Демон systemd timesync предоставляет реализацию NTP, которой легко управлять в контексте systemd. Он устанавливается по умолчанию в Fedora и Ubuntu. Однако запускается он по умолчанию только в Ubuntu. Я не уверен насчёт других дистрибутивов. Вы можете проверить у себя сами:

[[email protected] ~]# systemctl status systemd-timesyncd

Конфигурирование systemd-timesyncd

Файл конфигурации для systemd-timesyncd — это

/etc/systemd/timesyncd.conf

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

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

Единственный раздел, который он содержит, кроме комментариев, это [Time]. Все остальные строки закомментированы. Это значения по умолчанию, их не нужно менять (если у вас нет для этого причин). Если у вас нет сервера времени NTP, определенного в строке NTP =, по умолчанию в Fedora используется резервный сервер времени Fedora. Я обычно добавляю свой сервер времени:

NTP=myntpserver

Запуск timesync

Запустить и сделать systemd-timesyncd активным можно так:

[[email protected] ~]# systemctl enable systemd-timesyncd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
[[email protected] ~]# systemctl start systemd-timesyncd.service
[[email protected] ~]#

Установка аппаратных часов

Вот как выглядит ситуация после запуска timesyncd:

[[email protected] systemd]# timedatectl
               Local time: Sat 2020-05-16 14:34:54 EDT  
           Universal time: Sat 2020-05-16 18:34:54 UTC  
                 RTC time: Sat 2020-05-16 14:34:53      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: no    

Изначально разница между RTC и местным временем (EDT) не превышает секунды, и расхождение возрастает ещё на пару секунд в течение следующих нескольких дней. Поскольку в RTC нет понятия часовых поясов, команда timedatectl должна выполнить сравнение, чтобы определить нужный часовой пояс. Если время RTC точно не соответствует местному времени, то значит, оно не соответствует и местному часовому поясу.

В поисках дополнительной информации я проверил состояние systemd-timesync и обнаружил вот что:

[[email protected] systemd]# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-05-16 13:56:53 EDT; 18h ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 822 (systemd-timesyn)
     Status: "Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org)."
      Tasks: 2 (limit: 10365)
     Memory: 2.8M
        CPU: 476ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─822 /usr/lib/systemd/systemd-timesyncd

May 16 09:57:24 testvm2.both.org systemd[1]: Starting Network Time Synchronization...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: System clock time unset or jumped backwards, restoring from recorded timestamp: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Started Network Time Synchronization.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org).
[[email protected] systemd]#

Обратите внимание на сообщение журнала, в котором говорится, что системное время не установлено или сброшено назад. Служба Timesync устанавливает системное время на основе временной метки. Метки времени поддерживаются демоном timesync и создаются при каждой успешной синхронизации.

Команда timedatectl не имеет возможности взять значение аппаратных часов из системных часов. Она может установить время и дату только из значения, введённого в командной строке. Вы можете установить RTC на то же значение, что и системное время, используя команду hwclock:

[[email protected] ~]# /sbin/hwclock --systohc --localtime
[[email protected] ~]# timedatectl
               Local time: Mon 2020-05-18 13:56:46 EDT  
           Universal time: Mon 2020-05-18 17:56:46 UTC  
                 RTC time: Mon 2020-05-18 13:56:46      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: yes

Опция —localtime говорит о том, что аппаратные часы показывают местное время, а не UTC.

Зачем вам вообще RTC?

Любая реализация NTP установит системные часы во время запуска. И зачем тогда RTC? Это не совсем так: это произойдет только в случае, если у вас есть сетевое соединение с сервером времени. Однако многие системы не имеют постоянного доступа к сетевому соединению, поэтому аппаратные часы полезны для того, чтобы Linux мог на их основе установить системное время. Это лучше, чем установка времени вручную, даже если оно может отклоняться от реального времени.

Заключение

В этой статье рассмотрены некоторые инструменты для управления датой, временем и часовыми поясами. Инструмент systemd-timesyncd предоставляет NTP-клиента, который может синхронизировать время на локальном хосте с NTP-сервером. Однако systemd-timesyncd не предоставляет серверную службу, поэтому, если вам нужен NTP-сервер в вашей сети, вы должны использовать что-то ещё — например, Chrony, для работы в качестве сервера.

Я предпочитаю иметь единственную реализацию для любой служб в моей сети, поэтому использую Chrony. Если вам не нужен локальный NTP-сервер или если вы не против использовать Chrony в качестве сервера и systemd-timesyncd в качестве SNTP-клиента. Ведь нет необходимости использовать дополнительные возможности Chrony как клиента, если вас устраивает функционал systemd-timesyncd.

Еще одно замечание: вы не обязаны использовать инструменты systemd для реализации NTP. Вы можете использовать старую версию ntpd, Chrony или другую реализацию NTP. Ведь systemd состоит из большого количества сервисов; многие из них являются необязательными, поэтому их можно отключить и использовать вместо них что-то ещё. Это не огромный монолитный монстр. Можно не любить systemd или его части, но вы должны принять обоснованное решение.

Мне нравится реализация NTP в systemd, но я предпочитаю Chrony, потому что он лучше отвечает моим потребностям. Это Linux, детка -)



На правах рекламы

VDSina предлагает

серверы под любые задачи

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

ISO

, удобная

панель управления

собственной разработки и посуточная оплата. Напомним, у нас есть вечные серверы, которые точно неподвластны времени 😉

W32tm – управление службой времени Windows.

Утилита командной строки w32tm.exe предназначена для удаления или установки службы времени Windows W32Time и управления ею на локальном или удаленном компьютере. Служба времени Windows (W32Time) предназначена для синхронизации даты и времени на компьютерах в локальной или глобальной сети. Если служба времени не установлена или отключена, синхронизация времени невозможна.

Служба W32Time обеспечивает функционирование как клиентской, так и серверной части программного обеспечения системы и один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol). Протокол NTP использует порт 123/UDP, что нужно учитывать при настройке брандмауэра системы.

Алгоритм функционирования службы времени немного отличается в зависимости от того, является ли компьютер членом домена, или нет. Компьютеры, не входящие в домен используют синхронизацию часов с внешним источником, а входящие – с внутренним NTP-сервером, которым является контроллер домена с ролью PDC-эмулятора (эмулятора первичного контроллера домена). При этом, сам сервер NTP синхронизируется с внешним источником времени. Схема с контроллером домена реализуется при развертывании домена Active Directory и не требует какого-либо ручного вмешательства, более того, такое вмешательство чревато непредвиденными проблемами с функционированием всей инфраструктуры. Для компьютеров же, не входящих в домен, некоторые изменения настроек очень даже не помешают. В частности, во всех актуальных версиях Windows (Windows 7 и старше), предусмотрено выполнение планировщиком заданий стандартной задачи синхронизации времени с внешним источником SynchronizeTime, которая настроена далеко не самым оптимальным образом. Кроме того, некоторые параметры самой службы времени, установленные по умолчанию, не обеспечивают надежную автоматическую синхронизацию часов системы с внешним сервером в Интернет.

Параметры командной строки для установки (удаления) службы времени:

w32tm [/? | /register | /unregister ]

? — вывод справочной информации по использованию команды.

register — установка службы времени Windows и добавление ее стандартной конфигурации в реестр.

unregister — удаление службы времени Windows и всех параметров конфигурации из реестра.

Параметры службы времени хранятся в ключе реестра

HKLM\System\CurrentControlSet\Services\w32time

Соответственно, параметры службы времени можно менять не только с помощью команды w32tm, но и правкой реестра. В этом случае, применение измененных параметров обеспечивается командой обновления конфигурации
w32tm /config /update
или перезапуском службы W32Time.

Параметры командной строки для мониторинга службы времени:

w32tm /monitor [/domain:] [/computers:[,[,…]]] [/threads:] [/ipprotocol:] [/nowarn]

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

computers — наблюдение за перечисленными в списке компьютерами. Имена компьютеров разделяются запятыми, без пробелов. Если имя имеет префикс ‘*’, оно считается именем эмулятора первичного контроллера домена в Active Directory (AD PDC). Этот параметр может использоваться несколько раз.

threads — количество одновременно наблюдаемых компьютеров. Стандартное значение по умолчанию — 3. Допустимый диапазон — от 1 до 50.

ipprotocol — версия IP-протокола (4 или 6), которая будет использоваться для наблюдения. По умолчанию будет использоваться протокол IP любой доступной версии.

nowarn — не отображать сообщения с предупреждениями.

Параметры командной строки для временных преобразований:

w32tm /ntte время_NT

— Преобразует системное время NT в интервалах (10^-7) с начиная с 00 часов 1 января 1601 г.-32) с начиная с 00 часов 1 января 1900 г. в понятный формат.

Параметры для выполнения принудительной синхронизации даты и времени с внешним источником:

w32tm /resync [/computer:] [/nowait] [/rediscover] [/soft]

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

computer:компьютер — компьютер, который должен выполнить повторную синхронизацию. Если параметр не указан, выполняется повторная синхронизация локального компьютера.

nowait — не ожидать завершения повторной синхронизации, выполнять возврат немедленно. В противном случае ожидать завершения повторной синхронизации перед возвратом.

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

soft — повторно синхронизировать, используя существующую статистику ошибок. Данный параметр в современных ОС не используется и предоставлен для обеспечения совместимости.

В справочной информации отсутствует описание параметра /force, который предназначен для выполнения синхронизации времени даже если отклонение показаний аппаратных часов и источника превышает установленное отклонение ( по умолчанию – 15 часов).

w32tm /stripchart /computer:компьютер [/period:обновление] [/dataonly] [/samples:число] [/packetinfo] [/ipprotocol:]

Выводит диаграмму различий между этим и другим компьютером. computer:компьютер — компьютер, с которым выполняется сравнение.

period:обновление — интервал между измерениями (в секундах). Значение по умолчанию — 2 с.

dataonly — отображать только данные, без диаграмм.

samples:число — собрать число показаний, затем остановиться. Если не указано, сбор данных продолжается, пока не будут нажаты клавиши CTRL+C или CTRL+Break.

packetinfo — напечатать ответное сообщение NTP-пакета. ipprotocol — задать версию протокола IP, который нужно использовать. По умолчанию применяется любой доступный протокол.

w32tm /config [/computer:компьютер] [/update] [/manualpeerlist:узлы] /syncfromflags:источник] [/LocalClockDispersion:секунды] [/reliable:(YES|NO)] [/largephaseoffset:миллисекунды]

computer:компьютер — настраивает конфигурацию указанного компьютера. Если параметр не задан, по умолчанию используется локальный компьютер.

update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.

manualpeerlist:узлы — задает вручную список DNS-имен и (или) IP-адресов, разделенных пробелами. При указании нескольких узлов этот параметр должен быть заключен в кавычки.

syncfromflags:источник — определяет, с какими источниками должен синхронизироваться NTP-клиент. источник должен быть списком из следующих ключевых слов, разделенных запятыми (без учета регистра):
&nbsp MANUAL — синхронизация с узлами из заданного вручную списка.
&nbsp DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии.
&nbsp NO — без синхронизации.
&nbsp ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена.

LocalClockDispersion:секунды — настраивает точность внутренних часов, с которой служба w32time будет работать, если не сможет получить время из своих настроенных источников.

reliable:(YES|NO) — определяет, является ли этот компьютер надежным источником времени. Этот параметр имеет значение только для контроллеров домена.

&nbsp YES — этот компьютер является надежной службой времени.
&nbsp NO — этот компьютер не является надежной службой времени.

largephaseoffset:миллисекунды — устанавливает разницу между локальным и сетевым временем, которую служба w32time будет считать максимальной.

w32tm /tz — Отображает текущие параметры часового пояса.

w32tm /dumpreg [/subkey:раздел] [/computer:компьютер] — Отображает значения, связанные с данным разделом реестра.

Раздел по умолчанию: HKLM\System\CurrentControlSet\Services\W32Time (корневой раздел службы времени).

subkey:раздел — отображает значения, связанные с подразделом раздел раздела по умолчанию.

computer:компьютер — запрашивает параметры реестра для компьютера компьютер.

w32tm /query [/computer:компьютер] {/source | /configuration | /peers | /status} [/verbose] — Отображает сведения о службе времени Windows на компьютере компьютер.

Если параметр не указан, по умолчанию используется локальный компьютер.

source — отобразить источник времени.

configuration — отобразить конфигурацию во время выполнения и происхождение параметра. В режиме подробного протоколирования отобразить также незаданные или неиспользованные параметры.

peers — отобразить список узлов и их состояние.

status — отобразить состояние службы времени Windows.

verbose — установить режим подробного протоколирования для вывода дополнительных сведений.

w32tm /debug {/disable | {/enable /file:имя /size:байт /entries:значение [/truncate]}} — Включает или отключает частный журнал службы времени Windows на локальном компьютере.

disable — отключить частный журнал.

enable — включить частный журнал.

file:имя — указать абсолютное имя файла.

size:байт — указать максимальный размер для циклического файла журнала.

entries:значение — список флагов, заданных номером и разделенных запятыми, указывающих тип сведений, которые должны заноситься в журнал. Допустимые номера: 0–300. Кроме одиночных номеров, допустимы диапазоны номеров, например 0–100,103,106. Значение 0–300 используется для занесения в журнал всех сведений.

truncate — усечь файл, если он существует.

Примеры использования команды w32tm

Как правило, служба времени Windows устанавливается с типом запуска Вручную и запускается по необходимости. Если служба времени остановлена, то управление ею с помощью команды w32tm невозможно. Для запуска, останова или проверки состояния службы можно использовать команду sc

sc query w32time — отобразить состояние службы времени Windows

sc \\192.168.0.8 query w32time — отобразить состояние службы времени на компьютере с адресом 192.168.0.8

sc start w32time — запустить службу времени Windows.

sc \\192.168.0.8 start w32time — запустить службу времени Windows на компьютере с адресом 192.168.0.8.

sc stop w32time — остановить службу времени Windows.

Кроме утилиты sc.exe можно использовать оснастку Службы (services.msc) панели управления или классические команды net stop и net start

net stop w32time
net start w32time

Для управления службой времени Windows требуются права администратора по отношению к локальной или удаленной системе.

w32tm /? — отобразить подсказку по использованию.

w32tm /query /configuration — отобразить конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:\\WIN10 — отобразить конфигурацию службы времени на компьютере с именем WIN10

Пример отображаемой информации:

[Настройка]

EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 10 (Локально)
MaxPollInterval: 15 (Локально)
MaxNegPhaseCorrection: 54000 (Локально)
MaxPosPhaseCorrection: 54000 (Локально)
MaxAllowedPhaseOffset: 1 (Локально)
FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 1 (Локально
) UpdateInterval: 360000 (Локально)
FileLogName: C:\User1\w32tmlog.log (Локально)
FileLogEntries: 0-300 (Локально)
FileLogSize: 100000 (Локально)

[TimeProviders]

NtpClient (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 604800 (Локально
) Type: NTP (Локально)
NtpServer: time.windows.com,0x9 (Локально)
VMICTimeProvider (Локально)
DllName: C:\WINDOWS\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
NtpServer (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 0 (Локально)
InputProvider: 0 (Локально)

В секции Настройка приведены текущие параметры службы времени Windows, в секции TimeProviders — настройки программного обеспечения как клиентской, так и серверной части.

Наиболее важные параметры службы времени:

Type — задает тип синхронизации. Он может принимать следующие значения:
&nbsp NoSync — не использовать синхронизацию с каким либо внешним источником времени.
&nbsp NTP синхронизация с внешними серверами времени, которые указаны в параметре NtpServer
&nbsp NT5DS — синхронизация выполняется согласно доменной иерархии;
&nbsp AllSync — синхронизация с использованием любых доступных источников.

Для компьютера, не входящего в домен, используется тип синхронизации NTP и NTPServer с именем time.windows.com. При необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять 16-ричное число, или флаг (например — 0x1) который определяет режим синхронизации с сервером времени.

Возможные значения режима:

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

Возможно использование комбинаций режимов:

NtpServer: time.windows.com,0x9 — клиентский запрос (0x8) с использованием заданного интервала (0x1) для синхронизации часов с сервером time.windows.com

SpecialPollInterval — значение в секундах интервала обновления времени. По умолчанию – 604800 секунд, что соответствует 7 суткам. Имеет смысл изменить этот интервал, например, на 1 час (3600) или хотя бы на 1 сутки (86400).

Очень важное значение имеют параметры MaxNegPhaseCorrection и MaxPosPhaseCorrection задающие максимальное отрицательное и положительное отклонение показаний часов, при котором может выполняться синхронизация. Значение по умолчанию — 54000 (в секундах), т.е. 15часов, что приводит к тому, что синхронизация времени не выполняется при расхождении показаний часов на величину, превышающую 15 часов. При попытке ресинхронизации времени командой w32tm /resynс показания часов не изменятся и будет выведено вообщение:

Синхронизация не выполнена, поскольку запрошенное изменение слишком велико.

Поэтому, для надежной синхронизации часов компьютера с сервером времени в Интернет, независимо от их текущих показаний, желательно увеличить абсолютное значение параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection, или вообще задать им максимальное значение для типа DWORD – 0xffffffff или 4294967295.

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

w32tm /monitor /computers:ru.pool.ntp.org — отобразить разницу во времени данного компьютера и сервера времени ru.pool.ntp.org.

w32tm /monitor /computers:ru.pool.ntp.org,time.windows.com,time.nist.gov — отобразить разницу во времени данного компьютера и нескольких серверов времени.

w32tm /resync – синхронизировать часы локального компьютера с используемым им сервером времени.

w32tm /resync /force – синхронизировать часы локального компьютера с используемым им сервером времени, игнорируя максимальное и минимальное отклонение показаний аппаратных часов и источника.

w32tm /stripchart /computer:pool.ntp.org /samples:3 /dataonly — сравнить показания часов локального компьютера с показаниями сервера времени pool.ntp.org. Будет выполнено 3 запроса и результаты будут представлены в текстовом виде.

Пример отображаемой информации:

Отслеживание pool.ntp.org [77.232.189.6:123].

Сбор образцов 3.
Текущее время — 14.02.2017 17:04:02.
17:04:02 d:+00.0154105s o:+00.0201873s
17:04:04 d:+00.0154035s o:+00.0257523s
17:04:06 d:+00.0154118s o:+00.0147256s

d: — задержка ответа, интервал времени между отправкой запроса и получением ответа от сервера NTP.

o: — смещение локальных часов относительно показаний сервера NTP (если положительное значение – часы отстают, отрицательное – спешат).

w32tm /stripchart /computer:pool.ntp.org — то же, что и в предыдущем примере, но проверка выполняется непрерывно, до тех пор пока не будет нажата комбинация клавиш CTRL+C или CTRL+Break

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update — изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org и применить сделанные изменения.

w32tm /query /configuration — отобразить текущую конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:win10 — отобразить текущую конфигурацию службы времени Windows на компьютере WIN10.

w32tm /query /source — отобразить сведения об источнике времени на локальном компьютере.

w32tm /query /source /computer:win10 — отобразить сведения об источнике времени на компьютере win10.

w32tm /unregister — удалить службу времени Windows из системы. Все параметры службы в реестре удаляются. Перед выполнением команды, служба времени должна быть остановлена, в противном случае команда завершится сообщением об ошибке доступа.

w32tm /register – установить службу времени Windows на данном компьютере. При этом все параметры службы в реестре создаются заново. Для изменения параметров заданных по умолчанию, можно использовать импорт из заранее подготовленного reg-файла, например:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config]
«MaxNegPhaseCorrection»=dword:ffffffff
«MaxPosPhaseCorrection»=dword:ffffffff

Компонент разделяемой службы OpenStack — служба синхронизации часов NTP

NTP Network Time Protocol — сетевой протокол времени.

(1) Клиент будет использовать случайный порт для отправки запроса синхронизации времени на сервер NTP (UDP: 123).
(2) Сервер NTP отправит время корректировки после получения запроса.
(3) После того, как клиент NTP получит сообщение от сервера NTP, он может внести изменения для завершения синхронизации времени.

Есть 2 способа синхронизации времени сервера:
Однократная синхронизация (ручная синхронизация), автоматическая синхронизация через службы.
Время однократной синхронизации: доменное имя или IP-адрес сервера времени ntpdate.
Просмотр IP-адреса доступен:http://www.ntp.org.cn/pool.php
ntpdate 120.25.108.11 (выберите Alibaba Cloud)

демон ntpd
команда синхронизации ntpdate
tzdata-update

Служба NTP относится к режиму архитектуры C / S (клиент / сервер). Лучше всего синхронизировать время с верхним сервером при установке локальных служб для предоставления служб синхронизации местного времени.

Напоминание: выключите firewalld и selinux

IP сервера: 192.168.146.51
IP-адрес клиента: 192.168.146.52

#yum -y install ntp
 Измените файл конфигурации ntp
#vim /etc/ntp.conf

ntp.conf описание
ограничить управление разрешениями NTP
Использование: параметр restrict [ip] mask [netmask]


Синхронизировать локальный NTPD с локальным аппаратным временем

server 127.127.1.0 
fudge 127.127.1.0 stratum 10

#systemctl start ntpd
#systemctl enable ntpd

Синхронизировать

Руководство по эксплуатации

Клиент:

Примечание. Служба поддержки клиентов должна остановить службу NTP.

автоматический

Клиент:

#yum -y install ntp
#vim /etc/ntp.conf

#systemctl restart ntpd
 Автоматическая синхронизация не вступит в силу немедленно, обратите внимание, что время, установленное вручную, не должно сильно отличаться от реального времени.

#ntpq -p Просмотр статуса службы


Сервер времени NTP — Русские Блоги

Вопрос времени:

  1. Из-за разных производителей время на часах также различается.
  2. В процессе длительного использования время на часах будет постепенно отклоняться от других значений.Это часто называют «дрейфом часов» или «дрейфом времени».

Среда спроса:

  1. Система больших данных — это чувствительная ко времени система вычислений и обработки. Синхронизация времени является основной гарантией правильной обработки больших данных и технической поддержки функционирования больших данных.
  2. Сервер компании также нуждается в синхронизации времени как в краеугольном камне.

решение:

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

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

Понимание концепции времени и часового пояса:

GMT、UTC、CST、DST、EDT

GMT:

Среднее время по Гринвичу (Greenwich Mean Time) относится к стандартному времени Королевской Гринвичской обсерватории, расположенной в пригороде Лондона, Англия, потому что исходный меридиан определяется как проходящая там долгота (время UTC и время по Гринвичу в основном одинаковы).

UTC:

Вся Земля разделена на двадцать четыре часовых пояса, и каждый часовой пояс имеет свое собственное местное время. В случае международной радиосвязи для унификации используется единое время, называемое всемирным координированным временем (UTC: Universal Координированное время).

CST:

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

GMT + 8 = UTC + 8 = CST

DST:

Летнее время (Daylight Saving Time) означает, что, когда солнце встает раньше летом, переводите время на один час вперед, чтобы перейти на летнее время (не используется в Китае).

EDT:

Восточное Летнее Время

Системное время и аппаратное время:

Аппаратное время:

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

Системное время:

Как правило, время RTC копируется при запуске сервера, а затем работает независимо, сохраняя настройки времени, часового пояса и перехода на летнее время.

Введение в службу NTP:

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

Чтобы NTP предоставлял точное время, он должен иметь источник точного времени.

Новое стандартное время созданоАтомные часыUTC (всемирное координированное время) для сигнала времени. Таким образом, источником времени для NTP для получения UTC могут быть атомные часы, обсерватории, спутники или из Интернета.

Иерархия NTP

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

Уровень 0 состоит из часов без временного дрейфа, таких как атомные часы. Такие часы нельзя использовать непосредственно в сети.

Время передается в соответствии с уровнем сервера NTP. Все серверы классифицируются на разные страты в зависимости от удаленности от внешнего источника UTC.

Сервер уровня Stratum N (N> 1) синхронизирует время с сервером уровня Stratum N-1. Часы Stratum N могут быть связаны друг с другом через сеть.

NTP поддерживает до 15 уровней страты. Stratum 16 считается несинхронизированным и не может использоваться.

Установите NTP на CentOS

NTP имеет два метода синхронизации часов в Linux, а именно прямую синхронизацию и плавную синхронизацию:

Прямая синхронизация 
Используйте команду ntpdate для синхронизации и прямого изменения времени. Если на сервере есть задача, запущенная в 12 часов, текущее время сервера — 13:00, но стандартное время — 11 часов, использование этой команды может привести к повторению задачи. Следовательно, использование синхронизации ntpdate может вызвать риски, поэтому эта команда в основном используется для синхронизации времени в первый раз при настройке службы синхронизации часов. К
Плавная синхронизация 
Использование ntpd для синхронизации часов может гарантировать, что время не проходит дважды, и смещение каждого времени синхронизации не будет слишком крутым и займет много времени. Из-за этого плавная синхронизация ntpd может занять много времени.

Стандартная служба синхронизации часов 
http://www.pool.ntp.org/zone/cnВеб-сайт включает в себя стандартную глобальную службу синхронизации времени, а также синхронизацию китайского времени. Соответствующий URL-адрес:cn.pool.ntp.org, Что также описывает предлагаемую запись в файле конфигурации ntp:

server 1.cn.pool.ntp.org 
server 3.asia.pool.ntp.org 
server 2.asia.pool.ntp.org

Наиболее известные серверы времени:

cn.ntp.org.cn # Китай

edu.ntp.org.cn #

ntp1.aliyun.com #
ntp2.aliyun.com #

cn.pool.ntp.org # Самый распространенный внутренний NTP-сервер

1. Конфигурация сервера NTP сначала убедитесь, что часовой пояс сервера правильный.

Timedatectl Просмотр определенного времени и часового пояса

Timedatectl list-timezones Просмотр всех часовых поясов

Timedatectl set-timezone Asia / Shanghai Установить часовой пояс

2 на стороне сервера ntp установить ntp

   yum -y install ntp

Отредактируйте файл конфигурации

   vi  /etc/ntp.conf

Среди них restrict используется для ограничения доступа клиентов к ntp.

 serverПараметрserver используется для установки внешнего сетевого сервера времени для синхронизации времени ntp

По умолчанию журнал NTP-сервера сохраняется в / var / log / messages. Если вы хотите использовать собственный файл журнала, вы также можете указать:

 logfile  /var/log/ntpd.log  

 chown ntp:ntp /var/log/ntpd.log    

Наконец запустите службу:

systemctl restart ntpd

systemctl enable ntpd

Клиент может синхронизировать время двумя способами.
Метод 1. Позвольте клиенту напрямую синхронизироваться с внешним сервером времени на брандмауэре, а затем установите его напрямую.
              yum -y install ntp
Конфигурация аналогична настройке сетевого ntp-сервера.
             systemctl enable ntpd
             systemctl start ntpd
В это время ntp будет работать как демон и автоматически синхронизировать время с NTP-сервером внешней сети в файле конфигурации без ручного вмешательства.
Метод 2. Синхронизация с NTP-сервером в интрасети. На данный момент вам нужно только установить программное обеспечение utpdate.
              yum -y install ntpdate
Но вам нужно добавить запланированную задачу. Разрешить серверу периодически синхронизироваться с NTP в интрасети.
vi / var / spool / cron / root (или crontab -e)
Синхронизация с сервером синхронизации времени и запись в BIOS в 0:10, 8:10 и 16:10 каждый день.
               10 0,8,16 * * *  /usr/sbin/ntpdate 10.3.5.5; /sbin/hwclock -w
Если синхронизация не нормальная, вы можете добавить выходной журнал 1.txt или прочитать системный журнал, чтобы увидеть системную почту / var / mail / root.
               0 */8  * * *  /usr/sbin/ntpdate 10.3.5.5 >>/tmp/1.txt; /sbin/hwclock -w
Вы также можете изменить SYNC_HWCLOCK = yes в cat / etc / sysconfig / ntpdate для автоматической синхронизации с аппаратным временем.

Как настроить NTP на Linux Mint?

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

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

Как установить NTP на Linux Mint

Итак, первый шаг — установить протокол сетевого времени, чтобы использовать его функции, набрав:

После этого вам нужно проверить, активны ли сейчас службы NTP, набрав:

Как видите, в настоящее время служба NTP недоступна, хотя вы ее уже установили. Таким образом, есть несколько способов активировать эту услугу, и для этого вы можете ввести.

$ sudo timedatectl set-ntp true

Видно, что после выполнения команды по-прежнему отображается ошибка «NTP не поддерживается». Теперь, что вы можете сделать в такой ситуации, это запустить команды start и enable, которые могут решить эту проблему и активировать службы NTP:

$ sudo systemctl start ntp
$ sudo systemctl enable ntp

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

$ sudo systemctl restart ntp

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

Как разрешить NTP через брандмауэр

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

$ sudo ufw status verbose

Брандмауэр в настоящее время неактивен, поэтому вы можете активировать его, набрав:

Теперь вам нужно разрешить службы NTP на брандмауэре, чтобы можно было установить связь между клиентом и сервером путем ввода.

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

Позже вы можете проверить состояние брандмауэра и NTP, набрав:

$ sudo ufw status
$ systemctl status ntp

Как проверить статистику NTP в Linux Mint

Теперь, чтобы проверить, синхронизированы ли ваши службы NTP с сервером или нет, вы можете сделать это, установив утилиту NTP stat:

$ sudo apt install ntpstat

После его установки вы можете проверить синхронизацию NTP, набрав:

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

Чтобы настроить сервер NTP, вам необходимо внести некоторые изменения в конфигурацию NTP, которая доступна в файле «/etc/ntp.conf», и вы можете сделать это с помощью любого редактора:

$ sudo nano /etc/ntp.conf

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

После этого вам нужно скопировать зону пула UK, а затем вставить их в файл ntp.conf, который вы уже открыли:

Теперь вам нужно перезапустить NTP, чтобы применить вновь сделанные настройки, снова набрав:

$ sudo systemctl restart ntp

После этого вам нужно проверить статус NTP, если все работает нормально или нет, набрав:

Заключение

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

служба времени Linux NTP — Код мира

ntp-сервер (IP-адрес 192.168.1.241)

Релиз CentOS 6.5 (окончательный)

Ссылка на конфигурацию:

https://blog.csdn.net/l_liangkk/article/details/80497992

https://linux.cn/article-10811-1.html

https://www.cnblogs.com/quchunhui/p/7658853.html

1. Установите ntp (для систем RHEL / CentOS используйте команду YUM для установки ntp)

# yum –y install ntp   (-y означает согласие на установку по умолчанию)

Во-вторых, настройте службу ntp

После установки программного пакета NTP обязательно выполните следующую конфигурацию в файле /etc/ntp.conf на стороне сервера.

1 ) Настройте главный сервер NTP

# vi /etc/ntp.conf

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

ограничить код по умолчанию nomodify notrap nopeer noquery       <== пользователи, которые запрещают IPv4

(распределение по умолчанию)

ограничить -6 код по умолчанию nomodify notrap nopeer noquery   <== запретить пользователям IPv6

(распределение по умолчанию)

ограничить 114.118.7.161   <== разрешить ntp.ntsc.ac.cn входить на этот NTP-сервер

Адрес NTP-сервера Национального центра службы времени

ограничить 120.25.115.20   <== разрешить ntp1.aliyun.com входить на этот NTP-сервер

Али Клауд

ограничить 202.112.10.60   <== разрешить s1a.time.edu.cn входить на этот NTP-сервер

Пекинский университет почты и телекоммуникаций 

ограничить 202.112.29.82  <== разрешить s2f.time.edu.cn входить на этот NTP-сервер

Региональный сетевой центр Тохоку 

restrict 127.0.0.1       <== Освободить источник этого компьютера (конфигурация по умолчанию)

restrict -6 :: 1                           (конфигурация по умолчанию)

 

ограничить маску 10.0.41.0 255.255.255.0 nomodify notrap

// Шлюз сегмента сети, на котором расположен клиентский кластер (Gateway), маска подсети (Genmask) Проверить шлюз: netstat -r

// Разрешить клиентам в подсети 10.0.41.0/24 доступ к этому серверу NTP

 

ограничить маску 192.168.1.0 255.255.255.0 nomodify notrap

(Конфигурация по умолчанию, просто раскомментируйте символ «#»)

restrict 192.168.1.241 nomodify notrap nopeer noquery // IP-адрес главного узла

# 2. Настройте хост ntp для получения источника времени:

Прокомментируйте исходную настройку [0 | 1 | 2] .centos.pool.ntp.org (просто добавьте комментарий «#»):

# server 0.asia.pool.ntp.org (конфигурация по умолчанию)

# server 1.asia.pool.ntp.org (конфигурация по умолчанию)

# server 2.asia.pool.ntp.org (конфигурация по умолчанию)

# server 3.asia.pool.ntp.org (конфигурация по умолчанию)

сервер 114.118.7.161 предпочитают   <== Этот хост является наиболее предпочтительным сервером

сервер 120.25.115.20

сервер 202.112.10.60

сервер 202.112.29.82

# 3. Источник данных внутренних часов по умолчанию:

Используется, когда нет внешнего NTP-сервера, используйте его для предоставления услуг пользователям локальной сети.

сервер 127.0.0.1     <== локальные часы

fudge 127.0.0.1 stratum 10    указывает, что сервер локальный и уровень 10

# 4. Файл анализа разницы во времени по умолчанию и ключи, которые не используются временно, и т. Д., Изменять не нужно:

файл операции / var / lib / ntp / operation

ключи / etc / ntp / keys

2 ) Настроить NTP-клиент

# vi /etc/ntp.conf

ограничить код по умолчанию nomodify notrap nopeer noquery

ограничить -6 код по умолчанию nomodify notrap nopeer noquery

ограничить 127.0.0.1

ограничить -6 :: 1

ограничить маску 192.168.1.0 255.255.255.0 nomodify notrap

restrict XXX.XXX.XXX.XXX nomodify notrap nopeer noquery // Текущий IP-адрес узла

сервер 192.168.1.241

fudge 127.0.0.1 stratum 10 // Не меняйте IP-адрес сервера клиенту, просто используйте это

файл операции / var / lib / ntp / operation

ключи / etc / ntp / keys

В-третьих, запустите службу ntp, посмотрите статус

(Перезапустите службу после обновления конфигурации)

# запуск / перезапуск службы ntpd

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

Проверить статус ntp сервера, подключен ли он к верхнему ntp

# ntpstat

синхронизируется с NTP-сервером (XXX.XXX.XXX.XXX) на страте X

   время точное с точностью до XXX мс

   опрос сервера каждые XXX сек.

Просмотр статуса синхронизации ntp сервера и статуса верхнего ntp

# ntpq -pn

 удаленный refid st t при достижении опроса джиттер смещения задержки задержки

================================================== =========

 ХХХХ ХХХХ ХХ Х ХХХХ ХХ ХХХ ХХХХ ХХХХ ХХХХ

В-четвертых, установите загрузку для запуска

# chkconfig ntpd on

 

Пять, описание параметра

=== ограничить формат параметра ===

ограничить [IP-адрес клиента] маска [IP-маска] [параметры]

 

«IP-адрес клиента» и «маска IP» указывают, какие диапазоны компьютеров в сети контролируются,

Если используется ключевое слово по умолчанию, это означает, что все компьютеры контролируются,

«Параметры» определяют конкретные ограничения. Общие параметры следующие:

◆ игнорировать: отказаться от подключения к серверу NTP

 

◆ nomodiy: клиент не может изменять временные параметры сервера, но клиент может выполнять калибровку сетевого времени через сервер.

 

◆ noquery: не предоставляет запрос времени клиента

 

◆ notrap: не предусмотрена функция удаленного входа в систему с прерыванием.Служба прерывания — это служба удаленного журнала времени.

 

◆ notrust: если клиент не аутентифицирован, источник клиента будет рассматриваться как ненадежная подсеть.

 

◆ nopeer: предоставлять услуги времени, но не в качестве партнера.

 

◆ kod: отправлять сообщения «Поцелуй смерти» небезопасным посетителям.

=== формат опций сервера ===

хост сервера [ключ n] [версия n] [предпочитают] [режим n] [minpoll n] [maxpoll n] [iburst]

 

Где host — это IP-адрес или доменное имя NTP-сервера верхнего уровня, и следующие пояснения к параметрам выглядят следующим образом:

 

◆ ключ: указывает, что все сообщения, отправленные на сервер, содержат информацию аутентификации, зашифрованную секретным ключом. N — 32-битное целое число, представляющее номер секретного ключа.

 

◆ версия: указывает номер версии сообщения, отправленного на сервер верхнего уровня, по умолчанию n равно 3 и может быть 1 или 2.

 

◆ Предпочитаю: если существует несколько вариантов сервера, использование сервера с этим параметром ограничено.

 

◆ режим: укажите значение поля режима сообщения с данными.

 

◆ minpoll: укажите минимальный интервал времени между запросами к серверу, равный 2 в степени n секунд, по умолчанию n равно 6, а диапазон — 4–14.

 

◆ maxpoll: Максимальный интервал времени между указанием и запросом сервера составляет 2 в степени n секунд, по умолчанию n равно 10, а диапазон — 4–14.

 

◆ iburst: при запросе начальной синхронизации 8 пакетов отправляются последовательно в пакетном режиме с интервалом времени 2 секунды.

=== Просмотреть метод шлюза ===

[Команда 1] маршрут -n 

 

[Команда 2] ip route show 

 

[Команда 3] netstat -r

=== страта ===

Страта устанавливается согласно уровню верхнего сервера (+1).

 

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

 

Как поставщик услуг времени в локальной сети, страта обычно устанавливается на 10

 

Серверы на уровне 0 используют физические устройства, такие как атомные часы и часы GPS, а уровень 1 и слой 0 подключены напрямую.

 

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

 

ntpd — это сервисный сервер для нижнего клиента и клиент для верхнего сервера.

ntpd решает, предоставлять ли услуги часов для других серверов или синхронизировать часы с других серверов в соответствии с параметрами файла конфигурации. Все конфигурации находятся в файле /etc/ntp.conf.

Примечание:

=== Обратите внимание, что брандмауэр блокирует порт ntp ===

Порт ntp-сервера по умолчанию — 123. Если брандмауэр включен, при некоторых операциях могут возникать ошибки, поэтому не забудьте выключить брандмауэр.

=== Синхронизированные аппаратные часы ===

По умолчанию служба ntp синхронизирует только системное время.

 

Если вы хотите, чтобы ntp синхронизировал аппаратное время одновременно, вы можете установить файл / etc / sysconfig / ntpd ,

В файле / etc / sysconfig / ntpd добавьте [ SYNC_HWCLOCK = yes ], чтобы синхронизировать аппаратное время с системным временем.

 

Разрешите BIOS синхронизироваться с системным временем или используйте команду hwclock -w .

 

Шесть, конфигурация сетевого оборудования

(Клиент)

1 ) Оборудование Huawei

ntp-service unicast-server 192.168.1.241 Установить адрес сервера времени

ntp-service sync-interval 300   Установите интервал синхронизации на 300 секунд.

ntp-service discard avg-interval 8 Установите средний временной интервал для отправки пакетов ntp равным 2 ^ 8 секунд

<Таким образом устанавливается временной интервал между маршрутизатором и контроллером переменного тока> (менее 4 с половиной минут)

ntp-service source-interface Vlanif 2  позволяет порту vlan2 отправлять ntp-пакеты

undo ntp-service server disable   включает функции ntp IPv4 и IPv6 NTP

(По умолчанию функция NTP беспроводного AC включена)

 

dis ntp-service status Просмотр сеанса службы ntp

dis ntp-service sessions просмотреть сеансы службы ntp

 

2 ) Оборудование h4C

sntp unicast-server 192.168.1.241 установить адрес сервера времени

sntp enable для  включения службы SNTP 

(По умолчанию служба SNTP отключена)

display sntp sessions     отображает информацию о сеансе IPv4, поддерживаемую службой SNTP

3 ) оборудование Ruijie

sntp server 192.168.1.241   Установите IP-адрес SNTP-сервера

sntp interval 300  устанавливает интервал тактовой синхронизации в секундах

sntp enable позволяет      SNTP синхронизировать часы один раз во времени

показать sntp

Seven, программное обеспечение для обслуживания другого времени chrony

Файл конфигурации /etc/chrony.conf

Связанная команда chronyc sources -v

 

 

 

 

Служба NTP остановлена ​​на машине с centos7.1 linux

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

Если вы находитесь на виртуальных машинах, то только служба на сервере виртуальных машин должна контролировать.

У меня есть машина CentOS 7.1 (не виртуальная машина) .,, В течение этого месяца он был отключен 47 минут + 57 минут + 1 день 7 минут + 2 минуты. В машинном отделении были проведены некоторые электрические работы. Посмотрите на последнюю перезагрузку при отключении -x:

[[email protected] ~]# last -x shutdown reboot 
reboot   system boot  3.10.0-229.el7.x Sun Jan 15 16:41 - 16:43 (8+00:02)   
shutdown system down  3.10.0-229.el7.x Sun Jan 15 16:38 - 16:41  (00:02)    
reboot   system boot  3.10.0-229.el7.x Sun Jan 15 16:16 - 16:38  (00:22)    
shutdown system down  3.10.0-229.el7.x Sat Jan 14 09:09 - 16:16 (1+07:07)   
reboot   system boot  3.10.0-229.el7.x Fri Jan 13 12:18 - 09:09  (20:50)    ** first ntpd panic_stop seen @ Jan 13 12:38:39 **
shutdown system down  3.10.0-229.el7.x Fri Jan 13 11:21 - 12:18  (00:57)    ** down for 57 mins **
reboot   system boot  3.10.0-229.el7.x Tue Nov 22 11:49 - 11:21 (51+23:31)  
shutdown system down  3.10.0-229.el7.x Tue Nov 22 11:02 - 11:49  (00:47)    

Первое сообщение panic_stop:

ntpd[733]: 0.0.0.0 c617 07 panic_stop -1027 s; set clock manually within 1000 s.

Было бы интересно посмотреть, какие часы установлены после каждой перезагрузки. Но только последнее сообщение можно увидеть. ‘dmesg | grep clock’:

[    0.810823] rtc_cmos 00:08: setting system clock to 2017-01-15 16:40:57 UTC (1484498457)

Таким образом, это выглядит примерно через 57 минут, когда, возможно, питание отключалось в течение ~30 минут ~ часы сместились (слишком быстро) на 17 минут.

Служба протокола сетевого времени (NTP)

(Части адаптированы со страницы базы знаний OIT.)

Служба протокола сетевого времени (NTP)

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

CS предоставляет несколько серверов NTP для использования устройствами, подключенными к сети кампуса.

На момент написания этой статьи предоставляемая нами служба NTP поддерживает версию 4 протокола сетевого времени и обеспечивает обратную совместимость с версиями 1, 2 и 3.

Некоторые клиенты TCP/IP могут использовать DHCP для получения текущего списка соответствующих серверов NTP. Служба DHCP, предоставляемая OIT, включает серверы NTP в предоставляемую информацию.

Многие клиенты TCP/IP не могут узнать текущий список серверов NTP через DHCP. (Некоторые клиенты не используют DHCP. И хотя многие используют DHCP, в настоящее время многие игнорируют список серверов NTP, предоставленный DHCP.) В этих случаях, если вы хотите использовать службу CS NTP, вы должны вручную настроить клиент TCP/IP. со списком соответствующих серверов NTP.Вот список рекомендуемых NTP-серверов для всего кампуса:

  • ntp1.cs.princeton.edu
  • ntp2.cs.princeton.edu

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

Могут быть случаи, когда работают меньше, чем все три из этих NTP-серверов. Мы периодически отключаем серверы (обычно по одному) на техническое обслуживание без публичного объявления. Мы полагаемся на тот факт, что надежный клиент NTP должен быть настроен для синхронизации с несколькими серверами NTP.(Если ваш NTP-клиент может быть настроен только с одним NTP-сервером, выберите любой из вышеперечисленных; ни один из трех не лучше других. Обратите внимание, что ваш клиент потеряет службу NTP всякий раз, когда указанный NTP-сервер не работает.)

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

Настройка службы NTP (Linux)

Обзор

Демон протокола сетевого времени (ntpd) — это демон операционной системы Linux.Это полная реализация NTP, которая используется для коррекции разницы во времени между локальной системой и сервером-источником часов. В отличие от ntpdate, который периодически обновляет время, ntpd корректирует время постоянно, без временных промежутков. Этот документ использует CentOS 7.5 в качестве примера для описания того, как установить и настроить ntpd.

Примечания

  • Некоторые операционные системы используют chrony в качестве службы NTP по умолчанию. Убедитесь, что ntpd запущен и настроен на автоматический запуск при запуске.
  • Запустите команду systemctl is-active ntpd.service , чтобы проверить, запущен ли ntpd.
  • Запустите команду systemctl is-enabled ntpd.service , чтобы узнать, настроен ли ntpd на автоматический запуск при запуске.
  • Коммуникационный порт службы NTP — UDP 123. Перед настройкой службы NTP убедитесь, что вы открыли порт в Интернет.
    Если порт не открыт, обратитесь к разделу Добавление правил группы безопасности, чтобы открыть его для Интернета.

Инструкции

Установка ntpd

Выполните следующую команду, чтобы проверить, был ли установлен ntpd.

  об/мин -qa | грэп нтп
  
  • Если возвращается следующий результат, ntpd установлен.
  • Если ntpd не установлен, выполните команду yum install ntp , чтобы установить его.
      yum -y установить ntp
      

ntpd по умолчанию использует режим клиента.

Настройка NTP

  1. Выполните следующую команду, чтобы открыть файл конфигурации службы NTP.

      ви /etc/ntp.conf
      
  2. Нажмите i , чтобы перейти в режим редактирования и найти конфигурации сервера . Измените значение сервера на исходный сервер часов NTP, который вы хотите использовать (например, time1.tencentyun.com ), и удалите ненужные значения, как показано ниже:

  3. Нажмите Esc и введите :wq , чтобы сохранить и закрыть файл.

Запуск ntpd

Выполните следующую команду, чтобы перезапустить службу ntpd.

  перезапуск systemctl ntpd.service
  

Проверка состояния ntpd

Выполните следующие команды, чтобы при необходимости проверить состояние ntpd.

  • Выполните следующую команду, чтобы проверить, нормально ли NTP прослушивает сервисный порт UDP 123.
      netstat -nupl
      

Если возвращается следующий результат, прослушивание нормальное.

  • Выполните следующую команду, чтобы проверить нормальное ли состояние ntpd.
      статус службы ntpd
      

Если возвращается следующий результат, состояние ntpd нормальное.

  • Выполните следующую команду, чтобы получить более подробную информацию о службе NTP.
      нтпк -п
      

Будет возвращен следующий результат:

  • удаленный : имя сервера NTP, который отвечает на этот запрос.
  • refid : сервер NTP на одну страту выше, с которым синхронизируется сервер NTP на этой страте.
  • st : слой удаленного сервера. Слой сервера может быть установлен от 1 до 16 от высокого к низкому. Чтобы уменьшить нагрузку и перегрузку сети, вам следует избегать прямого подключения к серверу уровня 1.
  • когда : количество секунд, прошедших с момента последнего успешного запроса.
  • poll : интервал синхронизации (в секундах) между локальным и удаленным серверами. В начале значение опроса будет меньше, что указывает на более высокую частоту синхронизации, чтобы можно было как можно быстрее настроить время на правильный временной диапазон.В дальнейшем значение poll будет постепенно увеличиваться, и соответственно будет уменьшаться частота синхронизации.
  • достигать : восьмеричное значение, используемое для проверки возможности подключения к серверу. Его значение увеличивается каждый раз, когда сервер успешно подключается.
  • задержка : время приема и отправки запроса на синхронизацию с локального компьютера на NTP-сервер.
  • смещение : разница во времени в миллисекундах (мс) между хостом и источником времени через NTP.Чем ближе смещение к 0, тем ближе время хоста и NTP-сервера.
  • джиттер : значение, используемое для статистики, которая записывает распределение смещений по определенному количеству последовательных соединений. Чем меньше его абсолютное значение, тем точнее время хоста.

Настройка автоматического запуска ntpd при запуске

  1. Выполните следующую команду для автоматического запуска ntpd при запуске.

      systemctl включить ntpd.оказание услуг
      
  2. Выполните следующую команду, чтобы проверить, настроен ли запуск chrony при запуске.

      systemctl включен chronyd.service
      

Если chrony настроен на запуск при запуске, выполните следующую команду, чтобы удалить chrony из списка автозапуска. Хронология
несовместима с ntpd, что может привести к сбою запуска ntpd.

  systemctl отключить chronyd.service
  

Повышение безопасности ntpd

Последовательно выполните следующие команды, чтобы повысить безопасность файла /etc/ntp.conf файл конфигурации.

  интерфейс игнорирует подстановочный знак
  
  интерфейс прослушивания eth0
  

Как создать автономный сервер NTP с помощью Windows

Я должен управлять часами, а не подчиняться им». – Голда Меир

Вы, наверное, уже знаете, как важно установить точное время на всех клиентах и ​​серверах. Когда компьютерные часы расходятся, случаются очень плохие вещи. Например:

  • Пользователи не могут войти в домен
  • Приложения перезаписывают новые данные более старыми версиями
  • Серверы не синхронизируют данные друг с другом, вызывая конфликты версий
  • Финансовые транзакции становятся предметом спора
  • Несоблюдение нормативных требований

К счастью, Windows учла это.Служба протокола сетевого времени (NTP) была встроена в Windows, начиная с Windows XP и Windows Server 2003, и большинство реализаций Unix и Linux поддерживали NTP с момента их создания.

Синхронизация времени клиента и сервера Windows

К сожалению, большинство реализаций Windows не используют NTP, так как во многих случаях он отключен. Одной из таких ситуаций является сервер, не присоединенный к домену. Неприсоединенная система может работать и как NTP-сервер, и как клиент, но по умолчанию она не работает ни с тем, ни с другим.

Я уже писал о настройке автономного компьютера с Windows для работы в качестве NTP-клиента. Другой распространенной потребностью является создание автономного NTP-сервера, который может обеспечить синхронизацию времени для неподключенных компьютеров Windows, а также других операционных систем, таких как Linux и Mac OSX.

Настройка Windows в качестве автономного сервера NTP

Windows реализует службу W32Time как клиент и сервер NTP. Служба отключена по умолчанию. Таким образом, для настройки системы в качестве NTP-сервера требуется как включить службу W32Time, так и настроить ее как сервер.Процесс очень прост.

Сначала используйте консоль служб, чтобы найти службу времени Windows. Скорее всего, оно будет отключено, как показано на Рис. 1.

Рис. 1. Время Windows еще не включено и не запущено.

Вам необходимо запустить службу и настроить ее для автоматического запуска, как показано на рисунке 2.

Рисунок 2. Служба W32Time запущена и настроена для автоматического запуска.

Для включения службы сервера NTP требуется быстрое изменение реестра.Откройте Regedit и перейдите к HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer и измените Enabled с 0 на 1. Это показано на рисунке 3.

Рисунок 3. Изменение значения NtpServer Enabled на 1.

Последний шаг — обновить текущую конфигурацию службы времени Windows. Для этого откройте командную строку и введите команду w32tm /config /update . Затем вы можете убедиться, что служба NTP-сервера включена, с помощью команды w32tm /query /configuration .Оба они показаны на рисунке 4.

Рисунок 4. Вывод команды w32tm.

Обратите внимание, что в разделе VMICTimeProvider для параметра Enabled установлено значение 1. Это флаг, который включает сервер NTP в Windows. Поскольку это рабочая конфигурация, Windows теперь работает как NTP-сервер.

Enjoy,

Mike Danseglio -CISSP / CEH
Техническое обучение интерфейсу – Технический директор и инструктор

Подпишитесь на ленту сообщений этого автора через RSS Сеть

— NTP | Убунту

NTP — это протокол TCP/IP для синхронизации времени по сети.В основном клиент запрашивает текущее время с сервера и использует его для установки собственных часов.

За этим простым описанием скрывается много сложностей — существуют уровни NTP-серверов, где NTP-серверы первого уровня подключены к атомным часам, а серверы второго и третьего уровней распределяют нагрузку по фактической обработке запросов по Интернету. Кроме того, клиентское программное обеспечение намного сложнее, чем вы думаете, — оно должно учитывать задержки связи и корректировать время таким образом, чтобы не нарушать работу всех других процессов, выполняемых на сервере.Но, к счастью, вся эта сложность скрыта от вас!

Ubuntu по умолчанию использует timedatectl / timesyncd для синхронизации времени, и пользователи могут дополнительно использовать chrony для обслуживания протокола сетевого времени.

Синхронизация системного времени

Начиная с Ubuntu 16.04 timedatectl / timesyncd (которые являются частью systemd) заменяют большую часть ntpdate / ntp .

timesyncd доступен по умолчанию и заменяет не только ntpdate, но и клиентскую часть chrony (ранее ntpd).Таким образом, в дополнение к одноразовому действию, которое ntpdate обеспечивает при загрузке и сетевой активации, теперь timesyncd по умолчанию регулярно проверяет и синхронизирует ваше локальное время. Он также хранит обновления времени локально, чтобы после перезагрузки монотонно продвигаться вперед, если это применимо.

Если chrony установлен, timedatectl делает шаг назад, чтобы позволить chrony вести учет времени. Это должно гарантировать, что никакие две службы синхронизации времени не будут конфликтовать. Хотя это больше не рекомендуется использовать, это также относится к устанавливаемому ntpd, чтобы сохранить любое старое поведение/конфигурацию, которое у вас было при обновлении.Но это также означает, что при обновлении с предыдущего выпуска ntp/ntpdate все еще может быть установлен и, следовательно, отключает новые службы на основе systemd.

ntpdate считается устаревшим в пользу timedatectl (или chrony) и поэтому больше не устанавливается по умолчанию. timesyncd, как правило, правильно синхронизирует ваше время, а chrony поможет в более сложных случаях. Но если у вас был один из нескольких известных особых вариантов использования ntpdate, рассмотрите следующее:

  • Если вам требуется одноразовая синхронизация, используйте: chronyd -q

  • Если вам требуется одноразовая проверка времени без установки времени, используйте: chronyd -Q

Настройка timedatectl и timesyncd

Текущее состояние времени и настройки времени через timedatectl и timesyncd можно проверить с помощью timedatectl status .

  $ статус timedatectl
                       Местное время: Пт 2018-02-23 08:47:13 UTC
                   Всемирное время: Пт 2018-02-23 08:47:13 UTC
                         Время RTC: Пт 2018-02-23 08:47:13
                        Часовой пояс: Ec/UTC (UTC, +0000)
        Синхронизация системных часов: да
 systemd-timesyncd.service активен: да
                  RTC в местной ТЗ: нет
  

Если хрони запущен, он автоматически переключится на:

  [...]
 systemd-timesyncd.служба активна: нет
  

Через timedatectl администратор может управлять часовым поясом, тем, как системные часы должны быть связаны с hwclock, и должна ли быть включена постоянная синхронизация или нет. См. man timedatectl для более подробной информации.

Сам

timesyncd по-прежнему является обычным сервисом, поэтому вы можете более подробно проверить его статус через.

  $ статус systemctl systemd-timesyncd
  systemd-timesyncd.service — Синхронизация сетевого времени
   Загружено: загружено (/lib/systemd/system/systemd-timesyncd.оказание услуг; включено; предустановка поставщика: включена)
   Активно: активно (работает) с пт 23 февраля 2018 г. 08:55:46 UTC; 10 секунд назад
     Документы: man:systemd-timesyncd.service(8)
 Основной PID: 3744 (systemd-timesyn)
   Статус: «Синхронизировано с сервером времени 91.189.89.198:123 (ntp.ubuntu.com)».
    Заданий: 2 (лимит: 4915)
   Группа CG: /system.slice/systemd-timesyncd.service
           |-3744 /lib/systemd/systemd-timesyncd

23 февраля, 08:55:46 bionic-test systemd[1]: Запуск синхронизации сетевого времени...
23 февраля, 08:55:46 bionic-test systemd[1]: запущена синхронизация сетевого времени.23 февраля, 08:55:46 bionic-test systemd-timesyncd[3744]: синхронизировано с сервером времени 91.189.89.198:123 (ntp.ubuntu.com).
  

Сервер имен для получения времени для timedatectl и timesyncd можно указать в /etc/systemd/timesyncd.conf , а дополнительные файлы конфигурации можно сохранить в /etc/systemd/timesyncd.conf.d/ . Записи для NTP= и FallbackNTP= представляют собой списки, разделенные пробелами. См. man timesyncd.conf для получения дополнительной информации.

Обслуживание сетевого протокола времени

Если в дополнение к синхронизации вашей системы вы также хотите обслуживать информацию NTP, вам нужен сервер NTP.Есть несколько вариантов с chrony, ntpd и open-ntp. Рекомендуемое решение — хрония.

хрон(д)

Демон NTP chronyd вычисляет дрейф и смещение ваших системных часов и постоянно корректирует их, чтобы не было больших исправлений, которые могли бы привести, например, к несогласованности журналов. Стоимость — небольшая вычислительная мощность и память, но для современного сервера это обычно ничтожно мало.

Установка

Чтобы установить хрони, введите в терминале:

  sudo apt установить хрони
  

Это предоставит два двоичных файла:

Конфигурация Chronyd

Редактировать /etc/хрони/хрони.conf для добавления/удаления строк сервера. По умолчанию настроены эти серверы:

  # Используйте серверы из проекта пула NTP. Одобрено техническим советом Ubuntu
# от 08 февраля 2011 г. (LP: #104525). См. http://www.pool.ntp.org/join.html для
# больше информации.
пул 0.ubuntu.pool.ntp.org iburst
пул 1.ubuntu.pool.ntp.org iburst
пул 2.ubuntu.pool.ntp.org iburst
пул 3.ubuntu.pool.ntp.org iburst
  

См. man chrony.conf для получения более подробной информации о параметрах конфигурации.После изменения любого файла конфигурации вам необходимо перезапустить хрони:

  sudo systemctl перезапустить chrony.service
  

Из пула 2.ubuntu.pool.ntp.org , а также ntp.ubuntu.com также поддерживают ipv6 при необходимости. Если вам нужно принудительно использовать ipv6, также есть ipv6.ntp.ubuntu.com , который не настроен по умолчанию.

Обслуживание протокола NTP

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

Чтобы включить обслуживание протокола NTP, вам нужно как минимум установить правило разрешить , которое контролирует, каким клиентам/сетям вы хотите, чтобы хрони обслуживал NTP.

Например,

.
  разрешить 1.2.3.4
  

См. раздел «Сервер NTP» на странице руководства для получения дополнительной информации о том, как вы можете контролировать и ограничивать доступ к вашему серверу NTP.

Посмотреть статус

Используйте chronyc для просмотра статуса демона chrony.- chilipepper.canonical.com 2 8 377 21 -1106us[-1106us] +/- 27мс хронический источникстатистика 210 Количество источников = 20 Имя/IP-адрес NP NR Полоса обзора Частота Перекос частоты Смещение Стандартное отклонение ================================================== ============================= gamma.rueckgr.at 25 15 32m -0,007 0,142 -878us 106us 2b.ncomputers.org 26 16 35 м -0,132 0,283 -1169us 256us www.kashra.com 25 15 32м -0,092 0.259 +3426us 195us stratum2-4.NTP.TechFak.U> 25 14 32m -0,018 0,130 -2056us 96us zepto.mcl.gg 13 11 21m +0,148 0,196 -683us 66us Mirrorhost.pw 6 5 645 +0,117 0,445 -591us 19us atto.mcl.gg 21 13 25m -0,069 0,199 -904us 103us static.140.107.46.78.cli> 25 18 34 м -0,005 0,094 -1526 мкс 78 мкс 4,53,160,75 25 10 32 м +0,412 0,110 -11 мс 84 мкс 37.44,185,42 24 12 30 м -0,983 0,173 -3718 мкс 122 мкс bagnikita.com 17 7 31м -0,132 0,217 +3527us 139us europa.ellipse.net 26 15 35м +0,038 0,553 -473us 424us tethys.hot-chilli.net 25 11 32m -0,094 0,110 -864us 88us 66-232-97-8.static.hvvc.> 20 11 35м -0,116 0,165 +1561us 109us 85.199.214.102 26 11 35м -0.054 0.390 +129us 343us 46-243-26-34.tangos.nl 25 16 32м +0.129 0,297 -307 мкс 198 мкс pugot.canonical.com 25 14 34m -0,271 0,176 -143us 135us alphyn.canonical.com 17 11 1100 -0,087 0,360 -1749us 114us golem.canonical.com 23 12 30 м +0,057 0,370 -988us 229us chilipepper.canonical.com 25 18 34m -0,084 0,224 -1116us 169us

Некоторые команды chronyc являются привилегированными и не могут выполняться по сети без явного разрешения. См. раздел Доступ к управлению и мониторингу в man chrony.conf для более подробной информации. Локальный администратор может использовать sudo как обычно, так как это предоставит ему доступ к сокету локального администратора /var/run/chrony/chronyd.sock .

Поддержка PPS

Chrony изначально поддерживает различные типы PPS. Он может использовать PPS API ядра, а также аппаратные часы PTP. Большинство общих приемников GPS можно использовать через GPSD. Доступ к последнему (и потенциально большему количеству) можно получить через SHM или через сокет (рекомендуется). Все вышеперечисленное можно использовать для дополнения хронии дополнительными высококачественными источниками времени для повышения точности, джиттера, дрейфа, долгосрочной или краткосрочной точности (обычно каждый тип часов хорош в одном из них, но неидеален в другие).Дополнительные сведения о настройке см. на некоторых внешних ресурсах PPS/GPSD, перечисленных ниже.

Примечание: в выпуске 20.04 была ошибка, из-за которой, пока она не будет исправлена, вы можете захотеть добавить этот контент в свой /etc/apparmor.d/local/usr.sbin.gpsd .

Пример конфигурации GPSD для подачи Chrony

Для установки нужно
$ sudo apt install gpsd chrony

Но вы захотите протестировать/отладить свои настройки и особенно прием GPS, поэтому также установите
$ sudo apt install pps-tools gpsd-clients

Устройства GPS

обычно взаимодействуют через последовательные интерфейсы, однако в наши дни наиболее распространенным типом являются устройства USB GPS, которые имеют последовательный преобразователь после USB.Если вы хотите использовать это для PPS, имейте в виду, что большинство устройств не передает сигнал PPS через USB. Подробности смотрите в списке оборудования GPSD. Приведенные ниже примеры были выполнены с помощью Navisys GR701-W.

При подключении такого устройства (или во время загрузки) dmesg должен сообщить о каком-то последовательном соединении, например:

  [ 52.442199] usb 1-1.1: новое полноскоростное USB-устройство номер 3 с использованием xhci_hcd
[ 52.546639] usb 1-1.1: найдено новое USB-устройство, idVendor = 067b, idProduct = 2303, bcdDevice = 4.00
[ 52.546654] usb 1-1.1: новые строки USB-устройства: производитель = 1, продукт = 2, серийный номер = 0
[ 52.546665] usb 1-1.1: Продукт: Контроллер USB-Serial D
[ 52.546675] usb 1-1.1: Производитель: Prolific Technology Inc.
[ 52.602103] usbcore: зарегистрирован новый драйвер интерфейса usbserial_generic
[ 52.602244] usbserial: поддержка USB Serial зарегистрирована для общего
[ 52.609471] usbcore: зарегистрирован новый драйвер интерфейса pl2303
[ 52.609503] usbserial: поддержка USB Serial зарегистрирована для pl2303
[ 52.609564] pl2303 1-1.1:1.0: Обнаружен преобразователь pl2303
[ 52.618366] usb 1-1.1: преобразователь pl2303 теперь подключен к ttyUSB0
  

Выше мы видим, что он появился как ttyUSB0 . Чтобы позже chrony принимал информацию о времени, мы должны настроить его в /etc/chrony/chrony.conf (пожалуйста, замените USB0 на то, что применимо к вашей настройке):

  refclock SHM 0 refid Точность GPS 1e-1 смещение 0,9999 задержка 0,2
refclock SOCK /var/run/chrony.ttyUSB0.sock рефид PPS
  

Затем перезапустите chrony , чтобы сделать сокет доступным и ожидающим.
sudo systemctl перезапустить хрони

Далее нужно указать gpsd какое устройство управлять, поэтому в /etc/default/gpsd прописываем:
DEVICES="/dev/ttyUSB0"

Кроме того, вариант использования по умолчанию для gpsd хорошо подходит для отслеживания положения GPS . Поэтому он обычно не потребляет никакого процессора, поскольку он не запускает службу, а ожидает клиентов на сокете .Кроме того, клиент сообщит gpsd , что он запрашивает, а gpsd сделает только это.
Для случая использования gpsd в качестве PPS-обеспечивающего-демона вы хотите установить параметр:

  • немедленно запуститься даже без подключения клиента, это можно установить в GPSD_OPTIONS из /etc/default/gpsd :
  • включить саму службу и не ждать, пока клиент доберется до сокета в будущем:
    • sudo systemctl включить /lib/systemd/system/gpsd.служба

Перезапуск gpsd теперь инициализирует PPS из GPS и в dmesg вы увидите

  pps_ldisc: зарегистрирована линейная дисциплина PPS
 pps pps0: новый источник PPS usbserial0
 pps pps0: добавлен источник "/dev/ttyUSB0"
  

Если у вас есть несколько PPS, инструмент ppsfind может быть полезен для определения того, какой PPS принадлежит какому GPS. Вы можете проверить это с помощью:

  $ sudo ppsfind /dev/ttyUSB0
pps0: имя=usbserial0 путь=/dev/ttyUSB0
  

Чтобы пройти дальше, вам нужен GPS, чтобы получить замок.
Такие инструменты, как cgps или gpsmon , должны сообщать об исправлении 3D для данных, которые являются хорошими.
Тогда вам нужно проверить, действительно ли данные PPS сообщаются об этом с помощью ppstest

  $ cgps
...
│ Статус: 3D FIX (7 сек)...
  

Затем можно убедиться, что устройство pps действительно отправляет данные PPS, для этого запустите ppstest :

.
  $ sudo ppstest /dev/pps0
пробуем источник PPS "/dev/pps0"
найден источник PPS "/dev/pps0"
хорошо, найден 1 источник (источники), теперь начните получать данные...
источник 0 - утверждение 1588140739.099526246, последовательность: 69 - очистка 1588140739.999663721, последовательность: 70
источник 0 - утверждение 1588140740.099661485, последовательность: 70 - очистка 1588140739.999663721, последовательность: 70
источник 0 - утверждение 1588140740.099661485, последовательность: 70 - очистка 1588140740.999786664, последовательность: 71
источник 0 - утверждение 1588140741.099792447, последовательность: 71 - очистка 1588140740.999786664, последовательность: 71
  

Хорошо, gpsd теперь работает, прием GPS нашел исправление, и это передается в chrony .
Теперь давайте проверим это с точки зрения хрони .

Первоначально (например, до запуска gpsd или до его блокировки) это будут новые и «ненадежные» источники, отмеченные знаком «?». Если ваши устройства остаются в «?» состояние и не покинет его даже через некоторое время, тогда gpsd , похоже, не передает никаких данных на chrony , и вам нужно отладить, почему.

  хронические источники
210 Количество источников = 10
Имя MS/IP-адрес Stratum Poll Reach LastRx Последняя выборка
================================================== ==============================
#? GPS 0 4 0 - +0 нс[ +0 нс] +/- 0 нс
#? PPS 0 4 0 - +0 нс[ +0 нс] +/- 0 нс
  

Со временем хрони классифицирует их как хорошие или плохие.* перец чили.canonical.com 2 6 377 50 -353us[ -300us] +/- 44мс

И если вам интересно, хороши ли ваши данные GPS на основе shm, вы также можете проверить это.
Во-первых, хрони не только сообщит вам, классифицировала ли она ее как хорошую или плохую. Через sourcestats вы также можете проверить детали

  хроническийc> sourcestats
210 Количество источников = 10
Имя/IP-адрес NP NR Полоса обзора Частота Перекос частоты Смещение Std Dev
================================================= =============================
GPS 20 9 302 +1.993 11.501 -868мс 1208us
ППС 6 3 78 +0,324 5,009 +3365 нс 41 мкс
golem.canonical.com 15 10 783 +0,859 0,509 -750us 108us
  

Вы также можете отслеживать необработанные данные, которые gpsd или другие refclocks, совместимые с ntpd, отправляют через общую память, используя ntpshmmon :

  $ судо нтпшммон -о
нтпшмон: версия 3.20
# Название Offset Clock Real L Prc
образец НТП1 0.000223854 1588265805.000223854 1588265805.000000000 0 -10
образец NTP0 0.125691783 1588265805.125999851 1588265805.000308068 0 -20
образец NTP1 0,000349341 1588265806,000349341 1588265806,000000000 0 -10
образец NTP0 0.130326636 1588265806.130634945 1588265806.000308309 0 -20
образец NTP1 0,000485216 1588265807,000485216 1588265807,000000000 0 -10
  

Поддержка НТС

В Chrony 4.0 (впервые появилась в Ubuntu 21.04 Hirsute) добавлена ​​поддержка Network Time Security «NTS».

Сервер НТС

Чтобы настроить сервер с NTS, вам потребуются сертификаты, чтобы сервер мог аутентифицировать себя и на основе этого разрешить шифрование и проверку трафика NTP.

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

Пример записи будет выглядеть так:

  ntsservercert /etc/chrony/fullchain.пем
ntsserverkey /etc/chrony/privkey.pem
  

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

$ sudo chown _chrony:_chrony /etc/chrony/*.pem

Затем перезапустите chrony systemctl перезапустите chrony , и он будет готов предоставить службу времени на основе NTS.

Работающий сервер хрони имеет различную статистику, также учитывается количество установленных (или разорванных) NTS-соединений:

  $ sudo chronyc -N serverstats
Получено пакетов NTP: 213
Пакеты NTP отброшены: 0
Получено командных пакетов: 117
Отброшено командных пакетов: 0
Записи журнала клиента удалены: 0
Принятые соединения NTS-KE: 2
Соединения NTS-KE разорваны: 0
Аутентифицированные пакеты NTP: 197
  

Существует также статистика для каждого клиента, которую можно включить с помощью параметра -p команды клиентов .

  $ sudo chronyc -N клиентов -k
Имя хоста NTP Drop Int IntL Last NTS-KE Drop Int Last
================================================== ==============================
10.172.196.173 197 0 10 - 595 2 0 5 48ч
...
  

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

Примечание о размещении сертификата:

Chrony по умолчанию изолирован через apparmor и, кроме того, использует все функции Protect* systemd.Из-за этого не так много путей, по которым хрони может получить доступ к сертификатам. Но /etc/chrony/* разрешен только для чтения, и этого достаточно.
Проверьте /etc/apparmor.d/usr.sbin.chronyd , если вам нужны другие пути или разрешить пользовательские пути в /etc/apparmor.d/local/usr.sbin.chronyd .

Клиент НТС

Клиенту необходимо указать server как обычно (директивы pool не работают с НТС). Как обычно, после параметров адреса сервера можно указать nts .

Пример:

сервер iburst nts

Можно проверить данные аутентификации соединений, установленных клиентом, например

  $ sudo chronyc -N данные аутентификации
Имя/IP-адрес Режим KeyID Тип KLen Last Atmp NAK Cook CLen
================================================== =======================
 NTS 1 15 256 48h 0 0 8 100
  

Опять же, на справочной странице описаны дополнительные параметры.Распространенные варианты использования — указание явного доверенного сертификата.

Плохие часы и безопасная синхронизация времени — проблема «Курица и яйцо»:

Существует одна проблема с системами, у которых очень плохие часы. NTS основан на TLS, и для этого нужны несколько правильные часы. Из-за этого синхронизация на основе NTS может завершиться ошибкой. На оборудовании, затронутом этим, можно рассмотреть возможность использования параметра nocerttimecheck , который позволяет установить количество раз, когда время может быть синхронизировано без проверки проверки и истечения срока действия.

Ссылки

Управление службой NTP

Network Time Protocol (NTP) — одна из самых важных, но самых простых служб для настраивать и управлять с помощью Puppet, чтобы правильно синхронизировать время на всех ваших узлах. Следуйте этому руководству, чтобы начать управлять службой NTP с помощью Puppet. Модуль нтп .

Прежде чем начать

Убедитесь, что вы уже установленный Puppet и хотя бы один агент *nix.Также войдите как root или администратор на ваших узлах.

Часы на ваших серверах изначально неточны. Им нужно синхронизируйтесь с чем-то, чтобы они знали, какое сейчас подходящее время. NTP — это протокол который синхронизирует часы компьютеров по сети. NTP использует Coordinated Universal Время (UTC) для синхронизации часов компьютера с точностью до миллисекунды.

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

С помощью модуля Puppet NTP вы можете:

  • Убедитесь, что время правильно синхронизировано на всех серверах в вашем инфраструктура.

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

  • Быстро разверните обновления, если вам нужно изменить или указать собственный внутренний пул серверов NTP.

В этом руководстве описаны следующие шаги по настройке NTP. управление конфигурацией:

  • Установка модуля puppetlabs-ntp .

  • Добавление классов к узлу по умолчанию в вашем основном манифест.

  • Просмотр состояния службы NTP.

  • Использование нескольких узлов в основном манифесте для настройки NTP для разные разрешения.

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

  1. Первый шаг — установка puppetlabs-ntp . модуль.Модуль puppetlabs-ntp является частью поддерживается программа модулей; эти модули поддерживаются, тестируются и обслуживаются Puppet. Дополнительные сведения о puppetlabs-ntp см. в файле README. К установите его, запустите:
      кукольный модуль установить puppetlabs-ntp  

    Результат аналогичен это:

      Подготовка к установке в /etc/puppetlabs/puppet/modules...
        Примечание: Загрузка с http://forgeapi.puppetlabs.com...
        Примечание: установка -- не прерывать...
        /etc/puppetlabs/puppet/environments/production/modules
        └── puppetlabs-ntp (v3.1.2)  
    Это Это! Вы только что установили puppetlabs-ntp модуль.
  2. Следующим шагом будет добавление классов из модуля NTP в основной манифест.

    Модуль NTP содержит несколько классов.Классы — это именованные фрагменты кода Puppet, которые являются основным средством, с помощью которого Puppet настраивает узлы. Модуль NTP содержит следующие классы:

    • ntp : основной класс, который включает в себя все остальные классы NTP, включая классы в этом списке.

    • ntp::install : обрабатывает установочные пакеты.

    • ntp::config : обрабатывает файл конфигурации.

    • ntp::service : обрабатывает службу.

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

    1. Из командной строки на основном сервере перейдите в каталог, содержащий основной манифест:
        cd /etc/puppetlabs/code/environments/production/manifests  
    2. Используйте текстовый редактор, чтобы открыть site.pp .
    3. Добавьте следующий код Puppet на сайт .стр :
        узел по умолчанию {
        класс { 'НТП':
              серверы => ['nist-time-server.eoni.com','nist1-lv.ustiming.org','ntp-nist.ldsbc.edu']
        }
      }
        

      Примечание. Если ваш файл site.pp в нем уже есть узел по умолчанию, добавьте только строки class и server к этому.

    4. В агенте запустите запуск Puppet:

      Теперь ваш узел, управляемый Puppet, настроен на использование NTP.

  3. Чтобы проверить, запущена ли служба NTP, запустите:
      служба ресурсов марионетки ntpd  

    В операционных системах Ubuntu служба имеет номер ntp . вместо ntpd .

    Результат выглядит так:
      служба { 'ntpd':
      гарантировать => 'работает',
     включить => «истина»,
    }  
  4. Если вы хотите настроить службу NTP так, чтобы она работала по-разному на разных узлах, можно настроить NTP на узлах, отличных от по умолчанию в сайт .файл pp .

    На предыдущих шагах вы настраивали узел по умолчанию.

    В приведенном ниже примере два NTP-сервера ( kermit и grover ) настроены на разговор вне времени серверы. Другие серверы NTP ( snuffie , bigbird и hooper ) используйте эти два основных сервера для синхронизации их времени.

    Один из основных серверов NTP, kermit , очень осторожно настроен — он не может позволить себе простои, поэтому ему не разрешено автоматически обновлять свой пакет NTP-сервера без тестирования.Остальные серверы настроен более либерально.

    site.pp выглядит так:
      узел "kermit.example.com" {
      класс { "НТП":
            серверы => [ '0.us.pool.ntp.org iburst','1.us.pool.ntp.org iburst','2.us.pool.ntp.org iburst','3.us.pool. ntp.org iburst],
            автообновление => ложь,
            ограничить => [],
            service_enable => правда,
      }
    }
    
    узел "grover.example.ком" {
      класс { "НТП":
            серверы => [ 'kermit.example.com','0.us.pool.ntp.org iburst','1.us.pool.ntp.org iburst','2.us.pool.ntp.org iburst' ],
            автообновление => правда,
            ограничить => [],
            service_enable => правда,
      }
    }
    
    узел "snuffie.example.com", "bigbird.example.com", "hooper.example.com" {
      класс { "НТП":
            серверы => [ 'grover.example.com', 'kermit.example.com'],
            автообновление => правда,
            включить => правда,
      }
    }  

    Таким образом можно настроить NTP на нескольких узлах в соответствии с вашими потребностями. потребности.

Результаты

Для получения дополнительной информации о работе с модулем puppetlabs-ntp посетите наш веб-семинар «Как управлять NTP».

Марионетка предлагает много возможностей для обучения и обучение, от официальных сертификационных курсов до управляемых онлайн-уроков. См. страницу Learning Puppet для получения дополнительной информации.

Настройка NTP на ВМ  | Документация по вычислительному движку  | Облако Google

линукс Окна


Многие программные системы, зависящие от тщательного определения последовательности событий, полагаются на стабильные, стабильные системные часы.Системные журналы, записываемые большинством служб, включают отметка времени, которая помогает отлаживать проблемы, возникающие между различными компонентами ваша система. Чтобы синхронизировать системные часы, Compute Engine экземпляры предварительно настроены на использование протокола сетевого времени (NTP).

Помимо синхронизации времени сервера, NTP полезен в редких случаях високосная секунда. Високосная секунда — это корректировка времени UTC на одну секунду, чтобы объяснить изменения вращения Земли. Високосные секунды не происходят в обычные интервалы, потому что скорость вращения Земли изменяется неравномерно в реакция на климатические и геологические явления.Предыдущие високосные секунды заметно повлияло на различные сервисы и приложения в Интернете. НТП серверы помогают гарантировать, что все серверы сообщают об одном и том же времени во время события високосная секунда.

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

Серверы Google NTP и скачкообразное размазывание

Високосные секунды во времени Unix обычно реализуются путем повторения последней секунды. дня.Это может вызвать проблемы с программным обеспечением, которое ожидает, что временные метки только когда-либо увеличиваться. Чтобы обойти эту проблему, серверы времени в Google «мазать» лишняя секунда за двадцать четыре часа — двенадцать до и двенадцать после событие дополнительной секунды — чтобы компьютеры не видели лишнюю секунду за раз один раз как повторяющаяся временная метка. Это снижает риск в системах, которые зависят от последовательная временная метка. Рекомендуется, чтобы все Compute Engine Экземпляры виртуальных машин настроены на использование внутреннего протокола Google NTP. Сервисы.

Настройте NTP для ваших экземпляров

Google не может предсказать, как будут работать внешние службы NTP, такие как pool.ntp.org. справиться с дополнительной секундой. По возможности рекомендуется не использовать внешние источники NTP с виртуальными машинами Compute Engine. Четное что еще хуже, использование как службы Google NTP, так и внешней службы может привести к непредсказуемые изменения системного времени. Использование только одного внешнего NTP источник предпочтительнее использования микса, но внешние службы NTP, такие как бассейн.ntp.org, скорее всего, будет использовать степпинг для обработки дополнительной секунды. Как результат, ваши виртуальные машины могут видеть повторяющуюся метку времени.

Самый безопасный подход — настроить виртуальный компьютер Compute Engine. машины для использования одного NTP-сервера — внутреннего NTP-сервера, предоставляемого Google. Не смешивайте внешние NTP-серверы и Google NTP-серверы, так как это может привести к неожиданному поведению.

Чтобы убедиться, что ваши виртуальные машины настроены правильно, следуйте этим инструкции.

Linux (chrony)

По умолчанию в большинстве новых выпусков Linux используется chrony для управления настройками NTP и синхронизацией времени.Чтобы убедиться, что chrony использует только внутреннюю службу NTP, проверьте chrony настройка и удаление внешних серверов NTP:

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

    Консоль

    1. Перейдите на страницу экземпляров ВМ в Cloud Console.
    2. Нажмите кнопку ssh рядом с экземпляром, который вы хотите настроить.

    gcloud

    С помощью интерфейса командной строки Google Cloud запустите:

    экземпляры вычислений gcloud ssh  VM_NAME 
     

    Замените ИМЯ_ВМ именем виртуальной машины, которую вы присоединенный к.- 38.229.53.9 2 6 37 4 -283 мкс[ -297 мкс] +/- 28 мс

    Если вы видите одну запись, указывающую на metadata.google или metadata.google.internal , никаких изменений вносить не нужно. если ты просмотреть несколько источников, смешанных между metadata.google и общедоступным источником таких как pool.ntp.org, обновите свои источники, чтобы удалить все внешние NTP-серверы.

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

  2. Настройте свои NTP-серверы для удаления внешних NTP-серверов.

    Чтобы удалить дополнительный сервер NTP из списка, отредактируйте файл /etc/chrony/chrony.conf файл с помощью вашего любимого текстового редактора. Найдите все строки, начинающиеся с server [ip-адрес или имя внешнего источника] и удалите их.

    После редактирования файла /etc/chrony/chrony.conf , перезапустите chrony оказание услуг.* метаданные.google.internal 2 7 377 98 -1343ns[-1588ns] +/- 396us

Linux (ntpd)

Большинство старых дистрибутивов Linux используют ntpd для управления настройками NTP и синхронизацией времени. Чтобы убедиться, что ntpd использует только внутреннюю службу NTP, проверьте ntpd настройка и удаление внешних серверов NTP:

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

    Консоль

    1. Перейдите на страницу экземпляров ВМ в Cloud Console.
    2. Нажмите кнопку ssh рядом с экземпляром, который вы хотите настроить.

    gcloud

    С помощью интерфейса командной строки Google Cloud запустите:

    экземпляры вычислений gcloud ssh  VM_NAME 
     

    Замените ИМЯ_ВМ именем виртуальной машины, которую вы присоединенный к.

  2. В вашем экземпляре запустите ntpq -p , чтобы проверить текущее состояние вашего Конфигурация NTP:

      нтпк -п
      

    Вывод выглядит следующим образом:

        удаленный refid st t при достижении опроса джиттер смещения задержки
    
    ================================================== =============================
    * метаданные.гугл 255.28.23.83 2 и 27 64 1 0,634 -2,537 2,285
    *217.162.232.173 130.149.17.8 2 и 191 1024 176 79.245 3.589 27.454
     

    Если вы видите одну запись, указывающую на metadata.google или metadata.google.internal , никаких изменений вносить не нужно. если ты см. несколько источников, смешанных между metadata.google и общедоступным источником например pool.ntp.org , вам необходимо обновить свои источники, чтобы удалить любые внешние NTP-серверы.

    В этом примере есть две записи, одна из которых указывает на metadata.google и еще один, указывающий на внешний адрес. Потому что есть несколько источников, вам нужно будет обновить ваши серверы NTP чтобы удалить адрес *217.162.232.173 .

  3. Настройте серверы NTP для удаления внешних источников.

    Чтобы настроить серверы NTP, отредактируйте файл /etc/ntp.conf в любимый текстовый редактор. Найдите раздел конфигурации серверов , и удалите все источники NTP, отличные от Google:

      ВИМ /etc/ntp.конф
      
      # Вам нужно поговорить с сервером NTP или двумя (или тремя).
    #сервер ntp.your-provider.example
    ...
    сервер metadata.google.internal iburst
      

    После редактирования файла /etc/ntp.conf перезапустите службу NTP. То команда для перезагрузки может различаться в зависимости от дистрибутива Linux:

      перезагрузка службы sudo ntp
      
    Примечание: По умолчанию DHCP-клиент добавляет список NTP-серверов в нтп.файл conf . Если вы используете корпоративный дистрибутив Linux и если вы хотите игнорировать конфигурацию NTP, предоставленную DHCP-клиент, добавьте PEERNTP=no в файл /etc/sysconfig/network .
  4. Проверьте свою конфигурацию, снова выполнив команду ntpq -p :

      нтпк -п
      
        удаленный refid st t при достижении опроса джиттер смещения задержки
    ================================================== =============================
    * метаданные.гугл 255.28.23.83 2 и 27 64 1 0,634 -2,537 2,285
     

Windows

  1. Перейдите на страницу экземпляров ВМ в Cloud Console.
  2. Нажмите кнопку RDP рядом с экземпляром Windows, который вы хотите зарегистрировать. в.

  3. После входа в систему щелкните правой кнопкой мыши значок PowerShell и выберите Запуск от имени администратора .

  4. Когда загрузится командная строка, выполните следующую команду, чтобы увидеть текущая конфигурация NTP:

      w32tm/запрос/конфигурация
      
    [Конфигурация]
    ...
    Тип: NTP (локальный)
    NtpServer: metadata.google.internal,
    ...
     

    Если вы видите одну запись, указывающую на metadata.google или metadata.google.internal , вам не нужно вносить никаких изменений. Если вы видите несколько источников, смешанных между metadata.google и общедоступным источником необходимо удалить внешний сервер. Следуйте руководству Windows для настройки вашего NTP-сервера.

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

Чтобы синхронизировать устройства за пределами Google Cloud со смазанным временем, используйте Публичный NTP Google. Он использует тот же мазок предоставляется экземплярам виртуальных машин Compute Engine.

Рекомендации по подключению к NTP-серверам

Использование протокола сетевого времени (NTP) — это простой и эффективный способ установить местное время.Но как вы можете убедиться, что время, которое вы получаете, является правильным, что вы можете сделать, чтобы повысить точность времени, и как вы решаете, какие серверы NTP лучше всего подходят для вас?


Сколько серверов NTP следует использовать?

Есть старая поговорка: «Человек с одними часами знает, сколько сейчас времени. Человек с двумя часами никогда не уверен».

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

Тот же принцип применим и для получения времени по протоколу сетевого времени (NTP). Если ваш клиент позволяет это, вам следует подключиться к нескольким NTP-серверам. В случае, если ваш клиент позволяет указать только один сервер NTP, используйте: ntp.netnod.se (или nts.netnod.se, если ваш клиент поддерживает Network Time Security).

Как подключиться к NTP-серверам Netnod?

Сегодня в Интернете существует около 3000 общедоступных NTP-серверов. Очевидно, что вы не можете подключиться ко всем из них, но подключение до нескольких десятков вполне разумно. Вы должны выбрать те, которые близки к вашей сети и от надежных поставщиков времени, таких как Netnod.

В настоящее время Netnod имеет 12 различных серверов NTP, которые находятся в безопасных бункерах, расположенных в шести разных местах по всей Швеции (Гетеборг, Лулео, Мальмё, Стокгольм*2 и Сундсвалль).В каждом бункере есть два атомных часа и два NTP-сервера для обеспечения резервирования. Если ваш клиент находится в скандинавских странах, подключение ко всем NTP-серверам Netnod дает вам эффективный способ обеспечить точное время по NTP.

Для тех, кто использует chrony или ntpsec (два наиболее распространенных сегодня NTP-клиента в системах Linux), вы можете ввести следующее в свой chrony.conf или ntpd.conf:

  пул gbg1.ntp.netnod.se iburst

пул gbg2.ntp.netnod.se iburst

пул lul1.ntp.netnod.se iburst

бассейн лул2.ntp.netnod.se iburst

пул mmo1.ntp.netnod.se iburst

пул mmo2.ntp.netnod.se iburst

пул sth2.ntp.netnod.se iburst

пул sth3.ntp.netnod.se iburst

пул sth4.ntp.netnod.se iburst

пул sth5.ntp.netnod.se iburst

пул svl1.ntp.netnod.se iburst

пул svl2.ntp.netnod.se iburst
  

«iburst» указывает chrony/ntpsec отправлять несколько запросов при запуске, чтобы включить более быструю синхронизацию с сервером после перезагрузки.

Как подключиться к другим серверам NTP?

В дополнение к NTP-серверам Netnod может быть полезно использовать другие свободно доступные NTP-серверы, такие как:

  время пула.nist.gov iburst
пул ptbtime1.ptb.de iburst
пул ptbtime2.ptb.de iburst
пул ptbtime3.ptb.de iburst  

NIST и PTB — государственные измерительные институты в США и Германии соответственно, которые также имеют общедоступные серверы NTP.

У Google также есть избыточные серверы NTP (time.google.com), но они не соответствуют стандартам, когда речь идет об управлении дополнительными секундами. Большинство других серверов NTP обрабатывают дополнительные секунды в соответствии с текущими рекомендациями IETF Best Current Practises, но Google размазывает дополнительную секунду по всему дню, что означает, что они будут работать почти на одну секунду неправильно, когда дополнительная секунда выпадает.Пока вы используете несколько других NTP-серверов, ваш NTP-клиент обнаружит, что Google совершает ошибку, и проигнорирует их в течение дня. Но если вы используете только серверы Google или если вы используете примерно равное количество серверов, которые правильно делают скачок и нет, вы возвращаетесь к проблеме двух часов, показывающих разное время, и вы не знаете, каким из них доверять. NTP-серверы Google превосходны, если вам нужно только время с точностью до нескольких секунд. Но если вы хотите более точно следовать UTC, вам не следует их использовать.

Вы также можете использовать pool.ntp.org; группа добровольцев, у которых есть собственные общедоступные серверы NTP:

  пул se.pool.ntp.org iburst  

Если вы хотите использовать их серверы, лучше всего указать код вашей страны в имени pool.ntp.org. Поэтому, если вы живете в Швеции, вам следует использовать: se.pool.ntp.org. Если вы находитесь в Германии, это будет: de.pool.ntp.org.

Проблема с pool.ntp.org заключается в том, что большинством их серверов управляют добровольцы, у которых, как правило, нет хороших местных часов.Они получают свое время от других NTP-серверов или, в лучшем случае, от GPS-приемника. NTP-серверы Netnod подключены напрямую к атомным часам, которые будут показывать очень точное время в течение нескольких месяцев даже без контакта с другими NTP-серверами или если служба GPS по какой-то причине прервана.

Еще одна проблема с pool.ntp.org заключается в том, что многие из добровольцев, скорее всего, получают свое время от поставщиков, таких как Google, которые используют скачкообразное размытие. Заранее узнать, какие NTP-серверы в пуле будут использовать скачкообразное размытие, невозможно.

Почему я должен подключаться к нескольким серверам NTP?

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

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

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

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

Почему меня должна волновать асимметрия?

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

Рис. 1. Симметричные и асимметричные сетевые задержки

В приведенном выше примере T — это локальные часы на клиенте. В это время клиент отправляет запрос NTP. Сервер получит запрос и отправит ответ со временем по часам сервера. Клиент получает ответ через 40 миллисекунд после отправки запроса.

Единственное, в чем клиент может быть уверен, так это в том, что отметка времени в ответе от сервера была сделана где-то в этом 40-мс окне. Но точно неизвестно когда. Однако для некоторых приложений 40 мс — это достаточно большое время.

Клиент может сделать предположение, что задержки на сервер и на сервер симметричны: просто разделите общее количество задержек на 2 и предположите, что это точное местное время, которому соответствует временная метка сервера. В симметричном случае 40 мс/2=20 мс.Таким образом, в этом случае вы можете быть уверены, что время, полученное вашим клиентом, правильное в пределах плюс/минус 20 мс, и если задержки симметричны, оценка будет точной.

Это только предположение, и оно не подходит для асимметричной сетевой задержки. Например, мобильный телефон обычно имеет более быструю нисходящую линию связи, чем восходящую. В такой сети может потребоваться 30 мс, чтобы запрос достиг сервера, но только 10 мс, чтобы ответ вернулся к клиенту. Если клиент предполагает, что задержки симметричны (а на самом деле все иначе, как на асимметричной диаграмме выше), это означает, что оценка клиента будет ошибочной.В случае нашего примера, если предположить, что задержки симметричны, когда это не так, это будет означать, что оценка составляет 30-20 = 10 мс.

Клиент никак не может определить разницу и узнать, являются ли задержки симметричными или асимметричными. Клиент знает только о T, T+40 мс и метке времени, которую он получил от сервера. Насколько клиент может сказать, эти два случая идентичны. При отсутствии внешней информации о задержках (например, измерения с использованием приемника GPS) допущение, что задержки симметричны, обычно дает достойную оценку, даже если задержки асимметричны.Конечно, оценка была бы еще лучше, если бы задержки соответствовали предположению и действительно были бы симметричными.

Общая задержка в 40 мс довольно типична для приличной домашней сети на сервер NTP с хорошим сетевым подключением, таким как Netnod. С волокном до дома оно может быть ниже 10 мс. Но если сервер NTP находится далеко или сеть перегружена, задержка может легко достигать нескольких сотен миллисекунд. Если клиент NTP общается с ближайшим сервером NTP, где общая задержка составляет всего 10 мс, у клиента будет гораздо меньшее окно неопределенности, чем если бы общая задержка составляла 100 мс.

Что делать, если я могу подключиться только к одному серверу NTP?

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

Netnod использует технологию Anycast, которая обеспечивает ответ от серверов Netnod, как указано выше. Чтобы использовать адрес Anycast Netnod, вы должны использовать «ntp.netnod.se». Адрес IPv4 или IPV6, который вы получите в ответ на это имя, будет перенаправлен на ближайший NTP-сервер Netnod. Например, если вы обычно подключаетесь к NTP-серверу в Гётеборге, который называется gbg1, и он становится недоступным, gbg2 займет Если сеть от компьютера до бункера в Гётеборге полностью выйдет из строя, один из других NTP-серверов Netnod в другом месте вступит во владение.Система предназначена для перенаправления запросов на ближайший доступный сервер (и это то, что Netnod имеет усовершенствовал выполнение DNS anycast для одного из 13 корневых серверов имен в мире).

Как я могу запустить свой собственный сервер NTP?

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

Гораздо лучше иметь один NTP-клиент на компьютере в локальной сети, подключенном к дюжине NTP-серверов по всему миру.Затем вы запускаете сервер NTP на этом компьютере и позволяете клиентам NTP на остальных устройствах в вашей сети получать время с вашего сервера NTP. Таким образом, все машины в локальной сети будут иметь одинаковое время. Если у вас большая локальная сеть, для резервирования может быть полезно иметь несколько локальных NTP-серверов. Но вам нужно всего две или три, а не дюжина.

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

Зачем тратить время на Netnod?

Компания Netnod была отмечена Шведской королевской академией инженерных наук (IVA) за лучшие в мире службы времени.Назвав Netnod «звездным часовщиком» («stjärnurmakare»), президент IVA назвал службу времени Netnod одной из лучших в мире.

Служба времени Netnod, финансируемая Управлением почты и телекоммуникаций Швеции (PTS), использует распределенную шкалу времени на нескольких автономных сайтах по всей Швеции для предоставления бесплатной службы времени, доступной через IPv4 или IPv6. Время прослеживается до официального шведского времени UTC(SP).

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

Дальнейшее чтение

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

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


Первоначально эта статья была опубликована в блоге Netnod.

.

Добавить комментарий

Ваш адрес email не будет опубликован.