Битлента
Windows, macOS, Android, iOS6 мин чтения·

timedatectl: как настроить часовой пояс и синхронизацию времени в Ubuntu и Debian

Как настроить часовой пояс и время в Ubuntu и Debian через timedatectl: просмотр состояния, set-timezone, синхронизация по сети и сбой времени при двойной загрузке.

Кратко

Команда timedatectl показывает местное время, часовой пояс и состояние синхронизации. Пояс меняется через set-timezone, автоматическая синхронизация включается через set-ntp true. При двойной загрузке с Windows время может сбиваться из-за режима аппаратных часов.

Что показывает timedatectl и как читать вывод

Команда timedatectl входит в состав systemd и есть в современных Ubuntu и Debian. Запущенная без параметров, она выводит сводку о времени. Права администратора для чтения не нужны, они потребуются только для изменений.

В выводе вы увидите несколько строк, и каждая отвечает на свой вопрос:

  • Local time — местное время с учётом выбранного пояса;
  • Universal time — всемирное время UTC;
  • RTC time — время аппаратных часов материнской платы;
  • Time zone — выбранный часовой пояс;
  • System clock synchronized — синхронизированы ли часы с внешним источником;
  • NTP service — включена ли служба синхронизации;
  • RTC in local TZ — хранятся ли аппаратные часы в местном времени.

Эти строки важны для диагностики. Если Local time неверен, а Universal time совпадает с реальным, дело в часовом поясе. Если расходятся оба значения, часы идут неправильно, и нужна синхронизация. Если сходятся Local time и RTC, а в «RTC in local TZ» написано yes, аппаратные часы хранятся в местном времени, что бывает при двойной загрузке.

Смена часового пояса через set-timezone

Пояса в Linux называются по формату «регион/город», например Europe/Moscow или Asia/Yekaterinburg. Список доступных значений показывает timedatectl list-timezones; он длинный, поэтому его удобно фильтровать: timedatectl list-timezones | grep Europe.

Последовательность действий такая:

  1. Найдите нужное название в списке.
  2. Выполните sudo timedatectl set-timezone Регион/Город, подставив своё значение.
  3. Проверьте результат командой timedatectl: строки Time zone и Local time должны измениться.
  4. Если приложения показывают старое время, перезапустите их: некоторые читают пояс только при старте.

То же можно сделать в графических настройках, в разделе даты и времени; название пункта зависит от окружения. Если в вашем окружении пояс определяется автоматически по сети, ручная настройка может быть переопределена, а это нормально.

Пояс определяет только то, как показывается время: внутри системы события хранятся в UTC. Поэтому смена пояса, как правило, не искажает журналы и не влияет на время в файлах. Отдельный вопрос — перевод на летнее время: для многих регионов он определяется правилами зоны в системной базе, и обновления этой базы приходят вместе с обновлениями пакетов.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Синхронизация времени: включить NTP и проверить

Часы компьютера со временем отстают или спешат, поэтому их периодически подстраивают по сети с помощью протокола NTP, описанного в словаре. В настольных Ubuntu и Debian за это обычно отвечает systemd-timesyncd, в других установках может работать chrony или другая служба.

Включить автоматическую синхронизацию штатными средствами systemd можно командой sudo timedatectl set-ntp true. Если в строке NTP service значится active, а System clock synchronized равно yes, всё работает. Подробности по службе timesyncd показывает команда timedatectl timesync-status.

Если синхронизация не включается, проверьте по порядку:

  • есть ли доступ в интернет, так как служба обращается к серверам времени по сети;
  • установлена ли и запущена ли служба времени, а не конфликтуют ли две службы сразу;
  • не закрывает ли доступ к серверам времени роутер или межсетевой экран; настройка ufw описана отдельно;
  • журнал службы: journalctl -u systemd-timesyncd.

Если синхронизация отключена намеренно, например командой set-ntp false, время можно установить вручную через timedatectl set-time (при включённой синхронизации команда может отказаться работать), но точность такого способа невысока, и для обычного компьютера он нужен редко.

Двойная загрузка: почему Linux и Windows сбивают друг другу часы

Типичная жалоба: после загрузки Windows время в Linux отличается на несколько часов, и наоборот. Причина в разном представлении аппаратных часов. Linux по умолчанию считает, что аппаратные часы хранят UTC, а Windows по умолчанию записывает в них местное время. Каждая система, синхронизируя часы, пишет туда своё значение, и вторая видит смещение.

Исправить можно двумя путями. Первый — научить Linux работать с местным временем: sudo timedatectl set-local-rtc 1. Команда сработает, но в документации systemd режим назван не рекомендуемым, так как он создаёт трудности при смене пояса и перехода на летнее время. Второй путь — переключить Windows на хранение UTC; это делается правкой реестра (перед ней сделайте его резервную копию), и подробности лучше брать из документации Microsoft, так как они могут отличаться между версиями.

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

Часы сбиваются: возможные причины и порядок проверки

Если время «уезжает» повторно после того, как вы его исправили, причину стоит искать системно. Самые распространённые варианты безобидны, но один может указывать на оборудование.

СимптомВероятная причинаЧто проверить
верное время, неверный поясне задан или неправильно задан поясtimedatectl, set-timezone
сбой на несколько часов после Windowsразный режим аппаратных часовRTC in local TZ, set-local-rtc
время дрейфует при выключенной синхронизацииNTP отключёнset-ntp true
время сбрасывается после выключения питаниявероятно, разряженная батарейка материнской платыпроверить и при необходимости заменить батарейку
неверная дата в сертификатах и обновленияхвремя сильно расходитсясинхронизировать, затем повторить действие

Неверное время мешает не только удобству: из-за него могут не работать проверки сертификатов, обновления пакетов и вход на некоторые сайты, ведь они сверяют даты. После исправления повторите проблемное действие. Если время сбивается после каждого выключения питания, вероятна разряженная батарейка CMOS на материнской плате, и в этом случае помогает её замена.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
timedatectlвремячасовой поясlinuxntp

Часто задаваемые вопросы

Читайте также