- Установка и настройка NTP-сервера на Linux CentOS 8
- Установка сервера
- Настройка NTP
- Тестирование
- Настройка клиента Linux
- Chrony
- CentOS: Настройка даты и времени, пояса, синхронизация с NTP
- Hwclock: настройка аппаратного (системного) времени
- Ручная настройка времени в CentOS
- Настройка часового пояса в CentOS
- Настройка синхронизация времени по NTP в CentOS
- Используем chronyd для синхронизация времени в CentOS 8
- Распространённые ошибки при настройке времени в CentOS
- linux-notes.org
- Установка ntp на CentOS/RHEL/Fedora
- Настройка NTP в CentOS
- Теория
- Использование NTP
- Управление временем в CentOS
- Использование date
- Использование hwclock
- Использование timedatectl
- Управление настройками часового пояса
- Настройка времени в графической среде
Установка и настройка 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:
- С помощью Chrony.
- Сервис ntpd.
- Утилиты 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’
Настройка часового пояса в 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 проекта и нужно заменить его на Ваши пулы ( те которые вы выбрали на сайте).
Для примера, я буду использовать следующие пулы:
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 работает с командой для выполнения временных операций. В таблице представлен обзор соответствующих команд.
Команда 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 для установки информации о часовом поясе.
Настройка времени в графической среде
Если ваш сервер настроен с графическим интерфейсом, вы можете использовать графический инструмент для управления временем. Для этого выполните следующие действия:
- Щелкните текущее время, которое отображается в верхнем правом углу.
- На открывшемся экране нажмите Date & Time Settings.
- Откроется новый экран. Чтобы получить доступ к параметрам, позволяющим изменить время, нажмите Unlock.
- На экране, который вы видите сейчас, вы можете включать и выключать сетевое время и изменять текущую настройку часового пояса, а также текущее время.
Кроме того, вы можете запустить графическую утилиту для управления временем с помощью команды system-config-date.
Источник