Ntp server linux centos

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

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

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

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

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

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

Настройка 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

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

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

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

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

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

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

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

Читайте также:  Linux show dns servers

Chrony

Команда для установки зависит от типа дистрибутива Linux.

После установки открываем /etc/chrony.conf:

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

server 192.168.156.215 iburst

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

systemctl enable chronyd || systemctl enable chrony

systemctl restart chronyd || systemctl restart chrony

Проверить состояние работы можно командой:

Источник

CentOS: Настройка даты и времени, пояса, синхронизация с NTP

date

10.12.2019

user

VyacheslavK

directory

CentOS, Linux

comments

комментария 3

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

На серверах существует два вида часов. Аппаратные (real time clock), которые работают даже при выключенном сервере и программные часы операционной системы. Показания этих двух часов, могут отличаться. При этом, после запуска операционной системы, программные часы опираются на показания аппаратных и в дальнейшем могут корректироваться системой.

Абсолютное большинство программ в своей работе используют время программных часов.

Hwclock: настройка аппаратного (системного) времени

Чтобы проверить аппаратное время в Linux используется утилита hwclock:

  • hwclock —localtime — проверка аппаратного времени без поправки
  • hwclock —utc – проверка времени с условием, что аппаратные часы идут по времени UTC
Wed 27 Nov 2019 11:28:28 AM +06 -1.012225 seconds
Wed 27 Nov 2019 05:28:30 PM +06 -0.045476 seconds

Чтобы установить аппаратное время равное системному времени, выполните команду:

Чтобы установить конкретное время, выполните:

# hwclock —set —date «27 Nov 2019 17:30»

hwclock в linux centos

Ручная настройка времени в CentOS

В Linux за программное время отвечает утилита date или timedatectl. Если вызывать утилиту date без параметров, она покажет текущее время на сервере:

Wed Nov 27 17:40:56 +06 2019

Если вы хотите выставить время вручную, можно воспользоваться утилитой date с дополнительными ключами:

Где MM – месяц, DD — день, hh – час, mm – минуты.

date - изменить дату/время в centos

Для получения расширенной информации о дате, времени, поясе, синхронизации, настройках перехода на сезонное (летнее/зимнее) время (DST), используется утилита timedatectl. Она дает более подробную информацию о настройках времени на сервере.

Читайте также:  Linux driver nvidia quadro

timedatectl -текщие настройки времени

Timedatectl также позволяет изменить время:

# timedatectl set-time ‘2019-11-27 17:51:00’

timedatectl set-time

Настройка часового пояса в CentOS

Чтобы время на сервере CentOS Linux соответствовало вашему часовому поясу, его можно изменить вручную. Для этого есть две утилиты:

Чтобы изменить часовой пояс через утилиту timedatectl, выполните команду:

# timedatectl set-timezone Europe/Moscow

timedatectl set-timezone изменить часовой пояс в linux centos

Или же можно использовать tzdata. Чтобы воспользоваться данным методом, нужно заменить файл /etc/localtime на нужный вам. Весь список часовых поясов, расположен в директории /usr/share/zoneinfo/. Заменим часовой пояс на Asia/Almaty. Делаем бэкап файла locatime:

# mv /etc/localtime /etc/localtime.bak

Создаем симлинк на нужный часовой пояс:

# ln -s /usr/share/zoneinfo/Asia/Almaty /etc/localtime

/etc/localtime - пааметры часового пояса

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

Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp. Например, в CentOS 7 установка выполняется через yum:

После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Проверим, что сервис запущен:

Redirecting to /bin/systemctl status ntpd.service ● ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2019-11-28 09:47:33 +06; 5min ago Main PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─3057 /usr/sbin/ntpd -u ntp:ntp -g

В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:

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

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

Можно вручную синхронизировать время с указанным NTP сервером командой:

По умолчанию, ntpd включает в системе режим “11 minute mode”, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по крону, добавьте в крон следующую команду:

Используем chronyd для синхронизация времени в CentOS 8

Для CentOS 8 из официальных репозиториев убрали ntp и ntpdate, поэтому для синхронизации времени нужно использовать chrony.

Основные преимущества chrony:

  • высокая скорость и точность синхронизции
  • корректная работа при отсутствии доступа к эталонным часам (ntpd требуются регулярные запросы)
  • по-умолчанию не меняет сразу время при синхронизации, чтобы не нарушить работу программ
  • Меньше использует ресурсов
Читайте также:  Linux вывести текущего пользователя

По умолчанию, утилита chrony уже установлена в системе, но если по какой-то причина у вас ее нет, выполните установку:

Как и любой другой сервис, после установки chrony нужно включить и добавить в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

systemctl start chronyd в centos

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

timedatectl status NTP Service: active

Конфигурационный файл chrony/etc/chrony.conf. В нем нужно указать список NTP серверов, которые нужно использовать для синхронизации. Как и у ntp, у chrony есть интерфейс командной строки chronyc. Чтобы проверить информацию о текущих параметрах синхронизации времени, используйте:

chronyc tracking

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

chronyc sources

Если вы хотите установить конкретное время и дату вручную, вы можете воспользоваться утилитой date, но перед этим нужно отключить демон chronyd.

Распространённые ошибки при настройке времени в CentOS

В данном разделе, я опишу частые ошибки, которые возникают при работе с утилитами timedatectl, ntp.

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

ntpdate [26214]: the NTP socket is in use, exiting

ntpdate [26214]: the NTP socket is in use, exiting

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

И запустите синхронизацию заново:

service ntpd stop

Аналогичная ошибка может возникать и при работе с утилитой timedatectl:

Failed to set time: Automatic time synchronization is enabled.

timedatectl Failed to set time: Automatic time synchronization is enabled

Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl:

И выполнить команду по установке конкретного времени:

timedatectl set-ntp

При работе с часовыми поясами, они могут быть не установлены у вас на сервере и создать симлинк для localtime не получится. Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:

Так при ручной синхронизации, часто бывают ошибки вида:

28 Nov 10:12:39 ntpdate[897482]: sendto(185.217.191.98): Operation not permitted

В этом случае проверьте правила firewalld / iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

Оцените статью
Adblock
detector