Настройка ntp linux centos

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

Сервер синхронизации времени 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:

  1. С помощью Chrony.
  2. Сервис ntpd.
  3. Утилиты ntpdate.

Начнем с Chrony.

Chrony

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

а) Ubuntu / Debian:

apt-get install chrony

yum install chrony

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

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

server 192.168.156.215 iburst

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

systemctl enable chronyd || systemctl enable chrony

systemctl restart chronyd || systemctl restart chrony

Источник

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

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

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

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

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

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

  • hwclock —localtime — проверка аппаратного времени без поправки
  • hwclock —utc – проверка времени с условием, что аппаратные часы идут по времени UTC

[root@server etc]# hwclock —localtime

[root@server etc]# hwclock —utc

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

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

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

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

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

[root@server etc]# date

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

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

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

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

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

Читайте также:  Апгрейд windows 10 home до версии pro

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

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

  • timedatectl
  • tzdata

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

# timedatectl set-timezone Europe/Moscow

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

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

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

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

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

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

# yum install ntp -y

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

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

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

[root@server Asia]# service ntpd status

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

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

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

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

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

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

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

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

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

# dnf install chrony

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

# systemctl start chronyd
# systemctl enable chronyd

Проверим статус сервиса:

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

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

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

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

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

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

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

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

# service ntpd stop

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

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

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

# timedatectl set-ntp 0

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

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

# yum install tzdata -y

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

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

Источник

linux-notes.org

Установка ntp на CentOS/RHEL/Fedora

Network Time Protocol – NTP- является протоколом, который работает через порт UDP 123 на транспортном уровне и позволяет компьютерам синхронизировать время.

В этой статье «Установка ntp на CentOS/RHEL/Fedora» я расскажу как можно установить и настроить NTP сервер на CentOS/RHEL/Fedora на примере CentOS 7 и использую NTP Public Pool Time Servers лист.

Установка и настройка NTP демона.
1. Покет с NTP сервером предоставляется по умолчанию из официальных CentOS / RHEL 7 репозиториев и может быть установлен:

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

3. Затем откройте основной конфигурационный файл для редактирования списка серверов с pool.ntp.org проекта и нужно заменить его на Ваши пулы ( те которые вы выбрали на сайте).

Читайте также:  Перечень тематически сгруппированных команд окна windows

Для примера, я буду использовать следующие пулы:

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

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

и добавляем строчку:

6. После того как вы отредактировали файл конфигурации со всеми настройками что выше, сохраните и закройте файл ntp.conf.

Добавление правил в Firewall и запуск NTP демона.
7. Услуги NTP используют UDP-порт 123 на транспортном уровне OSI (уровень 4). И для корректной работы ntp сервера, нужно открыть этот порт на RHEL / CentOS 7, а можно это сделать:

8. После того как вы открыли в брандмауэре порт 123, то следующим шагом будет запуск сервера NTP:

И добавлю его в автозагрузку ОС:

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

10. Если вы хотите запросить и синхронизироваться NTP с pool, то используейте команду Ntpdate и затем адрес сервера (или серверов):

Статья «Установка ntp на CentOS/RHEL/Fedora» завершена.

Источник

Настройка NTP в CentOS

Теория

Когда сервер Linux загружается, считываются аппаратные часы, также называемые часами реального времени. Эти часы обычно находятся в оборудовании. Обычно это интегральная схема на системной плате, которая полностью не зависит от текущего состояния операционной системы и продолжает работать, даже когда компьютер выключен. С аппаратных часов система получает начальную настройку времени.
Время на аппаратных часах на серверах Linux обычно устанавливается на всемирное координированное время (UTC). UTC — это время, которое одинаково везде на планете, и на основе UTC рассчитывается текущее местное время. (Позже в этой статье вы узнаете, как это работает.)

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

Системное время — это время, которое поддерживается операционной системой и хранится в формате UTC. Приложения, запущенные на сервере, преобразуют системное время в местное время. Местное время — это фактическое время в текущем часовом поясе. В местном времени летнее время (DST) считается таким, чтобы оно всегда показывало точное время для этой системы. Таблица дает обзор различных концепций, которые играют роль в Linux.

Концепция Объяснение
Аппаратные часы

Аппаратные часы, которые находятся на основной плате компьютерной системы
Часы реального времени

Такие же как аппаратные часы
Системное время

Время, которое поддерживается операционной системой
Программные часы

Похоже на системное время
Всемирное координированное время (UTC)

Мировое стандартное время
Летнее время (DST)

Расчет для автоматического изменения времени при переходе на летнее время
Локальное время

Время, которое соответствует времени в текущем часовом поясе

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

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

Вообще говоря, доступны два решения.

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

Другое и более распространенное решение — настроить сервер на использование сетевого протокола времени (NTP). NTP — это метод поддержания системного времени, предоставляемый через NTP-серверы в Интернете. Это простое решение для обеспечения точного времени для серверов, потому что большинство серверов в любом случае подключены к Интернету.

