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

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

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

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

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

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

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

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

  • Клиентская служба timedatectl / systemd-timesyncd.servic. Не представлена отдельными пакетами, встроена непосредственно в ОС.
    Предназначена для использования только на клиентских ОС, и не может работать сервером точного времени.
    Поддерживает только упрощенный протокол передачи времени, однако считается более современным вариантом для типичных клиентских применений.
Службы 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 systemdatectl).

Аппаратные часы рекомендуется всегда использовать 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 использовать параметр реестра:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001





  • Нет меток