Если не работает ntpdate

Сервер NTP работает неправильно

Есть много вопросов о ntp, и все они имеют ту же ошибку: люди, использующие SERVER в пуле ntp и POOL на сервере ntp:

Как говорится в URL-адресе, это POOL . Пытаться

вместо этого или на самом деле использовать сервер, а не пул …

Кроме того, большинство пользователей имеют временные ресурсы в своей сети, чаще всего контроллеры домена Windows. Если это верно для вас, зачем возиться с внешними серверами ntp, когда вы можете использовать внутренний NTP Windows DC …

Не держите ntpdate на своем сервере, если вы используете ntpd!

Учитывая любые причины, почему ваша система дрейфует вовремя, что вы собираетесь делать?

Когда вы сталкиваетесь с проблемами времени в Linux, сначала проверьте любую систему виртуализации – если вы используете VMware / Hyper-V / Xen / KVM / Anything – подумайте о том, что на самом деле является вашим «аппаратным часом» здесь!?! Иногда ваши часы «BIOS» плохо себя ведут, но они настолько же виртуальны, как и ваша сетевая карта (!), Поэтому, если вы используете виртуальные машины, поговорите с вашими коллегами.

Принимая во внимание различие ntpd и ntpd, вкратце: ntpd «обманывает» вашу систему, слегка добавляя доли времени к системному времени (дате), пока локальное системное время не синхронизируется с тем, что говорит ваш источник времени, тогда как ntpdate устанавливает ваше местное время «время сети».

Системное время – это то, что дата команды сообщит вам в Linux. Но есть также hwclock (требуется sudo), который на самом деле является вашим оборудованием или BIOS.

На этот раз – буквально – вам может понадобиться сделать

sudo hwclock —systohc

чтобы установить BIOS / аппаратные / виртуальные часы в системную дату, – говорит ntpd. Если вам нужно делать это чаще, возникает проблема.

Я точно знаю, это относится к Ubuntu, поэтому я предполагаю, что это также относится к Debian. Причина в том, что система может вызывать ntpdate во времени (cron.weekly?), Но когда вы запускаете ntpd, это будет жаловаться! Вы просто не можете запустить ntpdate при запуске ntpd.

Обычно вы устанавливаете ntpd, потому что ему принадлежит файл дрифта, который позволяет ntpd плавно регулировать ваше время, но «со временем» – он может добавить здесь долю секунды и там, но не заставлять перезагружать время, чтобы сказать 30 секунд в будущее – или даже хуже прошлое – потому что вы можете предположить, например, большинство баз данных не любят путешествовать во времени вообще!

И для этого нужен ntpd.

ntpdate – в противоположном – будет быстро исправлять любые временные сдвиги, что может вызвать проблемы с критическими моментами времени – с другой стороны, ntpd добавит несколько миллисекунд в каждую секунду, чтобы все получилось в нужное время «вовремя», не удивительно, что любое приложение, которое глубоко полагаясь на временные отметки с большими скачками во времени или назад. Серьезные базы данных с серьезным контентом полагаются на временные метки (например, mysql / postgres / mariadb).

Таким образом, вы видите, что они оба имеют разные настройки и не могут использоваться вместе.

Источник: http://fliplinux.com/ntp-2.html

NTP-сервер не работает должным образом

Есть много НТП вопросов, и все они имеют ту же ошибку: люди, использующие SERVER на нтп бассейн и бассейн на сервере нтп:

Как говорится в URL-адресе, это POOL. Попробуйте

вместо или фактически использовать сервер, а не бассейн …

Кроме того, большинство людей имеют TimeSource в своей сети , чаще всего контроллеры домена Windows. Если это верно для вас, зачем возиться с внешними серверами ntp, когда вы можете использовать внутренний NTP Windows DC …

Не храните ntpdate на своем сервере, если вы используете ntpd!

Учитывая любые причины, почему ваша система дрейфует вовремя, что вы собираетесь делать?

Когда вы сталкиваетесь с проблемами времени в Linux, сначала проверьте любую систему виртуализации – если вы используете VMware/Hyper-V/Xen/KVM/Anything – подумайте о том, что на самом деле является вашим «аппаратным часом» здесь!?! Иногда ваши часы «BIOS» плохо себя ведут, но они настолько же виртуальны, как и ваша сетевая карта (!), Поэтому, если вы используете виртуальные машины, поговорите с вашими коллегами.

Учитывая различие ntpd и ntpd, вкратце: ntpd «обманывает» вашу систему, слегка добавляя доли времени к системному времени (дате), пока локальное системное время не синхронизируется с тем, что говорит ваш источник времени, тогда как ntpdate быстро устанавливает местное время «время сети».

Системное время – это то, что сообщит вам дата команды в Linux.Но есть также hwclock (требуется sudo), который на самом деле является вашим аппаратным a.k.a BIOS-часами.

На этот раз – в буквальном смысле – вы, возможно, потребуется сделать

sudo hwclock —systohc

, чтобы установить BIOS/оборудование/виртуальные часы на сегодняшний день системы – то, что пЪрд говорит. Если вам нужно делать это чаще, возникает проблема.

Я точно знаю, что это относится к Ubuntu, поэтому я предполагаю, что это также относится к Debian. Причина в том, что система может вызывать ntpdate во времени (cron.weekly?), Но когда вы запускаете ntpd, это будет жаловаться! Вы просто не можете запустить ntpdate при запуске ntpd.

Обычно вы устанавливаете ntpd, потому что ему принадлежит дрифт-файл, который позволяет ntpd плавно корректировать ваше время, но «со временем» – он может добавить здесь долю секунды и там, но не заставлять сбросить время, чтобы сказать 30 секунд в будущем – или даже хуже прошлое – потому что вы можете предположить, например, большинству баз данных не нравятся путешествия во времени вообще!

И вот для чего предназначен ntpd.

ntpdate – в противоположном – будет быстро исправлять любые временные сдвиги, что может вызвать проблемы с критическими моментами времени – с другой стороны, ntpd добавит несколько миллисекунд в каждую секунду, чтобы все получилось в нужное время «вовремя», не удивительно, что любое приложение, которое глубоко полагаясь на временные отметки с большими скачками во времени или назад. Серьезные базы данных с серьезным контентом полагаются на отметки времени (например, mysql/postgres/mariadb).

Итак, вы видите, что они оба имеют разные настройки и не могут использоваться вместе.

Источник: https://unix.stackovernet.com/ru/q/34054

Как настроить локальный NTP-сервер?

Вот хорошее руководство для форумов Ubuntu: Ссылка

Flagrant copy-pasta:

HOWTO: настройка сервера NTP

В этом руководстве описано, как настроить ваш компьютер как локальный сервер протокола сетевого времени (NTP) и / или как использовать демон NTP для регулярного поддержания точного системного времени.

Что такое NTP?

Протокол сетевого времени (NTP) – это протокол, предназначенный для точной синхронизации локальных часов времени с сетевыми серверами времени. Сеть временных серверов NTP настроена как иерархическая, так что любой пользователь может ввести систему в качестве сервера на некотором уровне (более подробную информацию см. На странице Википедии).

Иерархия NTP разделяется на разные уровни, называемые тактовыми числами. Самый точный уровень, Stratum 0, зарезервирован для атомных часов и т. Д. Следующий уровень, Stratum 1, обычно используется сетевыми машинами, локально связанными с часами Stratum 0. Stratum 2 … 15 – это машины NTP, которые, в свою очередь, подключены к нижним уровням и друг к другу.

В этом руководстве описывается, как точно синхронизироваться с машинами Stratum 1 и 2, и поддерживать как можно точнее системные часы в течение всего дня. Разделы также включены в раздел о том, как разрешить вашей машине работать в качестве сервера Stratum 2/3 для других компьютеров в вашей локальной сети.

Нужно ли мне делать NTP-сервер?

Нет … абсолютно нет! Если вас устраивают часы в вашей сети, имеющие какое-то неизвестное отличие от стандартного времени (и друг друга), вам не нужно настраивать NTP-сервер. Я установил его на свой ноутбук, чтобы синхронизировать несколько компьютеров в локальной сети внутри & lt; 1 мс для эксперимента по биоинженерии. Существуют и другие другие преимущества, которые описаны ниже.

Мотивация:

Регулярно немодифицированные блоки Ubuntu используют ntpdate ( /usr/sbin/ntpdate ) для синхронизации часов с некоторым внешним сервером времени. Этот подход синхронизирует часы с разрешением курса (обычно один раз в день).

Компьютерные часы несовершенны и будут дрейфовать с (правильного) сервера времени в течение дня.

Кроме того, скорости дрейфа в часах разных компьютеров различаются, так что к концу дня могут существовать значительные различия между различными локально сетевыми машинами, которые могут мешать определенным операциям (например, когда-либо когда-либо создавались make-файлы при перемещении исходного кода среди разные машины?).

Можно запустить демон NTP локально на компьютере в вашей сети. Это имеет несколько преимуществ: во-первых, демон NTP постепенно «учит» скорость дрейфа вашей локальной машины и может исправить ее в течение дня.

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

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

В дополнение к поддержанию точных системных часов, демон NTP позволяет машине в вашей сети (если хотите) работать как сервер времени NTP.

Это позволит другим машинам локальной сети синхронизировать с вашим сервером времени LAN очень быстрым и точным образом, так как сетевая латентность сведена к минимуму.

Таким образом, различия в часах между машинами в вашей сети сохраняются как можно меньше. Mac и даже окна Windows также могут синхронизироваться с сервером NTP, если вы установите один из них.

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

Кроме того, ntpdate устарел в пользу использования флага -q для ntpd (который имитирует его функциональность).

Таким образом, даже если вы не хотите постоянно запускать ntpd в фоновом режиме, ntpdate в конечном итоге будет заменен на ntpd, поэтому вы можете захотеть ознакомиться с ним сейчас

Читайте также:  Доступ к сайту по sftp вместо обычного ftp с ограничением директории

Как поддерживать точные системные часы с помощью ntpd

Сначала установите демон NTP (ntpd):

sudo aptitude install ntpd

Как уже упоминалось ранее, ntpd может действовать как клиент (синхронизация вашего системного времени) и как сервер (обеспечивая точное время для других машин).

Кроме того, вы также можете удалить предыдущую (устаревшую) программу синхронизации времени, ntpdate. Возможно, было бы разумнее сделать это после работы ntpd

sudo aptitude remove ntpdate

  1. Правильно настройте демона

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

Первый раздел, который вы хотите изменить, – это список серверов для синхронизации. Раздел по умолчанию, вероятно, выглядит следующим образом:

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

Чтобы получить максимально точное время, рекомендуется общаться с несколькими различными серверами NTP и максимально приближать их к вашему физическому местоположению. В Интернете есть разные серверные списки, возможно, самое лучшее здесь.

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

Ниже приведен пример нескольких серверов, которые я использовал:

server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

Как только несколько хороших серверов были найдены, добавьте их в список, положив 'iburst' после наиболее перспективного. Например:

server nist1-dc.WiTime.net iburst

Это приведет к тому, что ntpd будет очень быстро синхронизироваться с этим сервером после запуска. В противном случае ntpd будет медленно отклоняться в сторону согласования с списком серверов (как и его характер), и для синхронизации достаточно времени для синхронизации достаточно, чтобы действовать как сервер времени для всей вашей сети.

Кроме того, добавьте несколько дополнительных строк в конец списка серверов, чтобы обеспечить текущее местное время по умолчанию, если вы временно потеряете подключение к Интернету:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Это предотвратит любую гадость, если вы используете ntpd на ноутбуке или другой машине с прерывистыми периодами отключения от Интернета.

В общем, список серверов должен выглядеть примерно следующим образом (это мое, ваши серверы, вероятно, будут разными):

# You do need to talk to an NTP server or two (or three).
server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
server 127.127.1.0
fudge 127.127.1.0 stratum 10

  1. Убедитесь, что конфигурация работает

Теперь, когда у вас есть правильный список серверов в файле /etc/ntp.conf , пришло время запустить демон и посмотреть, правильно ли вы синхронизированы! Убедитесь, что у вас есть активное подключение к Интернету, а затем запустите:

sudo /etc/init.d/ntp restart

Затем следите за своим системным журналом, чтобы узнать, синхронизируется ли вы с сервером времени:

tail -f /var/log/syslog

Примерно через 10-15 секунд (или до 15-20 минут, если вы забыли поставить «iburst» после вашего любимого сервера), вы должны увидеть в системном журнале что-то вроде следующего:

Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2

Если это сообщение не приходит, вы еще не синхронизировались с сетью серверов NTP. Проверьте список одноранговых узлов NTP, с которыми вы общаетесь, используя следующее:

ntpq -c lpeer

Если поля «delay», «offset» и «jitter» не равны нулю, и вы не синхронизировались, это, вероятно, означает, что вам просто нужно подождать некоторое время. Еще раз проверьте, что вы ввели аргумент «iburst» в список серверов! Мои сверстники, для справки, выглядят примерно так:

remote refid st t when poll reach delay offset jitter
==============================================================================
*milo.mcs.anl.go 192.5.41.40 2 u 4 64 77 46.213 67.753 2.207
-europium.canoni 193.79.237.14 2 u 63 64 37 97.375 71.020 1.875
-dtype.org 69.25.96.13 2 u 2 64 77 86.956 69.178 1.804
+smtp130.junkema 216.218.254.202 2 u 2 64 77 87.266 67.677 0.916
+kechara.flame.o 216.218.254.202 2 u – 64 77 89.183 68.717 1.713
-host2.kingrst.c 99.150.184.201 2 u – 64 77 24.306 62.121 2.608 LOCAL(0) .LOCL. 10 l 59 64 37 0.000 0.000 0.002

Когда ntpd запущен и синхронизирован с выбранными вами серверами времени, вы можете настроить его, чтобы действовать как сервер времени для других машин. Для этого добавьте следующий раздел в /etc/ntp.conf :

Источник: https://ubuntugeeks.com/questions/14891/how-do-i-setup-a-local-ntp-server

ntpdate и ntpd

Всегда когда видел эти две программы меня не покидало чувство, что здесь что-то не так. Две программы, которые абсолютно по разному, занимаются вопросом актуальности времени на вашем компьютере. Зачем две? И вот вижу в почтовой рассылке разработчиков поднятый вопрос “ntp and ntpdate”.

Сначала давайте разберём разницу в работе между ntpdate и ntpd. Ntpdate вызывают из различных служб, crontab и скриптов как и любую другую команду и ntpdate скачкообразно может изменить время, если оно сильно отличается от актуального.

Ntpd – это сервис-демон, который нежно и не торопясь, сделает время актуальным.

Оцените масштаб трагедии, когда в голове у тебя мысль, что нужно использовать ИЛИ ntpdate ИЛИ ntpd, поскольку они занимаются одним и тем же.

Запустил свои тестовые полигоны из виртуальных машин с Ubuntu – MATE, Kubuntu, Gnome, Lubuntu, Xubuntu, Unity.

Данные машины проверяют для меня работоспособность snap пакета, а так как он не имеет понятия зависимости как класс, то ntpdate и ntpd никто по зависимостям не ставил и таблица ниже отражает 99% правдивой информации. Сделал sudo dpkg -l | grep ntp

