Вход для пользователей

Настройка синхронизации времени

Изображение пользователя Grifon.

Сегодня я расскажу, как можно настроить синхронизацию времени в локальной сети.
Для этого нам понадобится сервер. На нём будет установлен демон ntpd, который слушает порт 123 и выдаёт время клиентам.
Приступим.

Сервер

Установим сервер и необходимые утилиты. Они, как правило содержатся в пакете ntp, входящий во все популярные дистрибутивы.

Для slackware это будет выглядеть примерно так:
installpkg /path/to/ntp-4.2.4p0-x86_64-1
Для SUSE:
zypper
Для клонов Red-Hat:
yum install ntp

Да что я вам объясняю, как ставить, вы, наверно, сами прекрасно знаете!
Далее идёт настройка. Файл конфигурации /etc/ntp.conf

#Запрещаем всем всё
restrict default nomodify notrap noquery
#Разрешаем клиентам локальной сети делать запросы
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
#Разрешаем себе всё
restrict 127.0.0.1

# Задаём 3 сервера для синхронизации (чем больше, тем точнее,
# это важно. 3 - минимум). Минимальный период опроса 2^10 сек
server 0.pool.ntp.org minpoll 10
server 1.pool.ntp.org minpoll 10
server 2.pool.ntp.org minpoll 10

#оставляем некоторые параметны по умолчанию
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys            /etc/ntp/keys

Запускаем сервер ntpd принятым для дистрибутива способом, например
service ntpd start
Для того, чтобы сервер заработал в штатном режиме должно пройти некоторое время. После этого клиенты будут ему доверять.

Клиент.

Для синхронизации клиента можно использовать тот же ntpd, но зачем нам лишний сервер? Есть утилита ntpdate. Будем использовать её.
Вот скриншот для Linux:

А в Windows это делается так:

Но не будем же мы постоянно самостоятельно устанавливать время. Для этого есть планировщик заданий.Создадим конфигурационный файл:

echo "NTPSERVER=ntpserver.localnet" > /etc/ntpdate.conf

Отредактируем /etc/cron.daily/timesync:

#!/bin/sh

if [ -f /etc/ntpdate.conf ]; then
  . /etc/ntpdate.conf

  if [ -n "$NTPSERVER" ]; then
    # о результате отпишется в системный журнал и будет
    # использовать не превилигированные порты для исходящих пакетов
    /usr/sbin/ntpdate -s -u $NTPSERVER 2>&1 >/dev/null
    # устанавливаем время на мат. плате в соответствие с системным
    /sbin/hwclock --systohc 2>&1 >/dev/null
  fi
fi

И всего-то делов.

Комментарии

Изображение пользователя D3viL.

ntpq -p

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".