Astra linux синхронизация времени

Обновлено: 05.07.2024

Для начала смотрим какая у нас установлена временная зона. Для этого используем команду date.

Если временная зона установлена неправильно, то устанавливаем правильную временную зону. Для этого создаем симлинк на файл /etc/localtime с соответствующей временной зоны из каталога /usr/share/zoneinfo/. Например для Москвы.

Настройка синхронизации NTP-клиента с NTP-сервером

Устанавливаем пакет ntp

iburst: данный параметр повышает точность синхронизации, вместо одного пакета отправляется восемь. Когда сервер не отвечает, пакеты отправляются каждые 16 секунд, когда отвечает – каждые 2 секунды.

Далее нужно указать в файле конфигурации ваш NTP-сервер, который мы настроили в предыдущей статье. Если у вас в сети нет своего ntp сервера, то этот параметр указывать не нужно.

Запуск службы NTP

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

и добавьте его в автозагрузку

для проверки времени наберите команду

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

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

Значение jitter должно быть низким, если это не так, проверьте смещение относительно часов в файле погрешности (driftfile). Если оно слишком велико, может потребоваться смена NTP-сервера. Следующая команда вручную синхронизирует время с NTP-сервером:

Ручная синхронизация времени

Для опроса NTP-сервера и установки даты и времени в ручную используется команда ntpdate. Обычно это требуется только один раз.

Для начала отключите ntp службу

Запустите синхронизацию указав сервер с которого нужно синхронизировать время

Запустите службу ntp

После такой первоначальной синхронизации NTP-клиент будет регулярно опрашивать NTP-сервер для обеспечения соответствия локального времени точному времени.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

В стандартные дистрибутивы 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 начиная с версии 4.8.5.

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

  • Использовать локальные аппаратные источники точного времени;
  • Выносить службу ntp на сервер межсетевого экрана, чтобы она имела открытый порт 123 с выходом в Интернет;
  • Использовать ручную или автоматическую принудительную коррекцию времени с помощью команды ntpdate (см. ниже);
  • Использовать серверную службу openntpd (см. ниже);
  • Использовать клиентскую службу systemd-timesyncd (см. ниже);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

sudo apt install fly-admin-ntp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • первый символ в строке - статус выбора:
    • * — выбранный север времени;
    • + —новый сервер;
    • o — PPS-источник (источник секундных импульсов);
    • пробел — не работающий источник;
    • — x и др. — «забракованные» (ненадежные) источники.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    server <IP_адрес_сервера_1>
    server <IP_адрес_сервера_2>

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

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

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

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

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

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

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

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

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

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

    sudo timedatectl set-ntp false

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

    sudo timedatectl set-ntp true

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

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

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

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

    sudo timedatectl status

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

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

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

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

    /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. По умолчанию список пустой.

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

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

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


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

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

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

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

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

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

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

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


    Более того: некоторые из нас одержимы временем. Мои часы питаются от солнечной энергии и получают точное время из Национального института стандартов и технологий (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-сервера.

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

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

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

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

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

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

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


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


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

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

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

    Обычно вы указываете часовой пояс во время процедуры установки, и у вас нет задачи менять его в дальнейшем. Однако бывают случаи, когда необходимо изменить часовой пояс. Есть несколько инструментов, которые могут помочь. Для определения местного часового пояса хоста Linux использует файлы часовых поясов. Эти файлы находятся в каталоге /usr/share/zoneinfo. По умолчанию для моего часового пояса система прописывает вот это: /etc/ localtime -> ../usr/share/zoneinfo/America/New_York. Но вам не нужно знать такие тонкости, чтобы изменить часовой пояс.

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


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


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

    systemd-timesyncd

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

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

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


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

    Запуск timesync

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

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

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


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

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

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


    Опция --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, удобная панель управления собственной разработки и посуточная оплата. Напомним, у нас есть вечные серверы, которые точно неподвластны времени ;)

    Linux синхронизация времени NTP

    Часы в компьютере далеко не идеальны. Через несколько дней, недель или месяцев они перестают отображать правильное время. Они могут показывать «10:30», тогда как на самом деле «10:33». На старых компьютерах было обычной практикой периодически переустанавливать часы компьютера вручную. Но после того, как интернет-соединения стали повсеместными, современные операционные системы начали автоматически настраивать часы с помощью NTP-серверов.

    В статье я покажу, как синхронизировать время в Linux в дистрибутивах Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro, CentOS, Elementary ОС, Zorin OS и т.д.

    Синхронизация времени в Linux и NTP

    Как включить синхронизацию времени в Linux

    К счастью, большинство Linux-дистрибутивов по умолчанию синхронизируют время. Если вы не замечали, что часы вашего компьютера расходятся с часами телефона, тогда наверняка ваш дистрибутив использует NTP-клиент / демон.

    Синхронизировать время в Linux с systemd

    В большинстве дистрибутивов Linux используется systemd, а вместе с ним и демон systemd-timesyncd. Это означает, что у вас уже есть NTP-клиент, предварительно установленный в Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro и других. На этих дистрибутивах (и других основанных на них, например, Elementary ОС, Zorin OS) чтобы проверить, включена ли синхронизация NTP запустите команду:

    Ntp Linux Проверка статуса Ntp на ОС Systemd

    Если вы видите Network time on: no , выполните следующую команду, чтобы включить синхронизацию времени NTP.

    Это все, что вам нужно сделать в этих дистрибутивах.

    Синхронизировать время в Linux без systemd

    Для примера возьмем MX Linux. Запуск команды timedatectl показывает, что сетевое время включено, но systemd-timesyncd не используется. Как же синхронизировать время в таких дистрибутивах без systemd?

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

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

    Синхронизация времени Linux проверка Ntp Client

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

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

    Если по какой-то причине вы хотите установить ntp или ntpdate в операционных системах с systemd, сначала отключите ntp-клиент systemd.

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

    Установить клиент ntpdate

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

    На Debian, Ubuntu, Linux Mint, Zorin и других дистрибутивах, основанных на них, запустите:

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

    В Fedora ntpdate устарела, поэтому рекомендуется вместо этого использовать демон ntpd (см. Следующую главу). То же самое рекомендуется для всех других дистрибутивов по двум причинам:

    • Иногда они не включают ntpdate в отдельный пакет, а связывают его с ntpd из следующего раздела.
    • Они не автоматизируют запуск ntpdate автоматически при каждом сетевом подключении. Вы должны вставить ntpdate самостоятельно в скрипт, который автоматически запускается после подключения к сети.

    В этом случае имеет смысл установить ntpd, как указано в следующей главе.

    Установить ntpd Daemon

    В Debian, Ubuntu, Zorin, Mint и других дистрибутивах, основанных на Debian или Ubuntu, запустите:

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

    Читайте также: