Как настроить ntp клиент linux

Настройка NTP клиента Linux (Ubuntu и Debian)

Если Вы деловой человек, то, думаю, привыкли ценить время. И это не удивительно — время сейчас очень дорого. Поэтому, точность и правильность часов на рабочей машине тоже имеет немаловажное значение. Чтобы системные часы в операционной системе Linux — будь то новомодная Ubuntu или классический Debian — нужно правильно настроить синхронизацию времени. В Линуксе это особенно важно ввиду того, что ведётся система логов.

В этой задаче нам поможет NTP — Network Time Protocol — специальный сетевой протокол,используемый для синхронизации внутренних часов компьютера по сети. Для его работы нам надо установить специальный клиент. Делается это командой:

apt-get install ntp ntpdate

После установки — надо прописать в настройках используемые серверы точного времени. Для этого редактируется файл:
vim /etc/ntp.conf
Вместо имеющихся там адресов НТП-серверов, типа «0.debian.pool.ntp.org», записываем свой список:
server 0.ru.pool.ntp.org iburst dynamic
server 1.ru.pool.ntp.org iburst dynamic
server 2.ru.pool.ntp.org iburst dynamic
server 3.ru.pool.ntp.org iburst dynamic
Это адреса для России. Другие можно посмотреть в списке ntp-серверов здесь.
Проверяем как работает ntp-клиент Linux, для чего в консоли запускаем команду синхронизации:

Если всё работает правильно — получим ответ:
1 Jun 10:55:02 ntpdate[10644]: step time server 79.120.77.217 offset -168.310442 sec
Из этого можно увидеть, что системные часы отстают на 168сек. Чтобы это исправить наберите команду:

Теперь системные часы в Линукс откорректированы и точны.

Источник

Установка и настройка NTP-клиента в Linux

В статье рассмотрим настройку NTP клиента.

Установка временной зоны

Для начала смотрим какая у нас установлена временная зона. Для этого используем команду date.

Если временная зона установлена неправильно, то устанавливаем правильную временную зону. Для этого создаем симлинк на файл /etc/localtime с соответствующей временной зоны из каталога /usr/share/zoneinfo/. Например для Москвы.

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

Устанавливаем пакет ntp

Для синхронизации локальной клиентской машины на Linux с NTP-сервером требуется отредактировать файл /etc/ntp.conf. В следующем примере указывается несколько серверов времени, что полезно на случай недоступности одного из них. Или можете прописать другие внешние сервера, например pool.ntp.org

iburst: данный параметр повышает точность синхронизации, вместо одного пакета отправляется восемь. Когда сервер не отвечает, пакеты отправляются каждые 16 секунд, когда отвечает – каждые 2 секунды.

Далее нужно указать в файле конфигурации ваш NTP-сервер, который мы настроили в предыдущей статье. Если у вас в сети нет своего ntp сервера, то этот параметр указывать не нужно.

prefer: если указана данная опция, заданный сервер считается предпочтительным перед остальными, но если ответ этого сервера будет значительно отличаться от ответов остальных серверов, он будет игнорироваться. Вместо 192.168.1.1 укажите ip адрес вашего сервера

Запуск службы NTP

После изменения ntp.conf и задания необходимых параметров запустите службу (демон) NTP. В зависимости от настроек, она может работать и как сервер, и как клиент.

и добавьте его в автозагрузку

для проверки времени наберите команду

Проверка состояния NTP

Проверить состояние NTP можно при помощи команды ntpq. Если вы получите ошибку отказа в соединении, значит, сервер времени не отвечает, не запущена служба NTP на клиенте или закрыт порт.

remote – имя или адрес сервера времени. Перед ним указан служебный символ, в данном случае «*», что означает используемый сервер. «+» означает, что сервер пригоден для обновления, «-» — что непригоден, «x» — сервер недоступен;
refid – вышестоящий в иерархии Stratum сервер;
st – уровень сервера в иерархии Stratum;
t – тип соединения (u – unicast, одиночное соединение, b – broadcast, широковещательное соединение, l – локальные часы);
when – время, прошедшее с момента последнего ответа;
poll – период опроса в секундах;
reach – состояние доступности (при представлении в двоичном виде 1 означает успешную попытку, 0 – сбой. После 8 успешных попыток устанавливается значение 377);
delay – время двойного оборота пакета;
offset – текущее смещение времени относительно сервера;
jitter – среднеквадратичное отклонение времени.

