0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Обновлено и опубликованоОпубликовано: 17.12.2020

Сервер синхронизации времени NTP помогает актуализировать время на всех узлах сети. В инструкции рассказано о его установке и настройке на Linux CentOS 8.

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

В CentOS 8 пакетом для синхронизации времени является chrony — он пришел на смену ntpd.

Устанавливаем его командой:

dnf install chrony

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

systemctl enable chronyd —now

Настройка NTP

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

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

#pool 2.centos.pool.ntp.org iburst
server 192.168.0.100 iburst prefer
server 192.168.0.110 iburst
server 127.127.1.0

  • pool — указывает на выполнение синхронизации с пулом серверов.
  • server — указывает на выполнение синхронизации с сервером.
  • iburst — отправлять несколько пакетов (повышает точность).
  • prefer — указывает на предпочитаемый сервер.
  • server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.

* в данном примере мы закомментировали указанный пул по умолчанию и добавили свои серверы 192.168.0.100 и 192.168.0.110.

* в данном примере мы разрешаем синхронизацию времени с нашим сервером для узлов сети 192.168.0.0/255.255.255.0.

systemctl restart chronyd

Добавляем правило в брандмауэр:

firewall-cmd —permanent —add-service=ntp

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

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

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

210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 127.127.1.0 0 6 0 — +0ns[ +0ns] +/- 0ns
^* server-01.dmosk.local 2 6 17 55 +629us[+1184us] +/- 152ms

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

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

timedatectl set-timezone Europe/Moscow

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

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

* где 192.168.0.15 — адрес нашего NTP-сервера.

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

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

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

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

Для клиентов можно выбрать несколько стратегий настройки — мы рассмотрим 3:

NTP Pool Project

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

Читайте так же:
Как отрегулировать прицепное устройство

Имена 0, 1, 2 и 3.pool.ntp.org указывают на случайно выбранные из пула сервера (выбираются заново каждый час). Перед запуском ntpd убедитесь, что погрешность ваших часов находится в разумных пределах (не превышает нескольких минут). Для этого можно провести моментальную синхронизацию с пулом при помощи команды ntpdate pool.ntp.org, или просто установить время вручную при помощи команды date. После этого вы можете запустить ntpd. Через некоторое время (до получаса) команда ntpq -pn должна выдать нечто похоже на следующее:

В вашем случае 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-клиент. Это делается командой

В некоторых версиях Windows можно указывать более одного сервера:

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

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

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

Additional Notes

Дополнительные замечания

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

Читайте так же:
Как отрегулировать крепление двери шкафа

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

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

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

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

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

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

alt=»Блог Михаила Григорьева» />

4 Фев 2020 18:02:19 | 2 комментария

Использование systemd-timesyncd для синхронизации времени в Debian/Ubuntu

В Linux для синхронизации времени традиционно используется ntpd как стандарт де-факто, но есть другая и более простая альтернатива — это systemd-timesyncd.

Читайте так же:
Дрель 2 скорости реверс регулировка оборотов

Давайте настроим его для синхронизации времени, а про ntpd забудем и удалим его.

