Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 19 Следующий »

Данная статья применима к:

  • ОС ОН Орёл 2.12
  • ОС СН Смоленск 1.6
  • ОС СН Ленинград 8.1

В стандартные дистрибутивы ОС ОН Орёл 2.12 и ОС СН Смоленск 1.6 включены две службы точного времени:

  • Серверная служба NTP (представлена пакетами ntp и ntpdate). Может обеспечивать работу ОС в режиме как сервера точного, так и клиента.

  • Клиентская служба timedatectl / systemd-timesyncd.service. Не представлена отдельными пакетами, встроена непосредственно в ОС.
    Предназначена для использования только на клиентских ОС, и не может работать сервером точного времени.
    Поддерживает только упрощенный протокол передачи времени, однако считается более современным вариантом для типичных клиентских применений.
Службы ntp и timesyncd несовместимы между собой и их одновременная работа невозможна.

Основные понятия

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

ТипПояснениеПример

Universal time, UTC

UTC — это всемирное координированное время, стандарт времени, принятый на Земле.
От UTC отсчитываются часовые пояса. UTC заменил устаревшее время по Гринвичу (GMT).
UTC расшифровывается как Coordinated Universal Time (по-английски) или Temps universel coordonné (по-французски).
Так как не зависит от местоположения компьютера, используется в качестве системного времени:
времени в ядре ОС, для отметок времени для записи журналов, и для синхронизации времени службами времени.

Universal time: Ср 2019-02-20 07:51:49 UTC

Time ZoneВременная зона. Определяет временное смещение и параметры сезонного (зимнего/летнего)  времени.Time zone: Europe/Moscow (MSK,  +0300)

Local time

Локальное время, местное время. Получается из всемирного координированного времени добавлением временного смещения, определённого во временной зоне.
Для Москвы смещение составляет +3 часа (Time zone: Europe/Moscow (MSK, +0300)).
Используется в основном для взаимодействия с пользователями системы.

Local time: Ср 2019-02-20 10:51:49 MSK

RTC time

Аппаратное время.
Время, установленное в аппаратных часах компьютера (Real Time Clock, RTC, также CMOS или BIOS time).
Используется для первоначальной установки времени при загрузке ОС.
Аппаратные часы могут быть настроены как на всемирное координированное, так и на местное время.
При установке системного времени (UTC) на основании показаний аппаратных часов (UTC или местное) операционная система принимает решение о том, какое именно время
(UTC или местное) показывают аппаратные часы, на основании собственных настроек (см. man timedatectl).

Аппаратные часы рекомендуется всегда использовать в RTC режиме.
Если на компьютере установлены несколько операционных систем,
то во всех этих операционных системах должны быть выставлены одинаковые параметры интерпретации показаний системного времени.
RTC time: Ср 2019-02-20 07:51:49

Служба времени NTP

Эта служба устанавливается и запускается автоматически при установке ОС, и, в общем случае, для использования в качестве клиентской службы, дополнительных настроек не требует.

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


Для управления службой в состав дистрибутивов включен графический инструмент fly-admin-ntp, который можно установить из графического менеджера пакетов, или из командной строки:

apt install fly-admin-ntp

После установки графического инструмента он будет доступен в меню

Пуск -> Панель управления -> Сеть -> Синхронизация времени (NTP).

Описанные далее действия по настройке можно выполнять с помощью графического инструмента,
или непосредственно редактировать файл настроек  /etc/ntp.conf.

Свой сервер времени

По умолчанию служба ntpd настроена как клиентская.
Все подключения к ней запрещены в файле конфигурации:

# ограничения для IPv4
restrict -4 default kod notrap nomodify nopeer noquery limited

# ограничения для IPv6

restrict -6 default kod notrap nomodify nopeer noquery limited