Читайте также:  Как настроить системный таймер

Значение jitter должно быть низким, если это не так, проверьте смещение относительно часов в файле погрешности (driftfile). Если оно слишком велико, может потребоваться смена NTP-сервера. Следующая команда вручную синхронизирует время с NTP-сервером:

Ручная синхронизация времени

Для опроса NTP-сервера и установки даты и времени в ручную используется команда ntpdate. Обычно это требуется только один раз.

Для начала отключите ntp службу

Запустите синхронизацию указав сервер с которого нужно синхронизировать время

Запустите службу ntp

После такой первоначальной синхронизации NTP-клиент будет регулярно опрашивать NTP-сервер для обеспечения соответствия локального времени точному времени.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

NTP сервер на Linux Ubuntu

Следить за актуальностью времени на всех узлах локальной сети удобнее с помощью сервера синхронизации времени NTP. В инструкции рассказано об установке и настройке такого сервера на Linux Ubuntu Server 16.04. Данное руководство можно использовать для настройки ntpd на любом другом Linux (например, Debian или CentOS).

Установка сервера

Устанавливаем ntp сервер следующей командой:

apt-get install ntp

Разрешаем автозапуск и стартуем сервис:

systemctl enable ntp || update-rc.d ntp defaults

systemctl start ntp || service ntp start

Настройка NTP

Открываем файл с настройками:

Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:

pool ru.pool.ntp.org iburst
server ntp2.vniiftri.ru iburst prefer
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
server 127.127.1.0

* iburst — отправлять несколько пакетов (повышает точность); ru.pool.ntp.org / 0.ubuntu.pool.ntp.org / 1.ubuntu.pool.ntp.org — адреса серверов, с которыми наш сервер будет сверять время; server — указывает на выполнение синхронизации с сервером, а не пулом серверов; prefer — указывает на предпочитаемый сервер. server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.

restrict default kod notrap nomodify nopeer noquery
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
restrict ::1

  • restrict default — задает значение по умолчанию для всех рестриктов.
  • kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
  • notrap — не принимать управляющие команды.
  • nomodify — запрещает команды, которые могут вносить изменения состояния.
  • nopeer — не синхронизироваться с хостом.
  • noquery — не принимать запросы.
  • restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
  • IP адреса127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.

Настройки по умолчанию могут быть разные для IPv4 и IPv6:

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

systemctl restart ntp || service restart ntp

Если используется брандмауэр, добавляем правило:

iptables -I INPUT 1 -p udp —dport 123 -j ACCEPT

или с помощью ufw:

ufw allow in on enp2s0 to any port 123 proto udp

* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.

Дополнительные настройки

Настройка файла хранения логов:

Тестирование

Проверить состояние получения эталонного времени можно командой:

Мы должны увидеть, примерно, следующее:

remote refid st t when poll reach delay offset jitter
==============================================================================
ru.pool.ntp.org .POOL. 16 p — 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p — 64 0 0.000 0.000 0.000
*91.189.94.4 17.253.34.253 2 u 58 64 377 55.802 3.790 0.412
-91.189.91.157 132.246.11.231 2 u 56 64 377 113.456 -1.746 0.334
+91.189.89.198 192.53.103.108 2 u 1 64 377 54.595 4.229 0.608
+91.189.89.199 17.253.34.253 2 u 61 64 377 54.061 2.637 0.557

  • remote — адрес сервера времени, с которым синхронизируется наш сервер;
  • refid — вышестоящий сервер (с которым сервер из графы выше получает время);
  • st — уровень сервера (stratum);
  • t — пир (unicast или multicast);
  • when — когда последний раз сверялось время;
  • poll — периодичность синхронизации с этим сервером;
  • reach — состояние работоспособности. Если удалось произвести синхронизации восемь раз в подряд становится равным 377;
  • delay — время задержки;
  • offset — разница между нашим временем и временем на сервере; положительное — наши часы спешат, отрицательное — отстают;
  • jitter — смещение времени на удаленном сервере;
  • * — с этим сервером синхронизирует время наш ntpd;
  • + — сервер можно использовать для сверки часов;
  • — — не рекомендован для синхронизации;
  • x — не доступен.

Проверить отдачу времени сервером можно введя команду на другом Linux:

Читайте также:  Как настроить режим профи на сяоми

Правильный ответ имеет следующий вид:

ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec

* время было рассинхронизировано на 0.017657 секунд.