С ntpd все просто, ставится пакет ntp, настраивается файл конфигурации /etc/ntp.conf и включается служба ntp (systemctl start ntp), далее проверяем с помощью утилиты ntpstat факт синхронизации локальных часов с удаленным сервером и радуемся.
Все бы хорошо, но с помощью ntpd можно не только забирать время с удаленных сервером, но и выступать в качестве сервера времени для других, то есть ntpd принимает входящие соединения и его некорректная настройка может послужить причиной участия вашего сервера в DDoS-атаки (см. apt-get remove ntp ntpstat —purge apt autoremove

Удалить ntpd или например chronyd нужно потом, что иначе systemd-timesyncd не будет синхронизировать время. За такую проверку отвечает файл /lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf в котором прописан список бинарников, при наличии которых в системе демон systemd-timesyncd не будет работать.

Теперь настроим systemd-timesyncd, для этого в файл конфигурации /etc/systemd/timesyncd.conf пропишем список серверов времени:

Таким образом мы добавили в файл настройку NTP= определяющую список основных серверов времени, можно добавить настройку FallbackNTP= которая определит список резервных серверов времени:

Смотрим текущий статус синхронизации часов:

В строке «NTP synchronized» может стоять no если синхронизация часов по ntp до этого не была настроена вообще или yes, если до этого часы синхронизировались с помощью ntpd

Включаем использование systemd-timesyncd для синхронизации времени:

Включаем и перезапускаем службу systemd-timesyncd:

Через несколько минут можно проверить с помощью timedatectl состояние синхронизации:

Значение в строке «NTP synchronized» должно измениться на yes

Если systemd-timesyncd не синхронизирует часы, то прежде всего проверьте настройки межсетевого экрана (iptables) на предмет разрешения исходящих подключений на 123 порт по протоколу UDP.

Детальную информацию о состоянии синхронизации времени можно посмотреть командой:

P.S. Утилиту timedatectl так же можно использовать для смены часового пояса, пример:

Выведем список временных зон:

Установим временную зону Asia/Yekaterinburg:

+5 свидетельствует об установке нашей зоны (Asia/Yekaterinburg это UTC+5)

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

Читайте так же:
Блок питания с регулировкой напряжения на одном транзисторе

Синхронизация времени

Синхронизация времени в Linux возможна про протоколу NTP, описанному в RFC 5905, и протоколу TIME, описанному в RFC 868. В настоящее время, в подавляющем большинстве случаев, используется протокол NTP. Кроме того, в случае выключения компьютера, либо его перезагрузки, важна синхронизация системного времени с аппаратными часами реального времени материнской платы компьютера (RTC). В ALT есть несколько пакетов, обеспечивающих синхронизацию по протоколу NTP. Использовать одновременно несколько способов не следует. Так же существует дистрибутивонезависимое MINI-HOWTO на эту тему [1] .

Содержание

tzdata [ править ]

Пакет содержит множество описаний временны́х зон, нужная из которых копируется в /etc/localtime (либо это может быть символическая ссылка на соответствующий файл). Только этот файл определяет системную временну́ю зону. Для дистрибутивов ALT с sysvinit копирование может быть выполнено командой

Сама зона, в этом случае, определяется по значению переменной ZONE из /etc/sysconfig/clock.

NTP [ править ]

пакет openntpd [ править ]

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

пакет ntp [ править ]

Пакет является эталонной реализацией протокола ntp и имеет долгую историю. Считается не очень безопасным ввиду лидерства по количеству закрытых за историю CVE. В ALT пакет состоит из нескольких подпакетов. Непосредственно к синхронизации имеют отношение два, а третий полезен для контроля состояния ntpd.

ntpd [ править ]

Собственно сам демон, который может работать как в качестве клиента, так и в качестве сервера.

ntpdate [ править ]

Утилита, позволяющая однократно посмотреть время на каком-либо NTP-сервере (не обязательно ntpd) и/или синхронизировать с ним системное время. Если запущен ntpd, требуется использовать ключ -u при запуске.

ntpq [ править ]

Утилита, позволяющая посмотреть статус работающего ntpd, как локального, так и удалённого.

пакет chrony [ править ]

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

Читайте так же:
Регулировка роллетных ворот алютех с электроприводом

пакет systemd-timesyncd [ править ]

Является клиентом SNTP, не может быть сервером NTP.

TIME 868 [ править ]

пакет xinetd [ править ]

Встроенный сервер TIME 868 имеет демон xinetd. Чтобы служба заработала, надо в /etc/xinetd.d/time-tcp и /etc/xinetd.d/time-udp заменить «disable = yes» на «disable = no». Так же, не следует забывать про основной /etc/xinetd.conf, в котором, по-умолчанию, присутствует параметр «only_from = 127.0.0.1».

пакет rdate [ править ]

TIME 868 клиент

пакет netdate [ править ]

TIME 868 клиент

DAYTIME 867 [ править ]

Упоминается в контексте Samba. надо понять и дописать, для чего

Синхронизация системного времени с RTC [ править ]

Linux kernel [ править ]

При наличии синхронизации с NTP-сервером ядро каждые 11 минут обновляет время в RTC. Начиная с 3.10, из ядра выпилили код, который пытался обновлять в RTC только минуты и секунды, чтобы обновление работало независимо от часового пояса (но в этом случае не могло быть исправлено расхождение более чем на 15 минут) [2] . В результате, при использовании синхронизаторов, умеющих сообщать ядру о наличии синхронизации, ядро получило возможность выставить значение RTC в UTC в соответствии с текущим значением времени, что внесло некоторую путаницу.

Проверить, что функция синхронизации может быть активирована, можно посредством команды

пакет hwclock [ править ]

При запуске однократно синхронизирует RTC с системными часами, либо наоборот. В зависимости от параметров в RTC может быть установлено время в UTC, либо локальное. В момент исполнения hwclock создаёт файл /etc/adjtime, в котором записано отклонение RTC от системного времени и какое время (локальное, либо UTC) записано в RTC. При загрузке системное время выставляется относительно RTC по данными из adjtime. Несоответствие значения временной зоны в RTC и в файле adjtime (UTC/LOCAL) приводит к сдвигу системного времени при загрузке. В некоторых случаях (например, при использовании ntpd) можно просто обнулить содержимое /etc/adjtime после использования ( >/etc/adjtime ).

другие ОС [ править ]

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector