Синхронизация времени Ubuntu 12.04
Cloud Server, Ubuntu | Комментировать запись
Что такое 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: Cloud Server, Linux, NTP, Ubuntu, Ubuntu 12.04