Названиеntpdatentpd
MATE V V
Kubuntu V X
Gnome V X
Lubuntu V V
Xubuntu V X
Unity X X

Почему Unity без всего будет разжёвано ниже.

Ситуация, как по мне, печальна. Каша из двух сущностей, занимающихся одним и тем же вопросом.

Что обсуждают разработчики Ubuntu, привлекая внимание разработчиков родительского проекта Debian? Предлагается отказаться от ntpdate совсем из-за его скачкообразной природы (jump time) и редкостных вызовов (single shot).

Ниже даны часть багов, которые возможно связаны с природой ntpdate:
ntpdate.dhcp always ignored
/etc/network/if-up.d/ntpdate does not detach correctly

Так как многие программы имеют зависимости именно от ntpdate (например dovecot-core), то элегантно можно было бы параметр NTPOPTIONS=”-q” по умолчанию вносить в /etc/default/ntpdate и ntpdate делал бы запросы на актуальность времени, но не менял бы системные часы. То есть таким хитрым способом исключить его из игры, даже если кто-то потом поставит его в дополнение к ntpd явно или по зависимостям.

Но на этом вопрос со временем не заканчивается. Ubuntu переключилась на новую систему инициализации systemd и, если нет установленного ntpd, то временем занимается systemd-timesyncd. Вот почему в Ubuntu 16.04 с Unity нет ни ntpdate, ни ntpd, так как там рулит всем systemd-timesyncd по дефолту.

Systemd сам по себе приносит унификацию в экосистему Убунту и в вопросе единственного решения актуальности времени. Никто не мешает вам в будущем поставить ntpd и тогда systemd-timesyncd даст рулить временем ему, а ntpdate красиво выведут из игры.

Но как будет реализовано разработчиками стопроцентно покажет время

Источник: http://vasilisc.com/ntpdate-ntpd

Настройка NTP на сервере

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

Например, в локальной сети требуется, чтобы часы машин, совместно использующих файлы, были синхронизированы — иначе невозможно будет правильно устанавливать время модификации файлов. Это, в свою очередь может стать причиной конфликта версий или перезаписи важных данных.

Если на сервере не установлено точное время, возникнут проблемы с заданиями Cron — неясно, когда они будут запускаться. Будет очень трудно анализировать журналы системных событий для диагостики причин сбоев и неисправностей…

Продолжать можно долго…

Чтобы избежать всех описанных проблем, необходимо настроить синхронизацию системных часов. В Linux для этого используется протокол NTP (Network Time Protocol). В этой статье мы подробно расскажем о том, как на сервере осуществить установку и настройку NTP. Начнем с небольшого теоретического введения.

Как работает протокол NTP

В основе протокола NTP лежит иерархическая структура серверов точного времени, в которой выделяются различные уровни (англ. strata). К уровню 0 относятся эталонные часы (атомные часы или часы GPS). На нулевом уровне NTP-серверы не работают.

С эталонными часами синхронизируются NTP-серверы первого уровня, которые являются источниками для серверов уровня 2. Серверы уровня 2 синхронизируются с серверами уровня 1, но могут также синхронизироваться и между собой. Аналогичным образом работают серверы уровня 3 и ниже. Всего поддерживается до 256 уровней.

Иерархическая структура протокола NTP характеризуется отказоустойчивостью и избыточностью. В случае отказов соединения с вышестоящими серверами резервные серверы берут процесс синхронизации на себя. За счет избыточности обеспечивается постоянная доступность NTP-серверов. Синхронизируясь с несколькими серверами, NTP использует данные всех источников, чтобы рассчитать наиболее точное время.

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

Самым известным и распространенным программным средством для синхронизации времени является демон ntpd.

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

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

Установка

Программа NTP входит в состав дистрибутивов большинства современных Linux-систем и устанавливается при помощи стандартного менеджера пакетов:

$ sudo apt-get install ntp

Настройка

По завершении установки откроем в текстовом редакторе файл /etc/ntp.conf. В нем хранятся все настройки программы. Рассмотрим их более подробно.

Параметры логирования

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

driftfile /var/lib/ntp/ntp.drift

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

Далее указывается файл, в который будут сохраняться логи синхронизации:

logfile /var/log/ntp.log

Список серверов для синхронизации

В конфигурационном файле указывается список NTP-серверов, с которыми будет осуществляться синхронизация. По умолчанию он выглядит так:

server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org

Каждая строка означает группу серверов, которые будут cообщать нашему серверу корректное время. Повысить точность синхронизации можно с помощью опции iburst (она указывает, что на сервер для синхронизации нужно посылать не один, а несколько пакетов):

server 0.ubuntu.pool.ntp.org iburst server 1.ubuntu.pool.ntp.org iburst server 2.ubuntu.pool.ntp.org iburst server 3.ubuntu.pool.ntp.org iburst

Можно также указать предпочитаемый сервер при помощи опции prefer:

server 0.ubuntu.pool.ntp.org iburst prefer

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

  • Азия — asia.pool.ntp.org;
  • Европа — europe.pool.ntp org;
  • Африка — africa.pool.ntp.org;
  • Северная Америка — north-america.pool.ntp.org;
  • Южная Америка — south-america.pool.ntp.org;
  • Океания — oceania.pool.ntp.org.
