Jump to content

# systemd-timesyncd (Русский)

10 languages

- Deutsch
- English
- Español
- Français
- Magyar
- 日本語
- Polski
- Português
- Türkçe
- 中文（简体）

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи systemd-timesyncd. Дата последней синхронизации: 2 декабря 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- systemd-networkd (Русский)
- systemd (Русский)
- Время

Из списка рассылки systemd:

  systemd-timesyncd — это демон для синхронизации системных часов по сети. Это реализация клиента SNTP. В отличие от других более сложных реализаций NTP, таких как chrony или эталонный сервер NTP, этот демон реализует только клиентскую часть и фокусируется только на запросе времени с одного удаленного сервера и синхронизации локальных часов с ним. Если вы не планируете предоставлять NTP клиентам по сети или подключаться к локальным аппаратным часам, этого простого NTP-клиента должно быть достаточно для большинства установок. Демон запускается с минимальными привилегиями и связан с networkd, чтобы работать только при наличии сетевого подключения. Демон сохраняет текущее время при каждой синхронизации и использует его для возможной коррекции системных часов при загрузке, что позволяет работать на системах без аппаратных часов, таких как Raspberry Pi и embedded-устройства, и обеспечивать монотонное течение времени на этих системах, даже если оно не всегда правильное. Для использования этого демона при установке systemd нужно создать нового системного пользователя и группу «systemd-timesync».

## Настройка

Запустите/включите службу `systemd-timesyncd.service`, которая предоставляется пакетом systemd.

При запуске systemd-timesyncd считывает файл настроек `/etc/systemd/timesyncd.conf`, который выглядит примерно так:

    /etc/systemd/timesyncd.conf

    [Time]
    #NTP=
    #FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
    #...

Чтобы добавить серверы времени или изменить стандартные, раскомментируйте соответствующую строку и пропишите имена хостов или IP-адреса через пробел. Также можно добавить сниппет в `/etc/systemd/timesyncd.conf.d/*.conf`; смотрите timesyncd.conf(5).

Например, можно использовать серверы, предоставляемые проектом NTP pool, или стандартные серверы Arch (которые тоже предоставляются проектом NTP pool):

    /etc/systemd/timesyncd.conf или /etc/systemd/timesyncd.conf.d/local.conf

    [Time]
    NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
    FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org

Проверка настроек:

    $ timedatectl show-timesync --all

    LinkNTPServers=
    SystemNTPServers=
    FallbackNTPServers=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
    ServerName=0.arch.pool.ntp.org
    ServerAddress=103.47.76.177
    RootDistanceMaxUSec=5s
    PollIntervalMinUSec=32s
    PollIntervalMaxUSec=34min 8s
    PollIntervalUSec=1min 4s
    NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-21, RootDelay=177.398ms, RootDispersion=142.196ms, Reference=C342F10A, OriginateTimestamp=Mon 2018-07-16 13:53:43 +08, ReceiveTimestamp=Mon 2018-07-16 13:53:43 +08, TransmitTimestamp=Mon 2018-07-16 13:53:43 +08, DestinationTimestamp=Mon 2018-07-16 13:53:43 +08, Ignored=no PacketCount=1, Jitter=0 }
    Frequency=22520548

Помимо настроек, серверы NTP могут предоставляться через опцию `NTP=` в настройках systemd-networkd или динамически через DHCP-сервер.

Используемый NTP-сервер будет определяться с помощью следующих правил:

- Приоритет имеют любые NTP-серверы, полученные для конкретного интерфейса из настроек systemd-networkd.service(8) или через DHCP.
- Серверы NTP, указанные в файле `/etc/systemd/timesyncd.conf`, будут добавлены к списку серверов каждого каждого интерфейса во время работы, и демон будет обращаться к ним по очереди, пока какой-нибудь сервер не ответит.
- Если после этого рабочий сервер не найдётся, будут использоваться серверы из настройки `FallbackNTP=`.

Примечание: При каждой синхронизации служба записывает данные в локальный файл `/var/lib/systemd/timesync/clock`. Этот путь нельзя изменить. Это может стать проблемой при работе с корневым разделом, доступным только для чтения, или при попытках минимизировать запись на SD-карту.

## Использование

Для включения и запуска просто выполните:

    # timedatectl set-ntp true

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

    $ timedatectl status

                   Local time: Чт 2015-07-09 19:21:33 MSK
               Universal time: Чт 2015-07-09 16:21:33 UTC
                     RTC time: Чт 2015-07-09 16:21:33
                    Time zone: Europe/Moscow (MSK, +0300)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no

Более подробная служебная информация:

    $ timedatectl timesync-status

           Server: 103.47.76.177 (0.arch.pool.ntp.org)
    Poll interval: 2min 8s (min: 32s; max 34min 8s)
             Leap: normal
          Version: 4
          Stratum: 2
        Reference: C342F10A
        Precision: 1us (-21)
    Root distance: 231.856ms (max: 5s)
           Offset: -19.428ms
            Delay: 36.717ms
           Jitter: 7.343ms
     Packet count: 2
        Frequency: +267.747ppm

## Смотрите также

- Forum: systemd-timesyncd is not syncing time
- Forum: Using systemd-timesync instead of NTP
- Исходный код timesyncd
- systemd-timesyncd(8)
- timesyncd.conf(5)

Category:

- Network Time Protocol (Русский)