По умолчанию заданы следующие параметры ограничений:

  • kod              — узлам, которые слишком часто отправляют запросы сначала отправить предупреждение (поцелуй смерти, kiss of death), затем отключить от сервера
  • notrap       — не принимать управляющие команды
  • nomodify — не принимать команды, которые могут вносить изменения состояния
  • nopeer      — не синхронизироваться с хостом
  • noquery    — не принимать запросы
  • limited       — ограничение одновременного приема запросов

Соответственно, для разрешения работы сервера можно добавить более слабые ограничения. Например, для сети 192.168.0.0 

# не запрещаем принимать запросы от сети 192.168.0.0, но не разрешаем управление из этой сети
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

# разрешаем управление с локального компьютера
restrict 127.0.0.1
restrict ::1

Так как сервер времени сам выступает клиентом для получения своего точного времени, настройка источников синхронизации для сервера делается так же, как и для клиента.

Передача параметров NTP через DNS

Параметры для доступа к NTP могут автоматически передаваться клиентам через DNS-сервер.
Подробности см. в DNS-сервер BIND9

Изменение настроек клиентов

Изменение настроек может понадобиться в следующих ситуациях:

  • оптимизация и локализация сетевого трафика
  • работа в изолированной сети
  • работа со специальными серверами времени

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

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst

При желании ограничить набор серверов российскими серверами можно использовать следующие настройки:

server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org

При необходимости работать в изолированной сети, или при желании ограничить свой внешний трафик, можно использовать свои локальные серверы времени:

server <IP_адрес_сервера_1>
server <IP_адрес_сервера_2>

Особенности работы

Некоторые особенности синхронизации времени описаны в статье про виртуализацию

Служба TIMESYNCD

Служба timesyncd предлагается в качестве современной "легковесной" замены ntp.
Она более проста, интегрирована в ОС, но несколько ограничена в возможностях.
Служба не может выполнять функции сервера, и список серверов времени, с которыми будет выполняться синхронизация, жестко задан в исходном коде службы.

Служба timesyncd устанавливается автоматически при установке ОС , автоматически запускается при каждой перезагрузке ОС, однако немедленно завершает свою работу с сообщением об ошибке, обнаружив, что на компьютере присутствует служба ntp.
Для использования timesyncd в первую очередь необходимо полностью удалить службу ntp:

sudo apt purge ntp
Или, как вариант (чтобы сохранить настройки ntp), остановить, полностью отключить и полностью запретить службу ntp:
sudo systemctl stop ntp
sudo systemctl disable ntp
sudo systemctl mask ntp

После чего запустить службу timesyncd:

sudo systemctl start systemd-timesyncd
Состояние службы можно проверить командой:
sudo systemctl status systemd-timesyncd
Или командой:
sudo timedatectl status
Примерный вывод команды:

      Local time: Ср 2018-12-26 11:08:12 MSK
  Universal time: Ср 2018-12-26 08:08:12 UTC
        RTC time: Ср 2018-12-26 08:08:12
       Time zone: Europe/Moscow (MSK, +0300)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Настройка аппаратных ( RTC) часов

При использовании любой службы времени рекомендуется настраивать аппаратные часы компьютера так, чтобы они показывали не локальное, а всемирное координированное время (UTC).
Если этого не сделать, возможны проблемы с коррекцией времени и сменой сезонного локального времени.
Если RTС настроены на локальное время, команда timedatectl status будет выдавать соответствующее предупреждение.
Переключение аппаратных часов на время UTC с одновременной их синхронизацией с системным временем выполняется командой:

sudo timedatectl  set-local-rtc 0
Для переключения с синхронизацией системного времени по показаниям часов RTC можно использовать опцию  --adjust-system-clock.

Настройка RTC в Windows


Если на компьютере установлены несколько операционных систем, то во всех этих операционных системах должны быть выставлены одинаковые параметры интерпретации показаний системного времени.

Чтобы ОС семейства Windows трактовали показания аппаратных часов как время UTC, использовать параметр реестра:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
  • Нет меток