Читайте также:  Где хранятся настройки mysql в bitrix env и как их изменять

Можно также указывать поддомены для отдельных стран (подробнее см. здесь). Имеется свой поддомен и для России — ru.pool.ntp.org

Резервный сервер точного времени

NTP-сервер, по какой-либо причине отключенный от Интернета, может передавать для синхронизации данные своих системных часов. Для этого в конфигурационный файл нужно добавить следующую строку:

server 127.127.1.0

Ограничения

В последнее время участились случаи использования NTP-серверов для усиления трафика в DDoS-атаках (подробнее об этом см., например, здесь). Чтобы наш сервер не стал жертвой злоупотреблений, нелишним будет установить ограничения на доступ для внешних клиентов. По умолчанию в файлe /etc/ntp.conf установлены следующие ограничения:

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

Параметры nomodify, notrap, nopeer и noquery запрещают сторонним клиентам изменять что-либо на сервере. Параметр kod (эта аббревиатура означает kiss of death — «поцелуй смерти») обеспечивает дополнительную защиту: клиент, отправляющий слишком частые запросы, сначала получит так называемый kod-пакет (предупреждение об отказе в обслуживании), а затем будет отключен от сервера.

Чтобы с NTP-сервером могли синхронизироваться машины из локальной сети, добавим в конфигурационный файл следующую строку:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

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

restrict 127.127.1.0

Проверка синхронизации

После того, как все необходимые изменения внесены в конфигурационный файл и сохранены, перезапустим NTP-сервер:

$ service restart ntp

Затем выполним следующую команду:

$ ntpq -pn

Ее вывод будет представлен в виде таблицы:

remote refid st t when poll reach delay offset jitter ============================================================================== *62.76.96.4 130.173.91.58 2 u 207 256 37 10.985 -215.79 256.992 +85.21.78.91 89.175.22.41 2 u 193 256 37 32.623 -207.70 259.121 +31.131.249.27 89.175.22.41 2 u 198 256 37 0.621 -216.90 257.037 +85.21.78.8 193.11.166.20 2 u 193 256 37 32.028 -207.41 259.863 +91.189.94.4 193.79.237.14 2 u 192 256 37 50.573 -206.62 259.542

В таблице указываются следующие параметры:

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

Слева от адреса сервера могут быть указаны следующие символы:

  • * сервер выбран для синхронизации;
  • + сервер, пригодный для обновления (с которым можно синхронизироваться);
  • — с сервером синхронизироваться не рекомендуется;
  • х сервер недоступен.

Проверить, пригоден ли сервер из списка для синхронизации, можно при помощи команды:

ntpdate -q server хх.ххх.ххх.ххх, stratum 2, offset −0.127936, delay 0.02600 7 Jul 14:30:23 ntpdate[7716]: adjust time server хх.ххх.ххх.ххх offset −0.127936 sec

Из приведенного вывода видно, что сервер пригоден для синхронизации, его уровень — 2, смещение — 0,127936 мс, задержка — 0.026 мс.

О том, как проходила синхронизация (успешно или с ошибками) можно также узнать из логов:

7 Jul 15:17:17 ntpd[5059]: synchronized to 91.198.10.4, stratum=2 7 Jul 15:17:17 ntpd[5059]: kernel time sync disabled 0041 7 Jul 15:17:21 ntpd[5059]: kernel time sync enabled 0001

Установка локальной даты и времени

С помощью команды ntpdate можно установить на сервере локальную дату и время, отправив соответствующий запрос к NTP-серверу:

$ ntpdate -u 192.168.1.1

Текущий статус ntpd можно проверить с помощью следующей команды:

$ ntpdc -c sysinfo

Ее вывод выглядит так:

system peer: 62.76.96.10 system peer mode: client leap indicator: 11 stratum: 3 precision: −21 root distance: 0.01314 s root dispersion: 1.66203 s reference ID: [62.76.96.4] reference time: d768a894.3824a929 Thu, Jul 10 2014 9:52:20.219 system flags: auth monitor ntp kernel stats jitter: 0.393768 s stability: 0.000 ppm broadcastdelay: 0.000000 s authdelay: 0.000000 s

Источник: https://blog.selectel.ru/nastrojka-ntp-na-servere/

unboxIT

Опубликовано 26.02.

2011 02:00Просмотров: 6937

В интернете можно найти целое море мануалов по настройке сервера времени – ntpd, но ирония состоит в том, что 95% из них либо не совсем верны, и авторы этого даже не замечают, либо не дают необходимой информации. Далее я расскажу как организовать NTP сервер под Linux в локальной сети, который будет синхронизировать своё время с серверами в Интернете, а устройства в локальной сети будут уже синхронизировать время с ним.

Немного пред истории. Как и положено, всё началось неожиданно, сервер который я настраивал на кануне ночью, при следующей загрузки завис. «Шикарно» подумал я и полез в логи… В результате в том что сервер вис был повинен ntpd сервис, который из-за неправильной настройки сети не мог связаться внешним сервером для синхронизации. Посмотрев скрипт запуска, я наткнулся на интересную запись:

