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

Что такое NTP?

Для корректной работы каждому виртуальному серверу необходимы часы. Пользователь может узнать время сервера при помощи команды date; кроме того, можно изменить часовой пояс сервера с помощью команды export TZ.

Конечно, встроенные часы необходимы для отслеживания событий на самом сервере, но именно они могут стать причиной определенных сбоев и проблем в случае взаимодействия виртуального сервера с другими машинами. На самом деле, это создает серьезные неудобства: письма, отправленные с сервера, часы которого идут неверно, будут приходить адресату в совсем другое время, а пользователи, имеющие доступ только в определенное время суток, могут быть заблокированы из-за временного рассогласования.

Это можно исправить при помощи NTP – сетевого протокола синхронизации времени, клиенты которого могут запрашивать согласованное текущее время, чтобы использовать его для установки своих собственных часов. Для этого нужно установить на сервер демон ntp – программу, которая будет автоматически корректировать время сервера согласно NTP.

Еще один способ синхронизации времени – утилита ntpdate которая автоматически синхронизирует время на сервере согласованным. Тем не менее, ntpdate не следует применять регулярно, потому что она синхронизирует время виртуального сервера очень быстро, а это может стать причиной «прыжка во времени» и вызвать сбои в чувствительном ко времени программном обеспечении. Потому рекомендуется использовать эту утилиту всего один раз – перед установкой NTP, поскольку NTP может вообще не запуститься, если время сервера сильно отличается от согласованного.

sudo ntpdate pool.ntp.org

Для корректной работы NTP нужно открыть порт 123.

1: Установка демона NTP

Самый простой способ синхронизации часов сервера – установка демона Network Time Protocol.

Его можно быстро скачать при помощи стандартного менеджера пакетов apt-get:

sudo apt-get install ntp

2: Настройка NTP-сервера

После установки программы откройте конфигурационный файл:

sudo nano /etc/ntp.conf

Найдите в нем раздел, содержащий серверы точного времени pool ntp. Этот раздел выглядит так:

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

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

ntpq -p

Через некоторое время после установки ntp эта команда покажет что-то вроде:

remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-mail.fspproduct 209.51.161.238   2 u   50  128  377    1.852    2.768   0.672
*higgins.chrtf.o 18.26.4.105      2 u  113  128  377   14.579   -0.408   2.817
+mdnworldwide.co 108.71.253.18    2 u   33  128  377   47.309   -0.572   1.033
-xen1.rack911.co 209.51.161.238   2 u   44  128  377   87.449   -5.716   0.605
+europium.canoni 193.79.237.14    2 u  127  128  377   75.755   -2.797   0.718

Серверы pool ntp расположены по всему миру, потому иногда синхронизация и поддержка времени виртуального сервера может быть неидеальной. Чтобы улучшить качество синхронизации, нужно задать ntp континентальную зону (например, europe, north-america, oceania или asia), ограничив таким образом количество подходящих серверов pool ntp. Наиболее оптимальным решением является использование зоны, которая соответствует стране, например:

us.pool.ntp.org <-США
ru.pool.ntp.org <-Россия
ua.pool.ntp.org <-Украина

Внеся в конфигурационный файл всю необходимую информацию, перезапустите ntp:

sudo service ntp restart

Готово! Теперь NTP будет проверять время сервера и корректировать его в случае необходимости.

Tags: , , , ,

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