Отобразить текущее время можно командой:

Если после синхронизации время некорректно, настраиваем правильный часовой пояс:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* московское время (GMT+3).

Настройка клиента Linux

Для клиентов можно выбрать 2 стратегии настройки — с помощью ntp или утилиты ntpdate.

apt-get install ntp

CentOS / Red Hat:

yum install ntp

В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:

Остальные pool и server удаляем или комментируем.

systemctl restart ntp || service restart ntp

ntpdate

Утилита командной строки выполняет разовую синхронизацию. Чтобы автоматизировать процесс, добавляем задание в cron:

0 0 * * * /usr/sbin/ntpdate 192.168.0.15

* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.

Настройка клиента Windows

В командной строке выполняем:

w32tm /config /manualpeerlist:»192.168.0.15,0×8″ /syncfromflags:manual /update

Некоторые ошибки

1. the NTP socket is in use, exiting

Как правило, данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.

Причина: NTP сокет в системе уже занят, как правило, ntpd.

Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.

2. Connection refused

Возникает при попытке выполнить команду ntpq -p.

Причина: нет разрешения на обращение к серверу.

Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.

3. no server suitable for synchronization found

Ошибка появляется при попытке синхронизировать время с другим сервером синхронизации.

Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.

Источник

Network Time Protocol daemon (Русский)

Network Time Protocol является одним из самых распространённых методов для синхронизации системных часов на GNU/Linux с серверами времени в интернете. Он разработан для смягчения последствий переменной задержки в сети и обычно может поддерживать время с точностью до десятков миллисекунд при синхронизации через интернет. Точность в локальных сетях даже лучше, до одной миллисекунды.

The NTP Project предоставляет эталонную реализацию протокола, которая называется просто NTP. Эта статья описывает, как установить и запустить демон NTP: как клиент, так и сервер.

Смотрите Синхронизация времени для информации о других реализациях NTP.

Contents

Установка

Установите пакет ntp . По умолчанию ntpd работает в режиме клиента и не требует дополнительной настройки. Вы можете перейти к разделу #Использование, если вас устраивает стандартный файл конфигурации Arch. Для настройки сервера смотрите #Режим сервера NTP.

Настройка

Основной демон ntpd настраивается в файле /etc/ntp.conf . Смотрите ntp.conf(5) для дополнительной информации.

Подключение к серверам NTP

NTP-серверы выстроены в многоуровневую иерархию; уровни называются слоями (англ. strata). Устройства, которые считаются самостоятельными источниками времени, считаются первичными (stratum 0); серверы, непосредственно подключённые к stratum 0 устройствам, считаются источниками stratum 1; серверы, подключенные к stratum 1 серверам, считаются источниками stratum 2 и так далее.

Важно понимать, что слой сервера не может рассматриваться как показатель его точности или надёжности. Обычно для синхронизации пользовательских машин используются stratum 2 серверы. Если вы ещё не знаете, к каким серверам вы собираетесь подключиться, вам следует выбрать пул серверов, расположенный недалеко от вашего местоположения, из списка серверов на pool.ntp.org (альтернативная ссылка).