А теперь внимание на строку с номером 8. Это начало цикла, в котором целых 7-мь раз будет предпринята попытка начальной, грубой синхронизации времени. Всё бы хорошо, но если у вас неправильно настроена сеть, или DNS, то вызовет подвисание сервера, на 7*( 1 + время проверки доступности DNS, порядка 5 сек ) секунд. В общем ждать минуту меня явно не устраивало, итак приступим.

Настройка начальной, грубой синхронизации

В замечательном файле /etc/ntp/step-tickers, хранятся имена серверов с которыми производиться начальная, грубая (сотни милесекунд) корректировка. Если вы уверены что у вас всегда будет доступ к Internet, можете перечислить в нём имена серверов, например:

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

Есть ещё вариант поиграться с опциями и подправить скрипт запуска, но это не мой путь.

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

Задача: Организовать NTP сервер в локальной сети, который будет синхронизировать своё время с Интернетом, а устройства в локальной сети будут уже синхронизировать время с ним.
Дистрибутив: Mandriva 2010.2 free Версия ntpd: 4.2.4p8

Настройка NTPD

Мир Linux действительно великолепен, все настройки в нём сводятся к простому редактированию файлов конфигураций. ntpd в этом плане не исключение. Итак если у вас ещё не стоит ntpd сервер установим его:

Желающие могут скомпилировать из исходников, или установить его другим способом, в мои же платны входит показать как настроить это чудо, по скольку в интернете можно найти целое море мануалов по настройке ntpd, но ирония состоит в том, что 95% из них либо не совсем верны (и авторы этого даже не замечают при вызове статусов) либо не дают необходимой информации. Итак файл с настройками храниться в /etc/ntp.conf, минимальные настройки примерно такие:

