Как синхронизировать время с сетью с помощью timedatectl на Ubuntu 18.04?

Вопрос или проблема

Я установил операционную систему, и время некорректно.

Команда timedatectl показывает:

       Системные часы синхронизированы: нет
systemd-timesyncd.service активно: да
                 RTC в локальном часовом поясе: нет

Как принудительно синхронизировать это сейчас?

Согласно man timedatectl, необходимо включить NTP-синхронизацию:

sudo timedatectl set-ntp true

После этого команда timedatectl должна выполнить остальное автоматически (см. ответ Redbob).

Если команда timedatectl не показывает “Системные часы синхронизированы: да”, проверьте статус systemd-timesyncd:

systemctl status systemd-timesyncd

и перезапустите его:

sudo systemctl restart systemd-timesyncd

Проверьте статус timedatectl снова:

$ timedatectl
...
       Системные часы синхронизированы: да
systemd-timesyncd.service активно: да
                 RTC в локальном часовом поясе: нет

У меня это сработало, когда я отредактировал /etc/systemd/timesyncd.conf, потому что нижеприведенные строки были закомментированы.
Я раскомментировал их и изменил строки NTP и FallbackNTP на свои сетевые серверы:

[Time]
NTP=172.24.3.1
FallbackNTP=172.24.44.51
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

После этого я перезапустил systemd-timesyncd.service, и статус Системные часы синхронизированы изменился на да

Синхронизация системных часов зависит от множества факторов:

  1. должна быть включена NTP-синхронизация timedatectl
  2. /etc/systemd/timesyncd.conf должен быть правильно настроен
  3. systemd-timesyncd может потребоваться разомкнуть маску
  4. systemd-timesyncd должен работать и быть перезапущен после изменений (включая изменения в /etc/systemd/timesyncd.conf или изменения маскировки)

Чтобы включить NTP-синхронизацию timedatectl:

$ sudo timedatectl set-ntp true

Я заметил, что /etc/systemd/timesyncd.conf отличается на разных установках Ubuntu. На некоторых установках раздел [Time] в /etc/systemd/timesyncd.conf закомментирован.

  • Минимум, раскомментируйте NTP и RootDistanceMaxSec в /etc/systemd/timesyncd.conf
  • RootDistanceMaxSec может потребоваться увеличить (например, до 30, см. этот пост на StackExchange)

/etc/systemd/timesyncd.conf:

...
[Time]
NTP=192.168.1.1
FallbackNTP=ntp.ubuntu.com
RootDistanceMaxSec=30
PollIntervalMinSec=32
PollIntervalMaxSec=2048

Снимите маску с systemd-timesyncd:

sudo systemctl unmask systemd-timesyncd

Перезапустите systemd-timesyncd после изменений и проверьте его статус:

sudo systemctl restart systemd-timesyncd
systemctl status systemd-timesyncd

systemd-timesyncd должен быть включен и активен (работает):

● systemd-timesyncd.service - Синхронизация сетевого времени
     Загружено: загружено (/lib/systemd/system/systemd-timesyncd.service; включено; предустановлено производителем: включено)
     Активно: активно (работает) с Сб 2024-08-31 14:52:32 EDT; 1 месяц 14 дней назад
     ...

Теперь команда timedatectl должна показывать, что системные часы синхронизированы:

$ timedatectl
               Локальное время: Вт 2024-10-15 05:19:07 EDT
           Всемирное время: Вт 2024-10-15 09:19:07 UTC
                 Время RTC: Вт 2024-10-15 09:19:06
                Часовой пояс: Америка/Кентукки/Монтситчелло (EDT, -0400)
Системные часы синхронизированы: да
              NTP сервис: активен
          RTC в локальном часовом поясе: нет

Ответ или решение

Как синхронизировать время в сети с помощью команды timedatectl на Ubuntu 18.04

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

Шаг 1: Проверка текущих настроек времени

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

timedatectl

Вы увидите информацию о текущем системном времени и статусе синхронизации. Например:

       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Если зафиксировано значение "System clock synchronized: no", это означает, что время на вашем устройстве не синхронизируется.

Шаг 2: Включение синхронизации времени

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

sudo timedatectl set-ntp true

Эта команда активирует функцию NTP (Network Time Protocol), которая позволяет вашему устройству автоматически синхронизировать время по сети.

Шаг 3: Проверка состояния службы systemd-timesyncd

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

systemctl status systemd-timesyncd

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

sudo systemctl restart systemd-timesyncd

После перезапуска проверьте статус службы ещё раз:

systemctl status systemd-timesyncd

Убедитесь, что служба активна и работает.

Шаг 4: Настройка файла конфигурации

Если после выполнения вышеуказанных шагов синхронизация времени всё ещё не работает, проверьте файл конфигурации timesyncd:

sudo nano /etc/systemd/timesyncd.conf

Здесь вам следует убедиться, что раздел [Time] не закомментирован и НTP-серверы указаны корректно. Базовая конфигурация может выглядеть следующим образом:

[Time]
NTP=pool.ntp.org
FallbackNTP=ntp.ubuntu.com
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

Не забудьте сохранить изменения и выйти из редактора.

Шаг 5: Включение службы, если она была заблокирована

Иногда служба может быть заблокирована (masked). Для её разблокировки используйте следующую команду:

sudo systemctl unmask systemd-timesyncd

После этого снова перезапустите службу:

sudo systemctl restart systemd-timesyncd

Шаг 6: Проверка исправления проблем

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

timedatectl

Ожидайте увидеть следующее:

System clock synchronized: yes

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

Заключение

Следуя этим шагам, вы сможете настроить синхронизацию времени на вашем устройстве с Ubuntu 18.04, используя timedatectl и systemd-timesyncd. Убедитесь, что настройки времени корректны и служба активно работает. Если у вас возникли дополнительные вопросы или проблемы, вы всегда можете обратиться к документации Ubuntu или сообществу для получения дополнительной помощи.

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

Капча загружается...