Настроить сервер для использования времени NTP на CentOS 7 легко, если сервер уже подключен к Интернету. Если это так, файл /etc/chrony.conf настроен со стандартным списком NTP-серверов в Интернете, с которыми следует связаться. Единственное, что нужно сделать администратору, это включить NTP с помощью timedatectl set-ntp 1.

Управление временем в CentOS

Различные команды участвуют в управлении временем в CentOS. В таблице представлен их обзор.

Команда Описание
date Управляет местным временем
hwclock
Управляет аппаратным временем
timedatectl Разработано для управления всеми аспектами времени на CentOS

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

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

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

timedatectl — новая команда в Linux, которая позволяет вам управлять многими аспектами времени. Как показано ниже, при использовании без аргументов эта команда отображает подробную информацию о текущем времени и дате. Она также отображает часовой пояс, в котором находится ваша система, в дополнение к информации об использовании сетевого времени NTP и информации об использовании DST.
Команда timedatectl работает с командой для выполнения временных операций. В таблице представлен обзор соответствующих команд.

Объяснение status

Показать текущие настройки времени set-time TIME

Установить текущее время set-timezone ZONE

Установить текущий часовой пояс list-timezone

Показать список всех часовых поясов set-local-rtc [0|1]

Контролировать, будет ли RTC (часы реального времени — это обычно относится к аппаратным часам) работать по местному времени set-ntp [0|1]

Включить или выключить NTP

Команда timedatectl была разработана как общее решение для управления временем в Linux. Она имеет некоторые функции, которые предлагаются через другие команды, но цель команды состоит в том, что в конечном итоге она заменит другие команды, используемые для управления настройками времени и даты. Когда timedatectl используется для включения времени NTP, он обращается к процессу chronyd.

Пример настройки даты и времени:
1. Зайдите под рутом и введите date.

2. Теперь введите hwclock и посмотрите, отображаются ли обе команды более или менее одновременно.

3. Введите hwclock -c. Обратите внимание, что это показывает различия между системным временем и временем аппаратного обеспечения гораздо более подробно. Используйте Ctrl + C, чтобы прервать работу команды.

4. Вы только что видели, что текущее время, отображаемое с помощью hwclock -c, относится к эпохе.

5. Используйте date -d ‘@12345678’ (в которой вы замените 12345678 на время эпохи, которое только что показал hwclock -c), чтобы перевести текущее время эпохи в удобочитаемое время.

6. Введите timedatectl show, чтобы показать текущие настройки времени.

7. Используйте timedatectl list-timezones, чтобы показать список всех определений часовых поясов.

8. Используйте timedatectl set-timezone Europe/Moscow, чтобы установить текущий часовой пояс по Москве.

9. Введите timedatectl show и обратите внимание на различия с предыдущим выводом.

10. Введите timedatectl set-ntp 1, чтобы включить использование NTP. Может появиться сообщение об ошибке «failed to issue method call.». Если вы получили это сообщение, введите yum -y install chrony и повторите попытку.

11. Откройте файл конфигурации /etc/chrony.conf и найдите строки server.
Они используются для указания серверов, которые должны использоваться для синхронизации времени NTP.

12. Введите systemctl status chronyd и убедитесь, что служба chrony запущена и включена. Если это не так, используйте systemctl start chronyd; systemctl enable chronyd.

13. Введите systemctl status -l chronyd и прочитайте информацию о состоянии.

Управление настройками часового пояса

Между серверами Linux время обычно передается по UTC. Это позволяет серверам разных часовых поясов использовать одни и те же настройки времени, что значительно упрощает управление временем в крупных организациях. Однако, чтобы облегчить работу конечных пользователей, необходимо также установить местное время. Для этого необходимо выбрать соответствующий часовой пояс.

В CentOS у вас есть четыре подхода к настройке правильного местного часового пояса:

1. Используйте утилиту system-config-date, как описано в следующем разделе этой статьи.

2. Перейдите в каталог /usr/share/zoneinfo. В этом каталоге вы найдете различные подкаталоги, содержащие файлы для каждого часового пояса, который был определен.
Чтобы установить местный часовой пояс на сервере, вы можете создать символическую ссылку с именем /etc/localtime на соответствующий файл часового пояса. Например, если вы хотите установить местное время на время Владивостока, используйте ln -sf /usr/share/zoneinfo/Russia/Vladivostok/etc/localtime.

3. Используйте утилиту tzselect. Этот инструмент запускает интерфейс, из которого можно выбрать соответствующий регион и локаль.

4. Используйте timedatectl для установки информации о часовом поясе.

Настройка времени в графической среде

Если ваш сервер настроен с графическим интерфейсом, вы можете использовать графический инструмент для управления временем. Для этого выполните следующие действия:

  1. Щелкните текущее время, которое отображается в верхнем правом углу.
  2. На открывшемся экране нажмите Date & Time Settings.
  3. Откроется новый экран. Чтобы получить доступ к параметрам, позволяющим изменить время, нажмите Unlock.
  4. На экране, который вы видите сейчас, вы можете включать и выключать сетевое время и изменять текущую настройку часового пояса, а также текущее время.

Кроме того, вы можете запустить графическую утилиту для управления временем с помощью команды system-config-date.

Источник

Читайте также:  Основные команды астра линукс
Оцените статью