Каждая строчка указывает на сервер (списки серверов можно найти здесь http://www.pool.ntp.org), с которым будет происходить синхронизация. Четыре строчки с server, соответственно четыре сервера. Хотя на самом деле в данном примере это не совсем так. Каждая запись указывает на пул (группу) серверов.

При обращении скажем по адресу 2.ru.pool.ntp.org будет выбран 1 IP адрес сервера, с которым будет происходить синхронизация. Соответствия обновляются 1 раз в час. Теперь на более простом примере. Всего у нас имеется 4 коробки с часами.

Мы берём и наугад достаём из каждой коробки 1 часы, всего у нас получается 4 часов, с которыми мы будем сверять наше время. В течении часа, каждый раз когда мы будем сверять время, мы будем брать одни и те же часы. Через час если мы опять обратимся к этим коробкам, то вытащим уже другие часы.

Таким образом наше время будет сверяться постоянно с разными часами, и если какие-то из них окажутся не рабочими, то ничего страшного не случиться, ведь за 1 час, наши локальные часы не слишком сильно рассинхронизируются. Ну да мы отвлеклись, продолжим.

Прежде чем запускать сервер ntpd, необходимо произвести начальную, грубую установку времени. Можно просто выставить время руками, а можно выполнить команду (разумеется если у нас корректно работает связь с интернетом):

После того как время грубо синхронизировано можно запускать основной сервис (на всякий случае перезапустим его):

После чего выполним команду:

В результате должны увидеть что-то на подобии:

Небольшие пояснения что есть что.

remote – FQDN или IP-адрес сервера; refid – IP-адрес сервера с которым в настоящий момент выполняется синхронизация сервера из столбца remote; st – stratum сервера; t – режим работы сервера: 'u' – unicast, 'm' – multicast, 'b' – broadcast, '-' – manycast; when – время, прошедшее с момента последнего ответа сервера в секундах или '-', если сервер еще ни разу не ответил (скорее всего, “умер”, и сведения о нем пора удалить из файла конфигурации); poll – интервал опроса сервера в секундах (после запуска имеет небольшое значение, чтобы синхронизация происходила быстрее, с течением времени значение увеличивается); reach – состояние восьми последних попыток запроса времени у сервера в восьмеричном представлении (в случае успешной попытки устанавливается соответствующий бит); delay – задержка ответа сервера в секундах; offset – самое важное значение – различие локального времени и времени на сервере (с течением времени значение уменьшается, т.к. время становится более точным); jitter – дисперсия, дрожание фазы (более низкие значения обеспечивают более точную синхронизацию). Ждём 10 минут. Повторяем, команду и видем:

Ага, вот оно появились всякие дополнительные символы и вот что они означают: '*' – сервер, с которым в настоящий момент выполняется синхронизация, '#' – сервер отобран для синхронизации, но дистанция до него превышает максимально возможную, '?' – сервер отобран для синхронизации и использует сигнал PPS, '+' – сервер добавлен в список серверов, отобранных для синхронизации, 'x' – сервер использует некорректный алгоритм, '.' – сервер выбран из конца списка серверов, отобранных для синхронизации, '-' – сервер отвергнут группирующим алгоритмом, пробел – сервер имеет слишком высокий stratum и/или не может быть проверен; Теперь по простому, если видем '+', '-', '*' синхронизация пошла. offset — отклонение нашего времени и времени удалённого сервера, если значение скажем больше 100, то синхронизация реально не произошла. На некоторых ресурсах можно увидеть следующую картину:

Читайте также:  Быстрая и простая настройка samba

Видим что половина серверов (2, 3, 4) вообще не работает и реально происходит работа с локальным сервером и с 172.22.128.8.

Смотрим значение offset которое говорит что никакой синхронизации нет и в помине! Из листинга можно сделать только один вывод, что сервер засинхронизирован сам с собой, и его время имеет мало общего с действительным. Будьте внимательны, не давайте вас нае…

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

В чём проблема? В том что для нормальной синхронизации, даже если вы не планируете кому то давать синхронизировать время с вами, У ВАС ДОЛЖЕН быть открытым порт udp 123. После прочтения множества мануалов и дня потерянного времени вот что в /etc/ntp.conf получилось у меня:

Вникаем внимательно. Наш сервер засинхронизирован с 6-тью внешними пулами серверов, строки с 02 по 07. Строка 10, мы запрещаем кому либо чтобы-то не было делать с нашим сервером. Теперь нам надо внести исключение для серверов с которыми наш сервер будет синхронизироваться, строки с 13 по 18.

При этом параметры nomodify notrap, говорят о том что запрещено изменять состояние НАШЕГО сервера и отправлять сообщения об исключениях ВНЕШНИМИ серверами, т. е. чтоб никто из этих серверов ничего не натворил.

Строка 22, мы разрешаем участникам локальной сети синхронизировать время с нашим сервером, но при этом тоже вводим ограничение. Теперь самая важная строка – 25, будем считать что это локальная петля. Без неё работать не будет.

В итоге, наш сервер синхронизируется с внешними серверами, при этом сам является сервером но только для нашей локальной сети, всем остальным доступ запрещён. Ещё раз перезапустим сервис:

Пойдём покурим, выпьем чаю, кофе (нужное подчеркнуть), после чего выполним команду:

Видим, наш сервер засинхронизирован, отклонение не превышают и 50мс. Настройка NTPD практически одинакова для всех Xnix систем, и отличается по сути только способом запуска. Всем советую ознакомиться также со статьёй где расписан вариант настройки для FreeBSD. http://www.sergeysl.ru/freebsd-ntpd/ Вот собственно и всё.

Источник: http://unboxIT.ru/blog/32-pravilnaya-nastrojka-servera-vremeni-ntp-na-linux.html

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

Если вы используете программу ntpd из комплекта, рапространяемого ntp.org (работает на большинстве современных операционных систем, включая Linux, *BSD, Windows и некоторые другие), для обычной синхронизации ваших часов по Интернету будет достаточно такой конфигурации:

driftfile /var/lib/ntp/ntp.drift server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

Имена 0, 1, 2 и 3.pool.ntp.org указывают на случайно выбранные из пула сервера (выбираются заново каждый час). Перед запуском ntpd убедитесь, что погрешность ваших часов находится в разумных пределах (не превышает нескольких минут).

Для этого можно провести моментальную синхронизацию с пулом при помощи команды ntpdate pool.ntp.org, или просто установить время вручную при помощи команды date. После этого вы можете запустить ntpd.

Через некоторое время (до получаса) команда ntpq -pn должна выдать нечто похоже на следующее:

$ ntpq -pn remote refid st t when poll reach delay offset jitter
==============================================================================
+81.6.42.224 193.5.216.14 2 u 68 1024 377 158.995 51.220 50.287
*217.162.232.173 130.149.17.8 2 u 191 1024 176 79.245 3.589 27.454
-129.132.57.95 131.188.3.222 3 u 766 1024 377 22.302 -2.928 0.508

В вашем случае IP-адреса могут отличаться (как уже говорилось выше, сервера каждый раз выбираются случайно). Самым главным здесь является символ звездочки (*), показывающий, что часы вашего компьютера теперь автоматически синхронизируются с Интернетом. Отныне вы можете не беспокоиться об этом!

Из-за того, что имя pool.ntp.org будет выдавать вам сервера со всего мира, качество синхронизации может быть не очень высоким. Рекомендуем использовать для синхронизации континентальные зоны (например, europe, north-america, oceania or asia.pool.ntp.org). Еще более оптимальным решением будет использование зоны, соответствующей вашей стране (например, ru.pool.ntp.org для России, ua.

pool.ntp.org для Украины и т.д.). Также вы можете использовать цифровой префикс (0, 1 или 2) перед именем зоны. Однако, может так случиться, что зона для вашей страны пока не существует, или содержит всего один-два сервера. Если вы знаете NTP-сервера, близкие к вам по сетевой дистанции (она определяется про помощи программ traceroute и ping), возможно, будет лучше использовать именно их.

Если вы используете последние версии Windows, вы также можете использовать встроенный в систему NTP-клиент. Это делается командой

net time /setsntp:pool.ntp.org

В некоторых версиях Windows можно указывать более одного сервера:
net time /setsntp:”0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org”

Это должно работать на Windows 2000/XP/2003. Также вы можете, войдя в систему с правами администратора, щелкнуть правой кнопкой мыши по часам на панели задач, выбрать «Настройка даты/времени», перейти на закладку «Время Интернета» и ввести в предложенное тесктовое поле имя сервера для синхронизации.

Немецкая фирма Meinberg портировала ntpd под Windows.

Обратите внимание, что если ваша система Windows входит в домен, возможно, у вас не получится синхронизировать время независимо от других участников домена. Рекомендуем ознакомиться с официальной документацией.

Если у вас есть внешний статический IP-адрес и неплохое интернет-соединение (пропускная полоса не критична, главное, чтобы соединение было стабильным и не сильно загруженным), пожалуйста, подумайте о том, чтобы войти в пул. Для вас это обернется лишь небольшим дополнительным трафиком (несколько сотен байт в секунду), но вы тем самым поможете нашему проекту выжить и развиваться. Подробную информацию вы можете найти на этой странице.

Если ваш интернет-провайдер имеет собственные NTP-сервера, или вы знаете хорошие NTP-сервера недалеко от вас, используете именно их, а не нас — вы получите более высокое качество синхронизации при меньшей нагрузке на сеть. Если вы знаете только один сервер поблизости от вас, вы можете использовать его, например, с двумя серверами из pool.ntp.org.

Изредка случается так, что вам дважды выдается один и тот же сервер — эту проблему можно решить простым перезапуском ntpd. Если вы используете зону своей страны, учтите, что в ней может оказаться всего один-два сервера. В этом случае рекомендуем использовать континентальную зону. Посмотреть, сколько серверов работает в каждой зоне, вы можете здесь.

Будьте дружелюбны. Многие сервера предоставляются добровольцами, и почти все NTP-сервера на самом деле являются файловыми, почтовыми или web-серверами, на которых просто запущен ntpd. Поэтому не используйте более трех серверов в своей конфигурации, и не выкидывайте грязных трюков с параметрами burst и minpoll — все, чего вы добьетесь, это гибель нашего проекта, раньше или позже.

Убедитесь, что на вашем компьютере корректно настроен часовой пояс. ntpd ничего не знает о часовых поясах. Он работает только со временем Гринвича (UTC).

Если вам нужно синхронизировать целую сеть, пожалуйста, настройте один из компьютеров как NTP-сервер и синхронизируйте сеть по нему (вам придется немного почитать документацию, но ничего особенно трудного в этом нет. В случае затруднений обращайтесь в Usenet-конференцию comp.protocols.time.ntp.)

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

Источник: https://www.ntppool.org/ru/use.html

Большой мануал: часть 10. Cинхронизируем время на сервере. « Debian.pro

На сервере важно поддерживать более или менее точное время. Чтобы было удобно читать логи, что бы ваш сервер не присылал другим письма из прошлого или из будущего, чтобы… да пофиг — просто важно и всё.

Из-за разных глюков, ошибок в железе, выключений-включений, время на сервере может отставать-спешить относительно атомного времени. Обычно — не более чем на секунду за сутки, на практике — на секунду за месяц, а то и меньше.

Но хреново работающее железо может болтать время намного сильнее (вообще сильные колебания времени — повод задуматься о здоровье железки). Существует два популярных способа синхронизации времени в linux — ntpdate по крону, или постоянно запущенный ntpd.

Вы вольны выбрать любой из них, я напишу про оба. Но от себя я всё же советую использовать именно ntpdate по крону, особенно если вам не сильно критично постоянно держать на сервере время с погрешностью менее 0.1с.

C ntpd была связана проблема, когда уязвимость в нём позволяла использовать серверы ntpd для проведения udp amplification-атаки (когда маленький пакет, пущенный в сторону вашего сервера позволял сгенерировать большой udp-пакет в сторону чужого атакуемого сервера) — http://habrahabr.ru/post/209438/

Конечно, ту уязвимость пофиксили (да и написали, как от неё спастись без обновлений ntpd), но где гарантии, что там не осталось подобных проблем? Да и, опять же, ntpd всё ещё работает по udp и атаки похожего типа возможны, хоть и без большого усиления трафика (зато это позволит скрыть атакующего, подставив ваш сервер под абузу).

Кстати, я сталкивался с тем, что ntpd, встроенный в ipmi-модуль сервера был подвержен этой атаке и весело ддосил соседей по стране =) Поэтому, если вы не готовы постоянно читать рассылки безопасности, следить за обновлениями и так далее — всё же не стоит ставить ntpd.

Итак, первый способ: запускаем ntpdate раз в сутки по крону.

Сносим ntpd, если он есть:

root@server:~# apt-get remove –purge ntpd

Ставим ntpdate:

root@server:~# apt-get install ntpdate

И создаём файл /etc/cron.d/ntpdate со следующим содержимым:

0 6 * * * root ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

Теперь каждый день в 6 утра (время и периодичность сами подставьте) часики будут подводиться до актуального состояния.

Второй способ: nptd.
Нам нужно наоборот его поставить:

root@server:~# apt-get install ntpd

И написать в конфиг /etc/ntpd.conf более или менее правильную конфигурацию:

disable authdisable statsserver 0.ubuntu.pool.ntp.orgserver 1.ubuntu.pool.ntp.orgserver 2.ubuntu.pool.ntp.orgserver 3.ubuntu.pool.ntp.org

После чего перезапускаем его:

root@server:~# /etc/init.d/ntp restart

Всё, теперь наши часики подводятся в режиме реального времени синхронизируются с пулом ntp-серверов.

Источник: https://debian.pro/2021

Ссылка на основную публикацию