Перейти к основному содержимому
Вернуться в категорию

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

Руководство по настройке часового пояса с timedatectl, конфигурации NTP с chrony и systemd-timesyncd, синхронизации времени сервера и шагам проверки на Linux-серверах.

Время чтения: 10 мин Управление сервером
ntpчасовой поясtimedatectlchronytimesyncdсинхронизациявремя

Содержание

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

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

Проверка текущего состояния времени

hljs bash
# Просмотр системного времени, аппаратных часов и статуса NTP
timedatectl

# Показать текущую дату и время
date

# Показать время UTC
date -u

# Показать аппаратные часы
sudo hwclock --show

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

Изменение часового пояса с timedatectl

hljs bash
# Просмотр текущего часового пояса
timedatectl | grep "Time zone"

# Список всех доступных часовых поясов
timedatectl list-timezones

# Фильтрация по региону
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep Asia

# Установка часового пояса
sudo timedatectl set-timezone Europe/Moscow
sudo timedatectl set-timezone UTC
sudo timedatectl set-timezone Europe/Berlin
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone Asia/Dubai

Ручная настройка через символическую ссылку

hljs bash
# Альтернативный метод (для старых систем)
sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

# Обновить /etc/timezone
echo "Europe/Moscow" | sudo tee /etc/timezone

# Проверить изменение
date

Серверы REXE поставляются с часовым поясом UTC по умолчанию. Хранение серверов в UTC также является хорошей практикой для анализа журналов.

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

NTP (Network Time Protocol) синхронизирует часы сервера с серверами времени в интернете.

systemd-timesyncd (Лёгкое решение)

hljs bash
# Проверить статус
sudo systemctl status systemd-timesyncd

# Просмотр статуса синхронизации NTP
timedatectl show-timesync --all

# Включить NTP
sudo timedatectl set-ntp true

# Отключить NTP
sudo timedatectl set-ntp false

Конфигурация timesyncd

hljs bash
# Редактировать файл конфигурации
sudo nano /etc/systemd/timesyncd.conf
hljs ini
[Time]
# Основные NTP-серверы
NTP=0.ru.pool.ntp.org 1.ru.pool.ntp.org time.cloudflare.com
# Резервные NTP-серверы
FallbackNTP=2.pool.ntp.org 3.pool.ntp.org time.google.com
RootDistanceMaxSec=5
hljs bash
# Перезапустить службу
sudo systemctl restart systemd-timesyncd

# Проверить статус синхронизации
timedatectl

Chrony (Расширенное решение)

Chrony обеспечивает лучшую производительность для прерывисто подключённых или виртуализированных сред.

hljs bash
# Установить chrony (Ubuntu/Debian)
sudo apt install chrony -y

# Установить chrony (RHEL/CentOS/AlmaLinux)
sudo dnf install chrony -y

# Запустить и включить службу
sudo systemctl enable --now chronyd

Конфигурация Chrony

hljs bash
# Редактировать файл конфигурации
sudo nano /etc/chrony/chrony.conf  # Ubuntu/Debian
# или
sudo nano /etc/chrony.conf  # RHEL/CentOS
hljs bash
# Пул NTP-серверов
pool 0.ru.pool.ntp.org iburst
pool 1.ru.pool.ntp.org iburst

# Cloudflare NTP (высокая точность)
server time.cloudflare.com iburst

# Google NTP
server time.google.com iburst

driftfile /var/lib/chrony/drift
logdir /var/log/chrony
makestep 1.0 3
rtcsync
hljs bash
# Перезапустить службу
sudo systemctl restart chronyd

# Проверить статус chrony
chronyc tracking

# Список NTP-источников
chronyc sources -v

# Статистика источников
chronyc sourcestats

Рекомендуемые NTP-серверы

СерверОписаниеПрименение
pool.ntp.orgГлобальный пул NTPОбщее использование
ru.pool.ntp.orgРоссийский пул NTPРоссийские серверы
time.cloudflare.comCloudflare NTPВысокая точность
time.google.comGoogle NTPВысокая надёжность

Синхронизация аппаратных часов (RTC)

hljs bash
# Записать системное время в аппаратные часы
sudo hwclock --systohc

# Прочитать аппаратные часы в системное время
sudo hwclock --hctosys

# Установить аппаратные часы в UTC
sudo hwclock --systohc --utc

Проверка

hljs bash
# Проверить статус синхронизации NTP
timedatectl | grep synchronized

# Проверить синхронизацию с chrony
chronyc tracking | grep "System time"

Не запускайте chrony и systemd-timesyncd одновременно. При установке chrony отключите timesyncd: sudo systemctl disable --now systemd-timesyncd

Устранение неполадок

Часы не синхронизируются

hljs bash
# Проверить порт NTP (UDP 123)
sudo ufw allow 123/udp

# Проверить журнал chrony
sudo tail -f /var/log/chrony/tracking.log

# Принудительная синхронизация chrony
sudo chronyc makestep

Большое расхождение времени

hljs bash
# Установить время вручную (с отключённым NTP)
sudo timedatectl set-ntp false
sudo timedatectl set-time "2024-01-15 14:30:00"
sudo timedatectl set-ntp true

# Быстрое исправление с chrony
sudo chronyc makestep

Заключение

Правильная настройка часового пояса и NTP является фундаментальным требованием для надёжной серверной инфраструктуры. На серверах REXE вы можете поддерживать синхронизацию часов с помощью chrony или systemd-timesyncd, обеспечивая согласованность журналов и надёжность приложений.