Вики / Службы и systemd
Время, часовой пояс и NTP
Системное время, таймзона и синхронизация по NTP (systemd-timesyncd).
Точное время важно: TLS-сертификаты, логи, cron, кластеры, Kerberos ломаются при
расхождении. В Ubuntu временем заведует systemd (systemd-timesyncd — лёгкий
NTP-клиент; для серьёзного NTP ставят chrony).
timedatectl # время, таймзона, статус синхронизации
timedatectl list-timezones # список зон
timedatectl list-timezones | grep -i moscow
sudo timedatectl set-timezone Europe/Moscow # часовой пояс (симлинк /etc/localtime)
sudo timedatectl set-ntp true # включить синхронизацию по NTP
timedatectl timesync-status # сервер, offset, задержка
timedatectl show-timesync --all # все детали timesyncd
sudo timedatectl set-time '2026-01-01 12:00:00' # вручную (сначала set-ntp false)
sudo timedatectl set-local-rtc 0 # RTC в UTC (правильно; 1 = local, для Windows dual-boot)
date ; date -u # локальное / UTC
date +%s # unix-время (epoch)
hwclock --show # аппаратные часы (RTC)
Для серверов/кластеров вместо timesyncd обычно chrony:
sudo apt install chrony
chronyc tracking # текущая точность, offset, источник
chronyc sources -v # серверы и их состояние (* = выбранный)
chronyc makestep # резко подвести часы (после большого расхождения)
# серверы: /etc/chrony/chrony.conf (директивы server/pool)
timesyncd и chrony конфликтуют (оба NTP-клиенты). Включаешь chrony — timesyncd выключается автоматически.
Время «уехало», логи/сертификаты странные
timedatectl → System clock synchronized: no. Включи NTP: sudo timedatectl set-ntp true;
проверь systemctl status systemd-timesyncd и доступность NTP (chronyc sources
или порт 123/udp наружу — см. firewall).
set-time не работает
Сначала выключи автосинхронизацию: sudo timedatectl set-ntp false, потом ставь время.
Разное время в логах и date
Логи часто в UTC, а date — в локальной зоне. Сверяйся с timedatectl (показывает
обе) или date -u. Журнал в локальной зоне: journalctl уже учитывает TZ.
Часы «прыгают» после ребута
RTC в неверном режиме (set-local-rtc). На Linux-сервере держи RTC в UTC
(set-local-rtc 0).
В контейнере неверная зона
Таймзона хоста ≠ контейнера; задаётся переменной TZ или монтированием /etc/localtime.
timedatectl # время + таймзона + NTP
sudo timedatectl set-timezone Europe/Moscow
sudo timedatectl set-ntp true # включить синхронизацию
timedatectl timesync-status # offset/сервер
chronyc tracking ; chronyc sources -v # если chrony
date ; date -u ; date +%s # локальное / UTC / epoch
См. также
- journalctl — Логи и аудит
- systemd — Службы и systemd