- Вопрос или проблема
- Ответ или решение
- Как синхронизировать время в сети с помощью команды timedatectl на Ubuntu 18.04
- Шаг 1: Проверка текущих настроек времени
- Шаг 2: Включение синхронизации времени
- Шаг 3: Проверка состояния службы systemd-timesyncd
- Шаг 4: Настройка файла конфигурации
- Шаг 5: Включение службы, если она была заблокирована
- Шаг 6: Проверка исправления проблем
- Заключение
Вопрос или проблема
Я установил операционную систему, и время некорректно.
Команда 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
, и статус Системные часы синхронизированы
изменился на да
Синхронизация системных часов зависит от множества факторов:
- должна быть включена NTP-синхронизация timedatectl
/etc/systemd/timesyncd.conf
должен быть правильно настроен- systemd-timesyncd может потребоваться разомкнуть маску
- 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 или сообществу для получения дополнительной помощи.