Начиная с ntp version 4.2.7.p465-2, Arch Linux использует свой собственный стандартный пул NTP-серверов, который предоставляет the NTP Pool Project (смотрите FS#41700). Измените его под свои нужды, например если вы хотите использовать сервера своей страны:

Опция ‘iburst’ рекомендуется, с ее помощью посылается шквал пакетов, если не удается установить соединение с сервером с первого раза. Напротив, опцию ‘burst’ не используйте никогда без особого разрешения, так как Вы можете попасть в «черный список».

Режим сервера NTP

При настройке своего NTP-сервера проверьте, что у вас включен orphan mode, чтобы в случае пропажи интернета он продолжил обслуживать сеть; включите orphan mode с помощью параметра tos (может настроить до stratum 15), чтобы он никогда не использовался, пока интернет доступен:

Читайте также:  Как настроить резкость на зеркальном фотоаппарате

Затем определите правила, которые позволят клиентам подключиться к вашему сервису (localhost тоже считается клиентом) с помощью команды restrict; в файле уже должна быть примерно такая строка:

Она запрещает всем модифицировать что-либо и предотвращает запрос статуса вашего сервера: nomodify запрещает перенастройку ntpd (через ntpq или ntpdc), а noquery важен для предотвращения дампа статуса ntpd (тоже через ntpq или ntpdc).

Можете также добавить следующие опции:

Если вы хотите изменить что-то из этого, читайте полную документацию по опции «restrict» в ntp.conf(5) , подробные инструкции по ntp и #Использование.

Теперь нужно указать ntpd, какие подключения к Вашему серверу разрешены; если Вы не конфигурируете сервер NTP, следующей строки будет достаточно:

Если Вы желаете принудительно определить адреса по протоколу IPv6, напишите -6 перед IP-адресом или именем хоста (-4 принудительно устанавливает протокол IPv4), например:

Наконец, установите файл-буфер (в котором будет находиться погрешность часов системы) и журнал (лог):

Примерная конфигурация выглядит так:

Использование

По умолчанию пакет настроен на режим клиента и использует отдельные пользователя и группу для избавления от root-прав. При ручном запуске через консоль всегда указывайте опцию -u :

Опция -u используется в двух systemd-службах. Они также используют опцию -g , которая отключает порог (panic-gate). Таким образом они будут синхронизировать время даже если время на NTP-серверах очень сильно отличается от локального системного времени.

Both services are tied to the system’s resolver, and will start synchronizing when an active network connection is detected.

Запуск ntpd при загрузке системы

Включите службу ntpd.service . Смотрите также #Запуск в chroot.

Используйте ntpq для просмотра списка настроенных пиров и статуса синхронизации:

Задержка, смещение и джиттер должны быть отличны от нуля. Серверы, с которыми синхронизируется ntpd, отмечены звёздочкой. Может потребоваться несколько минут, прежде чем ntpd выберет сервер для синхронизации; попробуйте проверить через 17 минут (1024 секунды).

Синхронизация один раз при загрузке

В качестве альтернативы включите службу ntpdate.service для однократной синхронизации (опция -q ) в non-forking режиме (опция -n ) при загрузке системы вместо запуска постоянно работающего демона в фоне. Этот метод не рекомендуется на серверах и в целом на машинах, которые работают без перезагрузки более нескольких дней.

Если синхронизированное время нужно записать в аппаратные часы компьютера, создайте drop-in файл для этой службы:

Советы и рекомендации

Запуск ntpd при подключении сети

ntpd может быть запущен вашим менеджером сети, чтобы демон запускался только при появлении интернета.

Добавьте следующие строки в ваш профиль netctl:

ntpd можно включать/выключать вместе со стартом сетевого соединения с помощью диспетчерских скриптов. Пакет networkmanager-dispatcher-ntpd AUR устанавливает скрипты, настроенные на запуск и остановку ntpd.service одновременно с соединением.

KDE может использовать NTP (ntp должен быть установлен) путём нажатия правой кнопкой мыши по часам и выбору синхронизации даты/времени. Однако при этлм демон ntp должен быть отключен. [2]

Использование ntpd с GPS

Многие статьи предлагают настраивать ntpd на получение времени из GPS через общую память, однако как минимум с версии 4.2.8 появился гораздо более хороший метод. Он подключается напрямую к gpsd, так что gpsd должен быть установлен.

Добавьте следующие строки в /etc/ntp.conf :

Для проверки сперва убедитесь, что gpsd работает:

Затем подождите несколько минут и запустите ntpq -p . Он должен показать, что ntpd общается с gpsd:

Запуск в chroot

Создайте каталог /etc/systemd/system/ntpd.service.d/ (если его ещё нет) и drop-in файл customexec.conf в нём со следующим содержимым:

Затем измените /etc/ntp.conf , прописав пути относительно chroot. Измените:

Создайте необходимое chroot-окружение, чтобы getaddrinfo() работал:

и пропишите bind mount для упомянутых файлов:

Затем перезапустите демон ntpd . После перезапуска вы можете проверить, действительно ли он запустился в chroot, посмотрев, куда ведёт символьная ссылка /proc//root :

Должно ссылаться на /var/lib/ntp вместо / .

Скорее всего придётся немного подождать, чтобы проверить корректность настройки driftfile, так как ntpd пишет и читает не очень часто. Если вы ошиблись, демон отпечатает ошибку в журнале; если всё в порядке, он обновит метку времени. Если вы не наблюдаете ошибок в течение суток и время при этом обновляется, значит всё хорошо.

Ограничение прослушивающих сокетов

Вы можете ограничить сокеты, которые прослушивает ntpd, используя опцию interface:

Источник

Поделиться с друзьями
Инструкции360