Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация

Оглавление


Информация

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

Command

sudo apt remove ntp
sudo timedatectl set-ntp true
sudo systemctl start systemd-timesyncd

Проверка результата:

Command
sudo systemctl status systemd-timesyncd

Подробности ниже в главе: Служба TIMESYNCD

Данная статья применима к:

  • ОС ОН Орёл 2.12;
  • ОС СН Смоленск 1.6;
    • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
    • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
    • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
    • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

    • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

    • Astra Linux Common Edition 2.12

    ОС СН Ленинград 8.1.




    Предупреждение
    Системы электронной цифровой подписи (ЭЦП) для
    поставления
    проставления отметок
    времни
    времени на подписываемых документах  используют свои собственные доверенные серверы времени. Настройка этих серверов должна осуществляться в соответствии с инструкциями поставщиков таких систем.

    В стандартные дистрибутивы ОС ОН Орёл 2.12 и ОС СН Смоленск 1.6 и Ленинград 8.1 включены следующие службы точного времени:

    Серверная служба NTP (представлена пакетами ntp и ntpdate). Может обеспечивать работу ОС в режиме как сервера точного времени, так и клиента.

    Предупреждение
    Для синхронизации времени с внешними серверами служба ntp требует полного двустороннего доступа к сетевому порту 123 и не умеет работать с другими портами.
    Если по каким-то причинам порт 123 в вашей сети закрыт и не может быть открыт, то возможно применение одного из следующих решений:
    • Использовать локальные аппаратные источники точного времени;
    • Выносить службу ntp на сервер межсетевого экрана, чтобы она имела открытый порт 123 с выходом в Интернет;
    • Использовать ручную или автоматическую принудительную коррекцию времени с помощью команды ntpdate (см. ниже);
    • Использовать серверную службу openntpd (см. ниже);
    • Использовать клиентскую службу systemd-timesyncd (см. ниже);
    Серверная служба OpenNTPD (пакет openntpd). Может обеспечивать работу ОС в режиме как сервера точного времени, так и клиента. Включена в состав ОС ОН Орёл 2.12.26 как упрощённая альтернатива службе NTP. Может быть установлена в ОС СН Смоленск из репозитория ОС ОН Орёл. В отличие от службы NTP:

    Информация

    Инструкция по быстрой настройке клиента синхронизации времени на клиентском компьютере

    Для клиентских компьютеров в большинстве случаев серверные службы синхронизации времени (ntp или chrony) не нужны. Их можно удалить и использовать клиентскую службу systemd-timesyncd:

    Command

    sudo apt purge ntp
    sudo apt purge chrony
    sudo timedatectl set-ntp true
    sudo systemctl start systemd-timesyncd

    Проверка результата:

    Command
    systemctl status systemd-timesyncd

    Подробности по настройке службы см. далее в главе Служба systemd-timesyncd.


    Информация

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


    Раскрыть

    Для служб chrony и ntp

    Перед выполнением принудительной синхронизации времени желательно остановить службу времени, после синхронизации - запустить службу. Штатные службы времени:

    • для Astra Linux Special Edition x.7  — служба chrony;
    • для Astra Linux Special Edition более ранних обновлений и для Astra Linux Common  Edition  — служба ntp.

    Приведенная ниже последовательность команд применима при использовании любой из этих служб:

    Command

    sudo systemctl stop ntp chrony
    sudo ntpdate -u <сервер_времени>
    sudo systemctl start ntp chrony

    где вместо <сервер_времени>:

    • при наличии доступа в Интернет можно использовать IP-адреса или имена общедоступных серверов времени (например, серверы ВНИИФТРИ);
    • при отсутствии доступа в Интернет следует использоватьIP-адрес/имя собственного сервера времени.

    Например, для синхронизации времени с сервером времени ntp1.vniiftri.ru (IP-адрес 89.109.251.21) последовательность команд может быть такой:

    Command

    sudo systemctl stop ntp chrony
    sudo ntpdate -u 89.109.251.21
    sudo systemctl start ntp chrony

    Для службы systemd-timesyncd

    При использовании клиентской службы времени systemd-timesyncd для синхронизации достаточно перезапустить эту службу:

    Command
    sudo systemctl restart systemd-timesyncd.service




    В стандартные дистрибутивы Astra Linux включены следующие службы точного времени, использующие протокол синхронизации времени NTP:

    • Серверная служба chronyd (пакет chrony). Включена в состав Astra Linux Special Edition РУСБ.10015-01 начиная с очередного обновления 1.7 и в Astra Linux Common Edition начиная с 2.12.43. С момента включения в состав Astra Linux является рекомендованной серверной службой времени (не путать со службой сверхточного времени PTP и с клиентской службой timedatectl, см. далее) . Может обеспечивать работу ОС в режиме как сервера точного времени, так и клиента. Является штатной службой времени для использования с контроллерами домена FreeIPA (см. Контроллер ЕПП FreeIPA в Astra Linux) начиная с версии FreeIPA 4.8.5.

    • Серверная служба ntp (представлена пакетами ntp и ntpdate). Может обеспечивать работу ОС в режиме как сервера точного времени, так и клиента.

      Предупреждение
      Для синхронизации времени с внешними серверами служба ntp требует полного двустороннего доступа к сетевому порту 123 и не умеет работать с другими портами.
      Если по каким-то причинам порт 123 в вашей сети закрыт и не может быть открыт, то возможно применение одного из следующих решений:
      • В Astra Linux Special Edition x.7 - использовать службу времени chronyd;
      • Использовать локальные аппаратные источники точного времени;
      • Выносить службу ntp на сервер межсетевого экрана, чтобы она имела открытый порт 123 с выходом в Интернет;
      • Использовать ручную или автоматическую принудительную коррекцию времени с помощью команды ntpdate (см. ниже);
      • Использовать серверную службу openntpd (см. ниже);
      • Использовать клиентскую службу systemd-timesyncd (см. ниже);


    • Серверная служба openntpd (пакет openntpd). Может обеспечивать работу ОС в режиме как сервера точного времени, так и клиента. Включена в состав Astra Linux Common Edition 2.12.26 как упрощённая альтернатива службе NTP. Может быть установлена в Astra Linux Special Edition из репозитория Astra Linux Common Edition. В отличие от службы NTP:
      • может синхронизировать время с внешними серверами не используя сетевой порт 123, что позволяет применять эту службу в сетях, в которых не работает служба ntp из-за того, что порт 123 закрыт, не изменяя политику безопасности сети;
      • не поддерживает микросекундную точность, не поддерживает авторизацию клиентов,  не поддерживает расширения протокола NTP. См. Ограничения openntpd;
      • в силу своей простоты не подвержена многим уязвимостям NTP;

    • Клиентская служба timedatectl / systemd-timesyncd.service. Не представлена отдельными пакетами, встроена непосредственно в ОС.
      Предназначена для использования только на клиентских ОС, и не может работать сервером точного времени.
      Поддерживает только упрощенный протокол передачи времени, однако считается более современным вариантом для типичных клиентских применений.

      Предупреждение

      Служба systemd-timesyncd.service не будет работать, если:

      • Обнаружит на компьютере установленную службу NTP (даже незапущенную);
      • Обнаружит на компьютере установленную службу openntpd (даже незапущенную);
      • Обнаружит на компьютере установленную службу chronyd (даже незапущенную);
      • Обнаружит на компьютере установленные гостевые дополнения Oracle Virtual Box (предполагается, что на виртуальных машинах синхронизацию времени выполняет менеджер виртуальных машин).


    • Служба времени высокой точности PTP (Precision Time Protocol) - описание представлено в отдельной статье.



    Предупреждение
    Службы ntp, chronyd и timesyncd, несовместимы между собой и их одновременная работа невозможна.


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


    Основные термины

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

    ТипПояснениеПример

    Universal time, UTC

    UTC — это всемирное координированное время, стандарт времени, принятый на Земле.
    От UTC отсчитываются часовые пояса. UTC заменил устаревшее время по Гринвичу (GMT).
    UTC расшифровывается как Coordinated Universal Time (по-английски) или Temps universel coordonné (по-французски).
    Не зависит от географического расположения компьютера, поэтому используется в качестве системного времени, в том числе:

    • для отсчета времени в ядре ОС;
    • для отметок времени при записи журналов;
    • для синхронизации времени службами времени.

    Universal time: Ср 2019-02-20 07:51:49 UTC

    Time ZoneВременная зона. Определяет временное смещение и параметры сезонного (зимнего/летнего)  времени.Time zone: Europe/Moscow (MSK,  +0300)

    Local time

    Локальное время, местное время. Получается из всемирного координированного времени добавлением временного смещения, определённого во временной зоне.
    Для Москвы смещение составляет +3 часа (Time zone: Europe/Moscow (MSK, +0300)).
    Используется в основном для взаимодействия с пользователями системы.

    Local time: Ср 2019-02-20 10:51:49 MSK

    RTC time

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

    Время, установленное в аппаратных часах компьютера (Real Time Clock, RTC, также CMOS или BIOS time).
    Используется для первоначальной установки времени при загрузке ОС.
    Аппаратные часы могут быть настроены как на всемирное координированное, так и на местное время.

    При установке системного времени (UTC) на основании показаний аппаратных часов (UTC или местное) операционная система принимает решение о том, какое именно время (UTC или местное) показывают аппаратные часы, на основании собственных внутренних настроек (см. man timedatectl).

    Примечание

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

    Современные установщики Linux-систем при установке ОС считают, что аппаратные часы работают в режиме UTC.

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

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

    В версии Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) установщики для совместимости с Windows был настроен трактовать показания времени RTC как показания локального времени. Так как использование RTC в режиме локального времени неудобно при работе географически распределённых доменных систем, установщики Astra Linux более очередных обновлений считают, что аппаратные часы работают в режиме UTC.


    RTC time: Ср 2019-02-20 07:51:49

    Предупреждение
    Следует помнить, что некоторые аппаратные платформы (например, Raspberry Pi) не оборудованы энергонезависимыми аппаратными часами, и в них показания аппаратного времени должны быть установлены средствами операционной системой после загрузки.


    Служба времени chrony

    Начиная с Astra Linux Special Edition x.7 и Astra Linux Common Edition 2.12.43 в состав дистрибутивов включен пакет chrony (системная служба chronyd) - версия службы времени, в настоящее время рекомендованная к применению вместо службы ntp. В более старых вариантах Astra Linux пакет chrony может быть установлен из репозиториев Debian.

    В частности, служба chronyd, в отличие от службы ntp:

    1. Не прекращает свою работу, обнаружив слишком большое отклонение времени, а пытается исправить ситуацию;
    2. Быстрее выполняет синхронизацию;
    3. Работает в ситуациях, когда IP-порт 123 закрыт для исходящих запросов (т.к. для своих запросов использует непривилегированные порты, а в ntp порт 123 для исходящих запросов зашит жёстко).

    При установке ОС пакет chrony по умолчанию не устанавливается и может быть установлен командой:

    Command
    sudo apt install chrony


    Информация

    При установке пакета chrony будет автоматически удален ранее установленный пакет ntp.
    При установке контроллера домена FreeIPA (версии 4.8.5 и далее. см. Контроллер ЕПП FreeIPA в Astra Linux) пакет chrony будет установлен автоматически, и при этом автоматически будет удалён пакет ntp.

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

    Информация

    При инициализации контроллера домена FreeIPA служба chronyd будет автоматически переведена в режим сервера времени.

    Конфигурация службы chronyd находится в файле с именем /etc/chrony/chrony.conf. В файле содержатся подробные комментарии о назначении параметров настройки.

    При использовании настройки "по умолчанию" служба chronyd будет работать только как клиент синхронизации времени. Чтобы служба начала работать как сервер времени (т.е. отвечала другим клиентам на запросы), нужно в конфигурацию добавить строчку с разрешениями, в простейшем варианте - разрешить всем:

    Блок кода
    allow

    После чего перезапустить службу chronyd:

    Command
    sudo systemctl restart chronyd

    Более подробную информацию см. в документации: 

    Command
    man chrony.conf

    Настройки работы службы chronyd

    Отключение использования IPv6

    Для того, чтобы отключить использование службой chronyd протокола IPv6 (использование отключается полностью, сокет IPv6 не создается):

    1. В файле /etc/default/chrony в строку параметров DAEMON_OPTS добавить значение -4. В итоге строка должна выглядеть примерно так:

      Блок кода
      DAEMON_OPTS="-F -1 -4"


    2. Перезапустить службу chronyd:

      Command
      sudo systemctl restart chronyd


    Служба времени ntp

    Эта служба устанавливается при установке ОС Astra Linux, однако, в зависимости от используемой версии ОС может автоматически не запускаться. Проверить статус службы можно командой:

    Command
    systemctl status ntp

    Если служба не запущена, включить её автоматический запуск при старте компьютера и запустить её можно командами:

    Command
    sudo systemctl enable ntp
    sudo systemctl start ntp

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

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

    Для управления службой в состав дистрибутивов включен графический инструмент fly-admin-ntp, который можно установить из графического менеджера пакетов, или из командной строки:

    Command

    sudo apt install fly-admin-ntp

    После установки графического инструмента он будет доступен в меню:

    Информация

    Пуск -> Панель управления -> Сеть -> Синхронизация времени (NTP).

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

    Свой сервер времени

    При настройках "по умолчанию" служба ntpd выдает отметки времени всем, кто их запросит, но никому не разрешает управлять собой удаленно. Пример файла конфигурации службы ntp (файл /etc/ntp.conf):

    Раскрыть

    # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

    driftfile /var/lib/ntp/ntp.drift

    # Enable this if you want statistics to be logged.
    #statsdir /var/log/ntpstats/

    statistics loopstats peerstats clockstats
    filegen loopstats file loopstats type day enable
    filegen peerstats file peerstats type day enable
    filegen clockstats file clockstats type day enable


    # You do need to talk to an NTP server or two (or three).
    #server ntp.your-provider.example

    # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
    # pick a different set every time it starts up. Please consider joining the
    # pool: <http://www.pool.ntp.org/join.html>
    pool 0.debian.pool.ntp.org iburst
    pool 1.debian.pool.ntp.org iburst
    pool 2.debian.pool.ntp.org iburst
    pool 3.debian.pool.ntp.org iburst


    # Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
    # details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
    # might also be helpful.
    #
    # Note that "restrict" applies to both servers and clients, so a configuration
    # that might be intended to block requests from certain clients could also end
    # up blocking replies from your own upstream servers.

    # By default, exchange time with everybody, but don't allow configuration.
    restrict -4 default kod notrap nomodify nopeer noquery limited
    restrict -6 default kod notrap nomodify nopeer noquery limited

    # Local users may interrogate the ntp server more closely.
    restrict 127.0.0.1
    restrict ::1

    # Needed for adding pool entries
    restrict source notrap nomodify noquery

    # Clients from this (example!) subnet have unlimited access, but only if
    # cryptographically authenticated.
    #restrict 192.168.123.0 mask 255.255.255.0 notrust


    # If you want to provide time to your local subnet, change the next line.
    # (Again, the address is an example only.)
    #broadcast 192.168.123.255

    # If you want to listen to time broadcasts on your local subnet, de-comment the
    # next lines. Please do this only if you trust everybody on the network!
    #disable auth
    #broadcastclient


    Все подключения к службе ограничены, а управляющие подключения запрещены:

    Информация

    # ограничения для IPv4
    restrict -4 default kod notrap nomodify nopeer noquery limited

    # ограничения для IPv6

    restrict -6 default kod notrap nomodify nopeer noquery limited

    По умолчанию заданы следующие параметры ограничений:

    • kod              — узлам, которые слишком часто отправляют запросы сначала отправить предупреждение (поцелуй смерти, kiss of death), затем отключить от сервера
    • notrap       — не принимать управляющие команды
    • nomodify — не принимать команды, которые могут вносить изменения состояния
    • nopeer      — не синхронизироваться с хостом
    • noquery    — не принимать запросы
    • limited       — ограничение одновременного приема запросов

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

    Информация

    # не запрещаем принимать запросы от сети 192.168.0.0, но не разрешаем управление из этой сети
    restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

    # разрешаем управление с локального компьютера
    restrict 127.0.0.1
    restrict ::1

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

    После внесения изменений в конфигурацию следует перезапустить сервис:

    Command
    sudo service ntp restart

    Контроль состояния службы ntp

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

    Command
    ntpq -p

    Типичный вывод команды при нормально работающем сервисе:

    Информация
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     0.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     1.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     2.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     3.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     127.127.1.0     .LOCL.          10 l 1101   64    0    0.000    0.000   0.000
    +185.209.85.222  195.91.239.8     2 u   20   64  377   10.631    0.690   0.355
    *195.91.239.8    .PPS.            1 u   19   64  377    1.256    0.081   0.065
    +192.36.143.130  .PPS.            1 u   18   64  377   19.755    0.129   0.330
    -37.193.156.169  80.242.83.227    2 u   12   64  377   44.877   -0.832   2.427
    -95.165.138.248  89.109.251.24    2 u    7   64  377    3.118    0.241   0.140

    Где:

    • первый символ в строке - статус выбора:
      • * — выбранный сервер времени;
      • + —новый сервер;
      • o — PPS-источник (источник секундных импульсов);
      • пробел — не работающий источник;
      • — x и др. — «забракованные» (ненадежные) источники.
    • remote - адрес опрошенного сервера времени;
    • refid - источник сигналов времени,  с которым синхронизируется опрошенный сервер.
      Это может быть другой сервер (группа (pool) серверов), а могут быть аппаратные часы.
      В приведённом примере видно, что серверы первого стратума синхронизируются по аппаратным часам;
    • st - уровень (стратум) сервера. Может принимать значения от 0 до 16. Чем ниже уровень - тем точнее сервер.
      Значение стратума 16 скорее всего говорит о том, что сервер признан негодным источником;
    • t - тип сервера (u - unucast, m - multicast, l - local, p - pool и т.д.);
    • when - время, прошедшее с последней синхронизации (последнего ответа сервера), в секундах, если не указано иное;
    • poll - интервал опроса (двоичный логарифм периода опроса в секундах);
    • reach - восьмеричное значение сдвигового регистр доступности.
      Отражает доступность сервера при последних восьми опросах, при 100% доступности проходит значения 0, 1, 3, 7, 17, 37, 77, 177, 377 и далее остаётся равным 377;
    • delay - задержка ответа (время между отправкой запроса и получением ответа);
    • offset - смещение времени относительно локального сервера;
    • jitter- дисперсия (разброс) времени прохождения пакетов при обмене с сервером

    Проверка и принудительная коррекция времени с помощью команды ntpdate

    Для проверки работы сервера времени и коррекции показаний времени в составе дистрибутивов предусмотрен инструмент командной строки ntpdate.

    Типичные ошибки, которые можно обнаружить с помощью этой команды:

    • no server suitable for synchronization found - пригодный для синхронизации сервер не найден, говорит сама за себя, типично для службы ntpd,  которая, не обнаружив возможности синхронизироваться, просто перестаёт работать;
    • leap not in sync - сервер находится в состоянии незавершенной коррекции времени, его показания пока недостоверны. Обычно действий не требует, и исчезает через некоторое время, после завершения сервером коррекции показаний своих часов.

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

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

    Command
    sudo apt install ntpdate

    Типичные применения:

    • проверка доступности сервера времени запросом времени без коррекции показаний времени (опция -q):

      Command

      sudo ntpdate -q 0.ru.pool.ntp.org


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

      Command
      sudo ntpdate -d 0.ru.pool.ntp.org


    • коррекция времени без использования IP-порта 123 (используется непривилегированный порт). Может применяться для принудительной коррекции времени в сетях, где порт 123 закрыт:

      Command
      sudo ntpdate -u 0.ru.pool.ntp.org



      Предупреждение

      По умолчанию ntpdate использует тот же IP-порт (123) что и ntpd, и, если сервис ntpd запущен, то ntpdate при запуске сообщает, что порт занят:

      Command
      Titlesudo ntpdate -q 0.ru.pool.ntp.org

      ntpdate[1421]: the NTP socket is in use, exiting

      Для того, чтобы использовать для запроса времени IP-порт, отличный от 123, следует использовать опцию -u.

      Так как IP-порт 123 часто закрыт по соображениям безопасности, команду ntpdate БЕЗ опции -u можно использовать для проверки доступности внешних серверов времени для службы ntpd (запросы в этом случае следует отправлять на серверы времени, указанные в конфигурационном файле службы ntpd):

      Command
      sudo service ntp stop
      sudo ntpdate -q 0.ru.pool.ntp.org
      sudo ntpdate -qu 0.ru.pool.ntp.org
      sudo service ntp start

      Если первая команда ntpdate (с опцией "-q") не может получить ответ от сервера, а вторая (с опцией "-qu") может, то нужно либо разблокировать доступ к IP-порту 123,  либо рассмотреть возможность замены NTP на службу, работающую через другие порты OpenNTPD, chrony, systemd-timesyncd).


    • Команда ntpdate может применяться для периодической коррекции времени:

      Command
      sudo ntpdate -ubv 0.ru.pool.ntp.org


    См. тж. про применение ntpdate в статье про виртуализацию

    Проверка состояния службы ntp с помощью команды ntpq

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

    Command

    sudo ntpq -c sysinfo

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

    Блок кода
    associd=0 status=c016 leap_alarm, sync_unspec, 1 event, restart,
    system peer:        0.0.0.0:0
    system peer mode:   unspec
    leap indicator:     11
    stratum:            16
    log2 precision:     -24
    root delay:         0.000
    root dispersion:    0.300
    reference ID:       INIT
    reference time:     (no time)
    system jitter:      0.000000
    clock jitter:       0.000
    clock wander:       0.000
    broadcast delay:    -50.000
    symm. auth. delay:  0.000

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

    Блок кода
    associd=0 status=0614 leap_none, sync_ntp, 1 event, freq_mode,
    system peer:        ntp3.vniiftri.ru:123
    system peer mode:   client
    leap indicator:     00
    stratum:            2
    log2 precision:     -24
    root delay:         5.638
    root dispersion:    187.866
    reference ID:       89.109.251.23
    reference time:     e8188920.f000d2a1  Wed, May 24 2023 16:01:20.937
    system jitter:      0.000000
    clock jitter:       0.997
    clock wander:       0.000
    broadcast delay:    -50.000
    symm. auth. delay:  0.000

    Передача параметров ntp через DNS

    Параметры для доступа к серверу времени могут автоматически передаваться клиентам через DNS-сервер. Подробности см. в DNS-сервер BIND9

    Изменение настроек клиентов

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

    • оптимизация и локализация сетевого трафика
    • работа в изолированной сети
    • работа со специальными серверами времени

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

    Информация
    pool 0.debian.pool.ntp.org iburst
    pool 1.debian.pool.ntp.org iburst
    pool 2.debian.pool.ntp.org iburst
    pool 3.debian.pool.ntp.org iburst


    Предупреждение

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

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

    Информация
    pool 0.ru.pool.ntp.org iburst
    pool 1.ru.pool.ntp.org iburst
    pool 2.ru.pool.ntp.org iburst
    pool 3.ru.pool.ntp.org iburst

    Кроме того, можно использовать серверы ВНИИФТРИ, актуальный список которых доступен по ссылке: http://vniiftri.ru/ru/uslugi-serverov

    При необходимости работать в изолированной сети, или при желании ограничить свой внешний трафик, можно использовать свои локальные серверы времени:

    Информация
    server <IP_адрес_сервера_1>
    server <IP_адрес_сервера_2>

    Особенности работы в виртуальных машинах

    Некоторые особенности синхронизации времени описаны в статье про виртуализацию

    Служба openntpd

    Может быть установлена из репозитория Astra Linux Common Edition командой:

    Command
    sudo apt install opеnntpd

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

    Конфигурация службы openntpd находится в файле /etc/openntpd/ntpd.conf. Конфигурацию службы openntpd можно рассматривать как упрощенный вариант конфигурации службы ntp. Пример конфигурации:

    Блок кода
    # $OpenBSD: ntpd.conf,v 1.14 2015/07/15 20:28:37 ajacoutot Exp $
    # sample ntpd configuration file, see ntpd.conf(5)
    
    # Addresses to listen on (ntpd does not listen by default)
    listen on *
    #listen on 127.0.0.1
    #listen on ::1
    
    # sync to a single server
    #server ntp.example.org
    
    # use a random selection of NTP Pool Time Servers
    # see http://support.ntp.org/bin/view/Servers/NTPPoolServers
    #servers pool.ntp.org
    
    # Choose servers announced from Debian NTP Pool
    servers ntp21.vniiftri.ru
    #servers 0.debian.pool.ntp.org
    #servers 1.debian.pool.ntp.org
    #servers 2.debian.pool.ntp.org
    #servers 3.debian.pool.ntp.org
    
    # use a specific local timedelta sensor (radio clock, etc)
    #sensor nmea0
    
    # use all detected timedelta sensors
    #sensor *

    В примере выше служба настроена на синхронизацию с сервером ntp21.vniiftri.ru ВНИИФТРИ,  и работает в режиме сервера.
    Обратите внимание на строчку, включающую прослушивание службой порта 123 для обслуживания запросов от клиентов:

    Блок кода
    # Addresses to listen on (ntpd does not listen by default)
    listen on *

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

    Command
    sudo systemctl restart openntpd

    Так как служба openntpd использует стандартный протокол NTP, для диагностики службы openntpd можно использовать описанные выше команды ntpq и ntpdate (ntpq придётся использовать с другой машины, так как эта команда входит в состав пакета ntp).

    Якорь
    systemd-timesyncd
    systemd-timesyncd
    Служба systemd-timesyncd

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

    Информация

    Служба timesyncd не может выполнять функции сервера, это исключительно клиентская служба.

    Служба timesyncd устанавливается автоматически при установке ОС, автоматически запускается при каждой перезагрузке ОС, однако немедленно завершает свою работу с сообщением об ошибке, обнаружив, что на компьютере присутствует служба ntp или служба chronyd, или если машина виртуальная (установлены дополнения гостевой ОС).

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

    Command

    sudo timedatectl set-ntp false

    Включить, соответственно, командой (однако, пока присутствует служба ntp (или openntpd или chronyd), служба timesyncd всё равно  работать не будет):

    Command

    sudo timedatectl set-ntp true

    Для использования timesyncd в первую очередь необходимо полностью удалить службы ntp и openntpd (если они были установлены):

    Command
    sudo apt purge ntp openntpd

    Если была установлена служба времени chronyd удалить её:

    Command
    sudo apt purge chrony

    После чего запустить службу timesyncd:

    Command
    sudo systemctl start systemd-timesyncd

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

    Command
    systemctl status systemd-timesyncd

    Или командой:

    Command

    sudo timedatectl status

    Примерный вывод команды:

    Информация

          Local time: Ср 2018-12-26 11:08:12 MSK
      Universal time: Ср 2018-12-26 08:08:12 UTC
            RTC time: Ср 2018-12-26 08:08:12
           Time zone: Europe/Moscow (MSK, +0300)
     Network time on: yes
    NTP synchronized: yes
     RTC in local TZ: no

    Выбор серверов времени

    Служба timesyncd по умолчанию скомпилирована для работы предопределенным набором серверов. Эти серверы перечислены в комментарии в файле /etc/systemd/timesyncd.conf. Для Astra Linux Special Edition x.7 это:

    Блок кода
    #FallbackNTP=0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org 3.ru.pool.ntp.org ntp3.vniiftri.ru ntp4.vniiftri.ru ntp21.vniiftri.ru vniiftri2.khv.ru ntp2.niiftri.irkutsk.ru ntp3.stratum2.ru ntp2.stratum2.ru 

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

    Дополнительно служба timesyncd

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

    Клиентская служба timedatectl / systemd-timesyncd.service. Не представлена отдельными пакетами, встроена непосредственно в ОС.
    Предназначена для использования только на клиентских ОС, и не может работать сервером точного времени.
    Поддерживает только упрощенный протокол передачи времени, однако считается более современным вариантом для типичных клиентских применений.

    Предупреждение

    Служба systemd-timesyncd.service не будет работать, если:

    • Обнаружит на компьютере установленную службу NTP (даже незапущенную);
    • Обнаружит на компьютере установленную службу OpenNTPD (даже незапущенную);
    • Обнаружит на компьютере установленные гостевые дополнения Oracle Virtual Box (предполагается, что на виртуальных машинах синхронизацию времени выполняет менеджер виртуальных машин).
  • Служба времени высокой точности PTP (Precision Time Protocol) - описание представлено в отдельной статье.
  • Предупреждение
    Службы ntp и timesyncd несовместимы между собой и их одновременная работа невозможна.
    Предупреждение
    Служба timesyncd отказывается работать на виртуальный машинах. Современные системы виртуализации сами обеспечивают синхронизацию часов виртуальной машины с часами физической машины.

    Основные понятия

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

    ТипПояснениеПример

    Universal time, UTC

    UTC — это всемирное координированное время, стандарт времени, принятый на Земле.
    От UTC отсчитываются часовые пояса. UTC заменил устаревшее время по Гринвичу (GMT).
    UTC расшифровывается как Coordinated Universal Time (по-английски) или Temps universel coordonné (по-французски).
    Так как не зависит от местоположения компьютера, используется в качестве системного времени:
    времени в ядре ОС, для отметок времени для записи журналов, и для синхронизации времени службами времени.

    Universal time: Ср 2019-02-20 07:51:49 UTC

    Time ZoneВременная зона. Определяет временное смещение и параметры сезонного (зимнего/летнего)  времени.Time zone: Europe/Moscow (MSK,  +0300)

    Local time

    Локальное время, местное время. Получается из всемирного координированного времени добавлением временного смещения, определённого во временной зоне.
    Для Москвы смещение составляет +3 часа (Time zone: Europe/Moscow (MSK, +0300)).
    Используется в основном для взаимодействия с пользователями системы.

    Local time: Ср 2019-02-20 10:51:49 MSK

    RTC time

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

    Время, установленное в аппаратных часах компьютера (Real Time Clock, RTC, также CMOS или BIOS time).
    Используется для первоначальной установки времени при загрузке ОС.
    Аппаратные часы могут быть настроены как на всемирное координированное, так и на местное время.

    При установке системного времени (UTC) на основании показаний аппаратных часов (UTC или местное) операционная система принимает решение о том, какое именно время (UTC или местное) показывают аппаратные часы, на основании собственных внутренних настроек (см. man timedatectl).

    Примечание

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

    Современные установщики Linux-систем при установке ОС считают, что аппаратные часы работают в режиме UTC.

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

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

    В версии Astra Linux ОС СН Смоленск 1.5 установщики для совместимости в Windows был настроен трактовать показания времени RTC как показания локального времени.
    Так как использование RTC в режиме локального времени неудобно при работе географически распределённых доменных систем, установщики Astra Linux начиная с версий ОС ОН Орёл 2.12 и ОС СН Смоленск 1.6 считают, что аппаратные часы работают в режиме UTC.

    RTC time: Ср 2019-02-20 07:51:49

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

    Служба времени NTP

    Эта служба устанавливается при установке ОС Astra Linux, однако, в зависимости от используемой версии ОС может автоматически не запускаться.

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

    Command
    sudo systemctl status ntp

    Если служба не запущена, всключить её автоматический запуск при старте компьютера и запустить её можно командами:

    Command
    sudo systemctl enable ntp
    sudo systemctl start ntp

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

    Информация
    Настроенная на автоматический запуск при перезагрузке компьютера служба ntp будет запускаться автоматически, но, если она не сможет найти ни одного сервера времени из перечисленных в её конфигурации, то будет так же автоматически прекращать свою работу.
    Для управления службой в состав дистрибутивов включен графический инструмент fly-admin-ntp, который можно установить из графического менеджера пакетов, или из командной строки:
    Command

    sudo apt install fly-admin-ntp

    После установки графического инструмента он будет доступен в меню:
    Информация

    Пуск -> Панель управления -> Сеть -> Синхронизация времени (NTP).

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

    Свой сервер времени

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

    Пример файла конфигурации службы NTP (/etc/ntp.conf):

    Раскрыть

    # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

    driftfile /var/lib/ntp/ntp.drift

    # Enable this if you want statistics to be logged.
    #statsdir /var/log/ntpstats/

    statistics loopstats peerstats clockstats
    filegen loopstats file loopstats type day enable
    filegen peerstats file peerstats type day enable
    filegen clockstats file clockstats type day enable

    # You do need to talk to an NTP server or two (or three).
    #server ntp.your-provider.example

    # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
    # pick a different set every time it starts up. Please consider joining the
    # pool: <http://www.pool.ntp.org/join.html>
    pool 0.debian.pool.ntp.org iburst
    pool 1.debian.pool.ntp.org iburst
    pool 2.debian.pool.ntp.org iburst
    pool 3.debian.pool.ntp.org iburst

    # Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
    # details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
    # might also be helpful.
    #
    # Note that "restrict" applies to both servers and clients, so a configuration
    # that might be intended to block requests from certain clients could also end
    # up blocking replies from your own upstream servers.

    # By default, exchange time with everybody, but don't allow configuration.
    restrict -4 default kod notrap nomodify nopeer noquery limited
    restrict -6 default kod notrap nomodify nopeer noquery limited

    # Local users may interrogate the ntp server more closely.
    restrict 127.0.0.1
    restrict ::1

    # Needed for adding pool entries
    restrict source notrap nomodify noquery

    # Clients from this (example!) subnet have unlimited access, but only if
    # cryptographically authenticated.
    #restrict 192.168.123.0 mask 255.255.255.0 notrust

    # If you want to provide time to your local subnet, change the next line.
    # (Again, the address is an example only.)
    #broadcast 192.168.123.255

    # If you want to listen to time broadcasts on your local subnet, de-comment the
    # next lines. Please do this only if you trust everybody on the network!
    #disable auth
    #broadcastclient

    Все подключения к службе ограничены, а управляющие подключения запрещены:

    Информация# ограничения для IPv4
    restrict -4 default kod notrap nomodify nopeer noquery limited
    # ограничения для IPv6
    restrict -6 default kod notrap nomodify nopeer noquery limited

    По умолчанию заданы следующие параметры ограничений:

    • kod              — узлам, которые слишком часто отправляют запросы сначала отправить предупреждение (поцелуй смерти, kiss of death), затем отключить от сервера
    • notrap       — не принимать управляющие команды
    • nomodify — не принимать команды, которые могут вносить изменения состояния
    • nopeer      — не синхронизироваться с хостом
    • noquery    — не принимать запросы
    • limited       — ограничение одновременного приема запросов

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

    Информация

    # не запрещаем принимать запросы от сети 192.168.0.0, но не разрешаем управление из этой сети
    restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

    # разрешаем управление с локального компьютера
    restrict 127.0.0.1
    restrict ::1

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

    После внесения изменений в конфигурацию следует перезапустить сервис:

    Command
    sudo service ntp restart

    Контроль состояния сервиса NTP

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

    Command
    ntpq -p

    Типичный вывод команды при нормально работающем сервисе:

    Информация
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     0.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     1.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     2.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     3.ru.pool.ntp.o .POOL.          16 p    -   64    0    0.000    0.000   0.000
     127.127.1.0     .LOCL.          10 l 1101   64    0    0.000    0.000   0.000
    +185.209.85.222  195.91.239.8     2 u   20   64  377   10.631    0.690   0.355
    *195.91.239.8    .PPS.            1 u   19   64  377    1.256    0.081   0.065
    +192.36.143.130  .PPS.            1 u   18   64  377   19.755    0.129   0.330
    -37.193.156.169  80.242.83.227    2 u   12   64  377   44.877   -0.832   2.427
    -95.165.138.248  89.109.251.24    2 u    7   64  377    3.118    0.241   0.140

    Где:

    • первый символ в строке - статус выбора:
      • * — выбранный север времени;
      • + —новый сервер;
      • o — PPS-источник (источник секундных импульсов);
      • пробел — не работающий источник;
      • — x и др. — «забракованные» (ненадежные) источники.
    • remote - адрес опрошенного сервера времени;
    • refid - источник сигналов времени,  с которым синхронизируется опрошенный сервер.
      Это может быть другой сервер, а могут быть аппаратные часы.
      В приведённом примере видно, что серверы первого стратума синхронизируются по аппаратным часам;
    • st - уровень (стратум) сервера. Может принимать значения от 0 до 16. Чем ниже уровень - тем точнее сервер.
      Значение стратума 16 скорее всего говорит о том, что сервер признан негодным источником;
    • t - тип сервера (u - unucast, m - multicast, l - local, p - pool и т.д.);
    • when - время, прошедшее с последней синхронизации (последнего ответа сервера), в секундах, если не указано иное;
    • poll - интервал опроса (двоичный логарифм периода опроса в секундах);
    • reach - восьмеричное значение сдвигового регистр доступности.
      Отражает доступность сервера при последних восьми опросах, при 100% доступности проходит значения 0, 1, 3, 7, 17, 37, 77, 177, 377 и далее остаётся равным 377;
    • delay - задержка ответа (время между отправкой запроса и получением ответа);
    • offset - смещение времени относительно локального сервера;
    • jitter- дисперсия (разброс) времени прохождения пакетов при обмене с сервером

    Проверка и принудительная коррекция времени с помощью команды ntpdate

    Для проверки работы сервера времени и коррекции показаний времени в составе дистрибутивов предусмотрен инструмент командной строки ntpdate.

    Типичные ошибки, которые можно обнаружить с помощью этой команды:

    • no server suitable for synchronization found - пригодный для синхронизации сервер не найден, говорит сама за себя, типично для службы ntpd,  которая, не обнаружив возможности синхронизироваться, просто перестаёт работать;
    • leap not in sync - сервер находится в состоянии незавершенной коррекции времени, его показания пока недостоверны. Обычно действий не требует, и исчезает через некоторое время, после завершения сервером коррекции показаний своих часов.

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

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

    Информация
    sudo apt install ntpdate

    Типичные применения:

    проверка доступности сервера времени запросом времени без коррекции показаний времени (опция -q или -d):

    Command

    sudo ntpdate -q 0.ru.pool.ntp.org

    то же самое с подробной диагностикой (опция -d включает подробную диагностику, и так же отменяет выполнение коррекции времени):

    Command
    sudo ntpdate -d 0.ru.pool.ntp.org

    то же самое без использования IP-порта 123:

    Command
    sudo ntpdate -du 0.ru.pool.ntp.org
    Предупреждение

    По умолчанию ntpdate использует тот же IP-порт (123) что и ntpd, и, если сервис ntpd запущен, то ntpdate при запуске сообщает, что порт занят:

    Command
    Titlesudo ntpdate -q 0.ru.pool.ntp.org

    ntpdate[1421]: the NTP socket is in use, exiting

    Для того, чтобы использовать для запроса времени IP-порт, отличный от 123, следует использовать опцию -u.

    Так как IP-порт 123 часто закрыт по соображениям безопасности, команду ntpdate БЕЗ опции -u можно использовать для проверки доступности внешних серверов времени для службы ntpd (запросы в этом случае следует отправлять на серверы времени, указанные в конфигурационном файле службы ntpd):

    Command
    sudo service ntp stop
    sudo ntpdate -q 0.ru.pool.ntp.org
    sudo ntpdate -qu 0.ru.pool.ntp.org
    sudo service ntp start

    Если первая команда ntpdate (с опцией "-q") не может получить ответ от сервера, а вторая (с опцией "-qu") может, то нужно либо разблокировать доступ к IP-порту 123,  либо рассмотреть возможность замены NTP на службу, работающую через другие порты (например, OpenNTPD).

  • Команда ntpdate может применяться для периодической коррекции времени:

  • Command
    sudo ntpdate -ubv 0.ru.pool.ntp.org

    См. тж. про применение ntpdate в статье про виртуализацию

    Передача параметров NTP через DNS

    Параметры для доступа к NTP могут автоматически передаваться клиентам через DNS-сервер.
    Подробности см. в DNS-сервер BIND9

    Изменение настроек клиентов

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

    • оптимизация и локализация сетевого трафика
    • работа в изолированной сети
    • работа со специальными серверами времени

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

    Информация
    pool 0.debian.pool.ntp.org iburst
    pool 1.debian.pool.ntp.org iburst
    pool 2.debian.pool.ntp.org iburst
    pool 3.debian.pool.ntp.org iburst
    Предупреждение

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

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

    Информация
    pool 0.ru.pool.ntp.org iburst
    pool 1.ru.pool.ntp.org iburst
    pool 2.ru.pool.ntp.org iburst
    pool 3.ru.pool.ntp.org iburst

    Кроме того, можно использовать серверы ВНИИФТРИ, актуальный список которых доступен по ссылке: http://vniiftri.ru/ru/uslugi-serverov

    При необходимости работать в изолированной сети, или при желании ограничить свой внешний трафик, можно использовать свои локальные серверы времени:

    Информация
    server <IP_адрес_сервера_1>
    server <IP_адрес_сервера_2>

    Особенности работы в виртуальных машинах

    Некоторые особенности синхронизации времени описаны в статье про виртуализацию

    Служба OpenNTPD

    Может быть установлена из репозитория ОС ОН Орёл командой:

    Command
    sudo apt install opеnntpd

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

    Конфигурация службы openntpd находится в файле /etc/openntpd/ntpd.conf. Конфигурацию OpenNTPD можно рассматривать как упрощенный вариант конфигурации NTP. Пример конфигурации:

    Блок кода
    # $OpenBSD: ntpd.conf,v 1.14 2015/07/15 20:28:37 ajacoutot Exp $
    # sample ntpd configuration file, see ntpd.conf(5)
    
    # Addresses to listen on (ntpd does not listen by default)
    listen on *
    #listen on 127.0.0.1
    #listen on ::1
    
    # sync to a single server
    #server ntp.example.org
    
    # use a random selection of NTP Pool Time Servers
    # see http://support.ntp.org/bin/view/Servers/NTPPoolServers
    #servers pool.ntp.org
    
    # Choose servers announced from Debian NTP Pool
    servers ntp21.vniiftri.ru
    #servers 0.debian.pool.ntp.org
    #servers 1.debian.pool.ntp.org
    #servers 2.debian.pool.ntp.org
    #servers 3.debian.pool.ntp.org
    
    # use a specific local timedelta sensor (radio clock, etc)
    #sensor nmea0
    
    # use all detected timedelta sensors
    #sensor *

    В примере выше служба настроена на синхронизацию с сервером ntp21.vniiftri.ru ВНИИФТРИ,  и работает в режиме сервера.
    Обратите внимание на строчку, включающую прослушивание службой порта 123 для обслуживания запросов от клиентов:

    Блок кода
    # Addresses to listen on (ntpd does not listen by default)
    listen on *

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

    Command
    sudo systemctl restart openntpd

    Так как служба OpenNTPD поддерживает совместимый со службой NTP формат обмена данным, для диагностики службы OpenNTPD можно использовать те же команды ntpq и ntpdate (ntpq придётся использовать с другой машины, так как эта команда входит в состав пакета ntp).

    Служба TIMESYNCD

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

    Информация

    Служба TIMESYNCD не может выполнять функции сервера, это исключительно клиентская служба.

    Служба timesyncd устанавливается автоматически при установке ОС , автоматически запускается при каждой перезагрузке ОС, однако немедленно завершает свою работу с сообщением об ошибке, обнаружив, что на компьютере присутствует служба ntp или служба chronyd, или если машина виртуальная (установлены дополнения гостевой ОС).

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

    Command

    sudo timedatectl set-ntp false

    Включить, соответственно, командой (однако, пока присутствует служба ntp (или openntpd или chronyd), служба timesyncd всё равно  работать не будет):

    Command

    sudo timedatectl set-ntp true

    Для использования timesyncd в первую очередь необходимо полностью удалить службы ntp и openntpd (если они были установлены):

    Command
    sudo apt purge ntp openntpd

    Если была установлена служба времени chronyd удалить её:

    Command
    sudo apt purge chrony
    После чего запустить службу timesyncd:
    Command
    sudo systemctl start systemd-timesyncd

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

    Command
    sudo systemctl status systemd-timesyncd

    Или командой:

    Command

    sudo timedatectl status

    Примерный вывод команды:

    Информация

          Local time: Ср 2018-12-26 11:08:12 MSK
      Universal time: Ср 2018-12-26 08:08:12 UTC
            RTC time: Ср 2018-12-26 08:08:12
           Time zone: Europe/Moscow (MSK, +0300)
     Network time on: yes
    NTP synchronized: yes
     RTC in local TZ: no

    Выбор серверов времени

    Служба TIMESYNCD по умолчанию скомпилирована для работы с набором серверов времени из пула Debian.

    Дополнительно служба TIMESYNCD получает имена серверов времени от  службы systemd-networkd, если служба systemd-networkd предоставляет такую информацию, т.е. в конфигурационных файлах этой службы (каталоги /lib/systemd/network/,  /run/systemd/network/, /etc/systemd/network/ или файл /lib/) указаны серверы NTP, привязанные к сетевым интерфейсам (подробнее см. man systemd.network).

    Дополнительные и резервные серверы могут быть указаны в собственных конфигурационных файлах службы TIMESYNCDtimesyncd

    Информация
    /etc/systemd/timesyncd.conf
    /etc/systemd/timesyncd.conf.d/*.conf
    /run/systemd/timesyncd.conf.d/*.conf
    /usr/lib/systemd/timesyncd.conf.d/*.conf

    Опции в конфигурационном файле:

    • NTP= - разделённый пробелами основной список имён NTP-серверов. Объединяется со списком полученных от службы systemd-networkd. По умолчанию список пустой.

    • FallbackNTP= разделённый пробелами список имён резервных NTP-серверов.

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

    Якорь
    RTC
    RTC
    Настройка режима интерпретации показаний аппаратных ( RTC) часов

    При установке ОС

    При установке ОС ОН Орёл Astra Linux Common Edition 2.12 режим интерпретации показаний аппаратных часов можно выбрать в окне "Дополнительные настройки ОС", пункт "Системные часы установлены на местное время":

    На установленной ОС

    При использовании любой службы времени рекомендуется настраивать аппаратные часы компьютера так, чтобы они показывали не локальное, а всемирное координированное время (UTC).
    Если этого не сделать, возможны проблемы с коррекцией времени и сменой сезонного локального времени.
    Если RTС настроены не на UTC, а на локальное время, команда timedatectl status будет выдавать соответствующее предупреждение.

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

    Command
    sudo timedatectl  set-local-rtc 0

    Для переключения с одновременной синхронизацией системного времени по показаниям часов RTC можно использовать опцию  --adjust-system-clock.

    Переключение аппаратных часов на локальное время можно выполнить командой:

    Command
    sudo timedatectl  set-local-rtc 1

    Якорь
    RTCWIN
    RTCWIN
    Настройка режима интерпретации RTC в Windows

    Предупреждение

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

    Чтобы ОС семейства Windows трактовали показания аппаратных часов как время UTC, использовать параметр реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal", установив его в единицу:

    Информация
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001

    или

    Информация
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=qword:00000001


    Настройки служб времени с помощью Ansible и Puppet

    См. Настройки служб времени с помощью Ansible и Puppet