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

Автор: | 06.10.2020

Обычно для синхронизации времени используется утилита ntpd, но есть и другой способ. Это использовать утилиту systemd-timesyncd, займемся ее настройкой.

Использование ntpd упоминалось в этой статье, там все просто и понятно. Если ваши системные часы отстали, то ставите пакет ntp. Если нужно, то настраиваете конфиг /etc/ntp.conf, запускаете службу:

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

Утилита ntpd позволяет как принимать время с удаленного сервера так и выступать в качестве сервера времени для других. Обычно такой функционал не нужен, к тому же он может быть не безопасен из-за неправильной настройки ntpd (NTP amplification attack (CVE-2013-5211)).

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

Перед ее включением нужно удалить утилиты ntpd, ntpdate и ntpstat:

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

В нем прописаны бинарники, при наличии которых утилита systemd-timesyncd не будет работать.

Далее, пропишем в файл конфигурации список удаленных серверов, с которых будем получать время:

, а также зададим список резервных серверов времени:

Чтобы проверить текущий статус синхронизации часов:

Включим использование утилиты systemd-timesyncd:

Теперь включим и перезагрузим службу:

Смотрим статус:

В общем на этом все, теперь через несколько минут можно проверить состояние синхронизации:

Если ждать лень, то можно выключить и включить утилиту:

и время синхронизируется сразу.

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

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

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