Основные понятия
При работе с часами используются следующие понятия, связанными друг с другом через параметры временной зоны и настроек аппаратных часов:
Тип | Пояснение | Пример | ||||
---|---|---|---|---|---|---|
Universal time, UTC | UTC — это всемирное координированное время, стандарт времени, принятый на Земле. | 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 time: Ср 2019-02-20 07:51:49
|
Служба времени NTP
Эта служба устанавливается при установке ОС Astra Linux, однако, в зависимости от используемой версии ОС может автоматически не запускаться.
Проверить статус службы можно командой:
Command |
---|
sudo systemctl status ntp |
Если служба не запущена, всключить её автоматический запуск при старте компьютера и запустить её можно командами:
Command |
---|
sudo systemctl enable ntp sudo systemctl start ntp |
После запуска, в общем случае, для использования в качестве клиентской службы, дополнительных настроек не требует.
Информация |
---|
Настроенная на автоматический запуск при перезагрузке компьютера служба ntp будет запускаться автоматически, но, если она не сможет найти ни одного сервера времени из перечисленных в её конфигурации, то будет так же автоматически прекращать свою работу. |
Для управления службой в состав дистрибутивов включен графический инструмент fly-admin-ntp, который можно установить из графического менеджера пакетов, или из командной строки:
Command |
---|
sudo apt install fly-admin-ntp |
После установки графического инструмента он будет доступен в меню:
Информация |
---|
Пуск -> Панель управления -> Сеть -> Синхронизация времени (NTP). |
Описанные далее действия по настройке можно выполнять с помощью графического инструмента,
или непосредственно редактировать файл настроек /etc/ntp.conf
.
Свой сервер времени
При настройках "по умолчанию" служба ntpd выдает отметки времени всем, кто их запросит, но никому не разрешает управлять собой удалённо.
Пример файла конфигурации службы NTP (/etc/ntp.conf):
Раскрыть |
---|
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help driftfile /var/lib/ntp/ntp.drift # Enable this if you want statistics to be logged. statistics loopstats peerstats clockstats
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# By default, exchange time with everybody, but don't allow configuration. # Local users may interrogate the ntp server more closely. # Needed for adding pool entries # Clients from this (example!) subnet have unlimited access, but only if
# If you want to listen to time broadcasts on your local subnet, de-comment the |
Все подключения к службе ограничены, а управляющие подключения запрещены:
Информация |
---|
# ограничения для IPv4 |
По умолчанию заданы следующие параметры ограничений:
- kod — узлам, которые слишком часто отправляют запросы сначала отправить предупреждение (поцелуй смерти, kiss of death), затем отключить от сервера
- notrap — не принимать управляющие команды
- nomodify — не принимать команды, которые могут вносить изменения состояния
- nopeer — не синхронизироваться с хостом
- noquery — не принимать запросы
- limited — ограничение одновременного приема запросов
При этом управление с локального компьютера разрешено, и по необходимости можно добавить более слабые ограничения. Например, для сети 192.168.0.0
Информация |
---|
# не запрещаем принимать запросы от сети 192.168.0.0, но не разрешаем управление из этой сети # разрешаем управление с локального компьютера |
Так как сервер времени сам выступает клиентом для получения своего точного времени, настройка источников синхронизации для сервера делается так же, как и для клиента.
После внесения изменений в конфигурацию следует перезапустить сервис:
Command |
---|
sudo service ntp restart |
Контроль состояния сервиса NTP
Для контроля состояния сервиса NTP предусмотрена команда ntpq, входящая в пакет сервера.
Эта команда получает состояние сервиса с помощью стандартных запросов и выводит сводку на печать.
Типичный вызов команды:
Command |
---|
ntpq -pn |
Типичный вывод команды при нормально работающем сервисе:
Информация |
---|
remote refid st t when poll reach delay offset jitter ============================================================================== 0.ru.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ru.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ru.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ru.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000 127.127.1.0 .LOCL. 10 l 1101 64 0 0.000 0.000 0.000 +185.209.85.222 195.91.239.8 2 u 20 64 377 10.631 0.690 0.355 *195.91.239.8 .PPS. 1 u 19 64 377 1.256 0.081 0.065 +192.36.143.130 .PPS. 1 u 18 64 377 19.755 0.129 0.330 -37.193.156.169 80.242.83.227 2 u 12 64 377 44.877 -0.832 2.427 -95.165.138.248 89.109.251.24 2 u 7 64 377 3.118 0.241 0.140 |
Где:
- первый символ в строке - статус выбора:
- * — выбранный север времени;
- + —новый сервер;
- o — PPS-источник (источник секундных импульсов);
- пробел — не работающий источник;
- — x и др. — «забракованные» (ненадежные) источники.
- remote - адрес опрошенного сервера времени;
- refid - источник сигналов времени, с которым синхронизируется опрошенный сервер.
Это может быть другой сервер, а могут быть аппаратные часы.
В приведённом примере видно, что серверы первого стратума синхронизируются по аппаратным часам; - st - уровень (стратум) сервера. Может принимать значения от 0 до 16. Чем ниже уровень - тем точнее сервер.
Значение стратума 16 скорее всего говорит о том, что сервер признан негодным источником; - t - тип сервера (u - unucast, m - multicast, l - local, p - pool и т.д.);
- when - время, прошедшее с последней, в секундах, если не указано иное;
- poll - интервал опроса (двоичный логарифм периода опроса в секундах);
- reach - восьмеричное значение сдвигового регистр доступности.
Отражает доступность сервера при последних восьми опросах, при 100% доступности проходит значения 0, 1, 3, 7, 17, 37, 77, 177, 377 и далее остаётся равным 377; - offset - смещение времени относительно локального сервера;
- jitter- дисперсия (разброс) времени прохождения пакетов при обмене с сервером
Принудительная коррекция времени с помощью команды ntpdate
Для коррекции показаний времени в составе дистрибутивов предусмотрен инструмент командной строки ntpdate.
Этот же инструмент может испоьзоваться для периодической коррекции времени (например, с помощью службы cron).
Он не устанавливается по умолчанию, и может быть установлен с помощью графического менеджера пакетов или из командной строки командой
Информация |
---|
sudo apt install ntpdate |
Типичные применения:
проверка доступности сервера времени запросом времени без коррекции показаний:
Command sudo ntpdate -q 0.ru.pool.ntp.org коррекция времени:
Предупреждение Инструмент ntpdate при запуске проверяет, работает ли сервис ntp, и если сервис работает, то коррекция времени выполняться не будет.
Соответственно, перед выполнением коррекции времени сервис ntp следует остановить, а затем - запустить.Command sudo service ntp stop
sudo ntpdate -bv 0.ru.pool.ntp.org
sudo service ntp start
Коррекция времени при недоступности сетевого порта 123
Команда ntpdate может применяться для периодической коррекции времени в ситуациях неработоспособности сервиса ntp из-за недоступности сетевого порта 123. Для этого используется опция -u (запрос времени с непривилегированног порта):
Command |
---|
sudo service ntp stop sudo ntpdate -ubv 0.ru.pool.ntp.org sudo service ntp start |
См. тж. про применение ntpdate в статье про виртуализацию
Передача параметров 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 |
Предупреждение |
---|
Для того, чтобы служба NTP могла обращаться к серверам, имена которых заданы в текстовом виде (как в примере выше), необходимо, чтобы был настроен и работал сервис разрешения имён DNS. |
При желании ограничить набор серверов российскими серверами можно использовать следующие настройки:
Информация |
---|
pool 0.ru.pool.ntp.org iburst pool 1.ru.pool.ntp.org iburst pool 2.ru.pool.ntp.org iburst pool 3.ru.pool.ntp.org iburst |
Кроме того, можно использовать серверы ВНИИФТРИ, актуальный список которых доступен по ссылке: http://vniiftri.ru/ru/uslugi-serverov
При необходимости работать в изолированной сети, или при желании ограничить свой внешний трафик, можно использовать свои локальные серверы времени:
Информация |
---|
server <IP_адрес_сервера_1> server <IP_адрес_сервера_2> |
Особенности работы в виртуальных машинах
Некоторые особенности синхронизации времени описаны в статье про виртуализацию
Служба TIMESYNCD
Служба timesyncd предлагается в качестве современной "легковесной" замены ntp.
Она более проста, интегрирована в ОС, но несколько ограничена в возможностях.
Информация |
---|
Служба TIMESINCD не может выполнять функции сервера, это исключительно клиентская служба. |
Служба timesyncd устанавливается автоматически при установке ОС , автоматически запускается при каждой перезагрузке ОС, однако немедленно завершает свою работу с сообщением об ошибке, обнаружив, что на компьютере присутствует служба ntp.
Отключить невостребованный автоматический запуск службы можно командой:
Command |
---|
sudo timedatectl set-ntp false |
Включить, соответственно, командой (однако, пока присутствует служба NTP, служба TIMESYNCD всё равно работать не будет):
Command |
---|
sudo timedatectl set-ntp true |
Для использования timesyncd в первую очередь необходимо полностью удалить службу ntp:
Command |
---|
sudo apt remove ntp |
После чего запустить службу timesyncd:
Command |
---|
sudo systemctl start systemd-timesyncd |
Состояние службы можно проверить командой:
Command |
---|
sudo systemctl status systemd-timesyncd |
Или командой:
Command |
---|
sudo timedatectl status |
Примерный вывод команды:
Информация |
---|
Local time: Ср 2018-12-26 11:08:12 MSK |
Выбор серверов времени
Служба TIMESYNCD по умолчанию скомпилирована для работы с набором серверов времени из пула Debian.
Дополнительно служба TIMESYNCD получает имена серверов времени от службы systemd-networkd, если служба systemd-networkd предоставляет такую информацию, т.е. в конфигурационных файлах этой службы (каталоги /lib/systemd/network/, /run/systemd/network/, /etc/systemd/network/ или файл /lib/) указаны серверы NTP, привязанные к сетевым интерфейсам (подробнее см. man systemd.network).
Дополнительные и резервные серверы могут быть указаны в собственных конфигурационных файлах службы TIMESYNCD
Информация |
---|
/etc/systemd/timesyncd.conf /etc/systemd/timesyncd.conf.d/*.conf /run/systemd/timesyncd.conf.d/*.conf /usr/lib/systemd/timesyncd.conf.d/*.conf |
Опции в конфигурационном файле:
- NTP= - разделённый пробелами основной список имён NTP-серверов. Объединяется со списком полученных от службы systemd-networkd. По умолчанию список пустой.
- FallbackNTP= разделённый пробелами список имён резервных NTP-серверов.
TIMESYNCD перебирает по очереди все серверы из основного списка, и, если не удалось связаться ни с одним из серверов, обращается к серверам из резервного списка.
Настройка режима интерпретации показаний аппаратных ( RTC) часов
При установке ОС
При установке ОС ОН Орёл 2.12 режим интерпретации показаний аппаратных часов можно выбрать в окне "Дополнительные настройки ОС", пункт "Системные часы установлены на местное время":
На установленной ОС
При использовании любой службы времени рекомендуется настраивать аппаратные часы компьютера так, чтобы они показывали не локальное, а всемирное координированное время (UTC).
Если этого не сделать, возможны проблемы с коррекцией времени и сменой сезонного локального времени.
Если RTС настроены на локальное время, команда timedatectl status будет выдавать соответствующее предупреждение.
Переключение аппаратных часов на время UTC с одновременной их синхронизацией с системным временем выполняется командой:
Command |
---|
sudo timedatectl set-local-rtc 0 |
Для переключения с одновременной синхронизацией системного времени по показаниям часов RTC можно использовать опцию --adjust-system-clock.
Переключение аппаратных часов на локальное время можно выполнить командой:
Command |
---|
falsesudo timedatectl set-local-rtc 1 |
Настройка режима интерпретации RTC в Windows
Предупреждение |
---|
Если на компьютере установлены несколько операционных систем, то во всех этих операционных системах должны быть выставлены одинаковые параметры интерпретации показаний системного времени. |
Чтобы ОС семейства Windows трактовали показания аппаратных часов как время UTC, использовать параметр реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal", установив его в единицу:
Информация |
---|
false[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001 |
или
Информация |
---|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=qword:00000001 |