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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Сегодня я расскажу, как можно настроить синхронизацию времени в локальной сети. Для этого нам понадобится сервер. На нём будет установлен демон 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. Будем использовать её.

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

       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


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

Установка времени в Ubuntu осуществляется командой

       ntpdate ***.***.***.***

А в Windows в графике где часы там находим свойства и пишем IP сервера времени (локального).