На днях я обнаружил, что на домашнем сервере время убежало вперёд аж на 15 минут. Я был удивлён этим фактом, так как думал что в Linux происходит автоматическая синхронизация времени с NTP-серверами. В общем так оно и есть, но почему-то в Ubuntu 9.04 «Jaunty Jackalope» в конфигурационном файле /etc/default/ntpdate было указано:

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes


Что означает, что нужно смотреть список серверов в файле /etc/ntp.conf, который появляется только после установки пакета ntp.

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



Из сложившейся ситуации я вижу как минимум два выхода:

  1. Установить пакет ntp;
  2. Исправить значение параметра с «yes» на «no».

В первом случае на сервере будет установлен NTP-сервер и появиться возможность синхронизировать время всех локальных компьютеров с ним (внеся изменения в параметр NTPSERVERS в файле /etc/default/ntpdate на компьютерах-клиентах). Этот вариант я и выбрал:

sudo aptitude install ntp

Для домашней и корпоративной сети обновляться можно с серверов уровня 2 (stratum 2), которые в свою очередь синхронизируются с серверами уровня 1, а те в свою очередь сверяются с высокоточными часами, например, с системой GPS, ГЛОНАСС или атомным эталоном времени.

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

ntpdate -q ntp.ubuntu.com

где

ntp.ubuntu.com — сервер, указанный по-умолчанию в Ubuntu. Вместо него этой команде можно передать имя любого другого NTP-сервера, или его IP-адрес.

Ответ будет примерно таким:

ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset -0.015269, delay 0.08423
20 Jul 07:44:10 ntpdate[2915]: adjust time server 91.189.94.4 offset -0.015269 sec

Для настройки NTP-сервера используется конфигурационный файл /etc/ntp.conf.

Для добавления дополнительных NTP-серверов вставьте строки в формате «server “address”». Мой список серверов выглядит так:

# You do need to talk to an NTP server or two (or three).
server ntp21.imvp.ru
server ntp.ubuntu.com


После внесения изменений в файл /etc/ntp.conf необходимо перезапустить NTP:

sudo /etc/init.d/ntp restart

Так как NTP использует 123 udp-порт для соединения с NTP сервером, то может понадобиться добавить правила в фаервол:

# NTP outgoing client request
iptables -A output -p udp -s 192.168.1.1 --sport 1024:65535 -d 0/0  --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A input -p udp -s 0/0 --sport 123 -d 192.168.1.1  --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Теперь NTP-сервер настроен и с ним можно сверяться.

Случайные записи

Leave a Reply