Синхронизация времени (NTP)
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su -
для повышения уровня привелегий. Символы '$
' и '#
' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.
Введение
Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью, основанных на коммутации пакетов.
Хотя традиционно NTP использует для своей работы протокол UDP, он также способен работать и поверх TCP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.
NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 200 микросекунд (1/5000 с) и лучше внутри локальных сетей.
NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера и в настоящее время продолжает совершенствование. Текущая версия — NTP 4.
Демон NTP — программа пользовательского уровня, работает постоянно.
NTP использует иерархическую систему «часовых уровней», уровень 1 синхронизован с высокоточными часами, например, система GPS или эталоны времени. NTP уровень 2 синхронизируется с одной из машин уровня 1, и так далее.
Время, представляется в системе NTP 64-битным числом, состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 232 секунд, с теоретической точностью 2-32 секунды. Поскольку шкала времени в NTP повторяется каждые 232 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет).
Более простая реализация этого алгоритма известна как SNTP — простой синхронизирующий сетевой протокол. Используется во встраиваемых системах и устройствах, не требующих высокой точности.
Подробная реализация протокола и системы в целом описана в:
- RFC 778
- RFC 891
- RFC 956
- RFC 958
- RFC 1305
- RFC 2030
NTP не следует путать с daytime protocol RFC 867 или time protocol RFC 868.
Настройка для *nix-систем
Для корректной работы синхронизации времени нам понадобится пакет ntp.
1. Для установки выполняем (если еще не установлено):
# yum install ntp
2. Конфигурируем /etc/ntp.conf: Ищем строки начинающиеся с server и меняем данные на:
server md.pool.ntp.org
server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org
3. Запускаем или перезапускам сервис ntpd:
# service ntpd restart
Теперь Ваши системные часы будут всегда точные.
Настройка для Win-систем
Для Windows систем необходимо выполнить следующую команду:
net time /setsntp:md.pool.ntp.org