Синхронизация времени с помощью NTP

NTP или Network Time Protocol — это сетевой протокол для синхронизации всех системных часов через сетевое соединение. NTP-клиент запрашивает время у общедоступного NTP-сервера, а затем использует ответ сервера для корректировки локальных часов. Для синхронизации используется UDP-порт 123.

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

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

  • корректность процедур, связанных с совершением транзакций, работой c сертификатами, работой c электронной подписью;

  • возможность находить внутренние инциденты и контролировать нарушения безопасности в компьютерной сети;

  • согласованность информации о времени событий в операционной системе или приложениях, доступной в логах;

  • возможность хранить точную информацию о времени, если есть такое требование.

На виртуальных машинах ECS можно настроить синхронизацию с общедоступными серверами времени по протоколу NTPv4:
  • Для ВМ под управлением ОС Windows нужно указать три рекомендуемых сервера в настройках синхронизации времени.

  • На ВМ под управлением OC на основе Linux нужно включить DHCP-клиент с опцией 42, Network Time Protocol Servers (опция позволяет автоматически применять список серверов синхронизации, отправляемый сервером DHCP).

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

Порядок настройки:

  1. В виртуальной машине ECS откройте UDP-порт 123 в настройках группы безопасности.

  2. Подключитесь к виртуальной машине.

  3. Произведите настройку синхронизации времени:

Примечание

Сервис systemd-timesyncd не работает вместе с инструментами ntpd и chronyd, если они запущены одновременно. Если эти инструменты уже установлены, то воспользуйтесь ими или удалите их.

  1. Укажите запасные серверы в файле /etc/systemd/timesyncd.conf, в секции Time в параметре FallbackNTP=. Ниже приведен пример:

    FallbackNTP=ntp.sbercloud.ru
    
  2. Задайте параметр UseNTP=true в конфигурационном файле сервиса «systemd.network». Чаще всего он находится в каталоге /etc/systemd/network или /var/lib/systemd/network.

  3. Включите и перезапустите службу systemd-timesyncd:

    sudo systemctl restart systemd-timesyncd.service
    
  4. Проверьте статус синхронизации часов.

    timedatectl
    

В строке System clock synchronized должно отображаться yes.

Если после настройки системное время не синхронизируется:

  • Убедитесь, что правила группы безопасности разрешают исходящие подключения на порт 123 по протоколу UDP.

  • Проверьте корректность настройки, которую вы выполнили выше.

  • Убедитесь, что служба запущена.

Масштабная конференция
GoCloud 2024:
облачные грани будущего