4h4-auto.ru

4х4 Авто
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Время в linux. UTC или localtime

Время в linux. UTC или localtime?

Сразу после установки линукса необходимо выполнить кое-какие начальные настройки: локаль, сеть, время… Так вот о времени.

В линукс есть два времени: аппаратное и системное. Аппаратное — это время на часах материнской платы компьютера, а системное — это время в самой операционной системе.

В файле /etc/adjtime хранится величина отклонения аппаратных часов и какое время они показывают, локальное или UTC .

Команда hwclock показывает, устанавливает аппаратное время, синхронизирует системное с аппаратным временем и наоборот, а также задает какое время показывают часы на материнке: местное или по Гринвичу.

Команда date показывает и устанавливает системное время.

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

  1. Аппаратное время настроено по Гринвичу, а системное время определяется согласно настроенного часового пояса в системе путем прибавления разницы к аппаратному времени;
  2. Аппаратное и системное совпадают и равны текущему местному времени.

Первый вариант очень удобен при частой смене часовых поясов или переводе часов на зимнее/летнее время. Достаточно просто сменить часовой пояс в настройках.

Текущий часовой пояс хранится в файле /etc/localtime. А задается путем создания символической ссылки, вот так:

Теперь остается сгенерировать /etc/adjtime:

Все, «железные» часики должны быть настроены на UTC , а системное время будет определяться согласно /etc/localtime. Если куда-то переезжаем, просто меняем часовой пояс.

Для второго варианта действия аналогичные. Указываем часовой пояс и генерируем /etc/adjtime. Только при генерации hwclock запускаем с другим параметром:

Второй вариант удобен для тех, кто одновременно использует на одной машине линукс и виндовс. В виндовсе по-умолчанию настроено так, что системное время совпадает с аппаратным. И если у вас в линуксе будет настроено по UTC , то в линукс и виндовс время будет постоянно отличаться. Виндовс тоже можно перенастроить на первый вариант, но эта статья про линукс.

28 ноября 2012 Дмитрий в рубрике мучаем UNIX .

Добавить в Twitter

Добавить в Telegram

Комментарии

Большое спасибо _

И теперь понятно, что в установщике Debian означает галочка, что системные часы показывают время в UTC . А ведь даже нет подсказки, которая сделала бы этот момент интуитивно понятным (время + select <это время по UTC | это локальное время>), жаль.

один умный напишет, а остальные просто бездумно переписывают одно и тож сочинение с сайта на сайт, а вот необходимо отключить синхронизацию времени с интернетом в linux, и не на одном сайте ни слова…. если уж пишите что-то так давайте описание в двух хотяб вариантах,

Оставить комментарий

Привет, читатель! Здесь пишут о веб-разработке и немного на другие темы, так или иначе связанные с компьютером. Используй страницу поиска и архива для поиска нужной тебе информации.

Установка сервера точного времени NTP в Ubuntu 16.04

NTP — Network Time Protocol — специальный сетевой протокол,используемый для синхронизации внутренних часов компьютера по сети.

До недавнего времени за синхронизацию времени отвечал демон ntpd. Он подключал сервер к пулу серверов NTP, что обеспечивало точное хронометрирование.

В Ubuntu 16.04 вместо ntpd по умолчанию использует timesyncd. Сервис timesyncd подключается к тем же серверам времени и работает примерно таким же образом, но он легче ntpd и интегрирован с systemd.

В большинстве случаев сервис timesyncd подходит для работы, но если ваши приложения чувствительны к малейшим колебаниям времени, лучше обслуживать их с помощью ntpd, так как этот демон использует более сложные методы синхронизации системного времени.

Прежде чем установить ntpd, отключите timesyncd:

Убедитесь, что timesyncd отключился:

В выводе должна быть строка:

Читайте так же:
Регулировка зажигания на мтз с д 243

Установка NTP и конфигурирование NTP сервера в Ubuntu 16.04 для синхронизации точного времени через интернет

В своей работе NTP использует порт 123 по протоколу UDP. Клиенты запрашивают текущее время на сервере и используют его для установки своих собственных часов.

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

Конфигурирование NTP сервера

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

Каждая строка означает группу серверов, которые будут cообщать нашему серверу корректное время. Повысить точность синхронизации можно с помощью опции iburst (она указывает, что на сервер для синхронизации нужно посылать не один, а несколько пакетов):

Можно также указать предпочитаемый сервер при помощи опции prefer:

Работу общедоступных серверов точного времени координирует проект pool.ntp.org — это огромный кластер серверов точного времени, предоставляющий надежный и простой в использовании NTP-сервис для миллионов клиентов.

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

Правим файл настроек NTP — /etc/ntp.conf:

Резервный сервер точного времени

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

Перестартуем NTP сервер:

И в завешении установки проверим статус NTP сервера:

Должно выдать что-то типа:

В заголовке указываются следующие параметры:

remote — адрес сервера точного времени (в этой графе отображаются серверы из списка в конфигурационном файле);
refid — вышестоящий сервер (тот, от которого сервер из предыдушей графы получает синхронизацию);
st — уровень (stratum) сервера;
t — тип пира (u- unicast, m- multicast);
when — время последней синхронизации;
poll — время в секундах, за которое демон NTP синхронизируется с пиром;
reach — состояние доступности сервера; после восьми успешных попыток синхронизации значение этого параметра становится равным 377;
delay — время задержки ответа от сервера;
offset — разница времени между нашим сервером и сервером синхронизации; положительное значение этого параметра означает, что наши часы спешат, отрицательное — что отстают;
jitter — смещение времени на удаленном сервере.

Слева от адреса сервера могут быть указаны следующие символы:

* сервер выбран для синхронизации;
+ сервер, пригодный для обновления (с которым можно синхронизироваться);
— с сервером синхронизироваться не рекомендуется;
х сервер недоступен.

Для защиты от DDoS-атак по умолчанию в файлe /etc/ntp.conf установлены следующие ограничения:

Параметры nomodify, notrap, nopeer и noquery запрещают сторонним клиентам изменять что-либо на сервере. Параметр kod (эта аббревиатура означает kiss of death — «поцелуй смерти») обеспечивает дополнительную защиту: клиент, отправляющий слишком частые запросы, сначала получит так называемый kod-пакет (предупреждение об отказе в обслуживании), а затем будет отключен от сервера.

Чтобы с NTP-сервером могли синхронизироваться машины из локальной сети, в конфигурационный файл следует добавить следующую строку:

Для локального хоста можно установить доступ к NTP-серверу без ограничений:

Записки IT специалиста

NTP-server-debian-ubuntu-000.pngМы уже неоднократно поднимали вопрос важности синхронизации времени, особенно сейчас, когда даже в небольших сетях появляется все больше и больше служб критичных к точному времени. Это криптография, системы контроля доступа и видеонаблюдения, кассовые узлы. В этих условиях точности обычных аппаратных часов начинает не хватать и хотя во многих случаях допускается разбег времени не более пяти минут, лучше не ждать пока это случится (как всегда в самый неподходящий момент), а обеспечить свою инфраструктуру собственным сервером времени. В данной статье мы рассмотрим, как это сделать в системах основанных на Debian.

Читайте так же:
Как правильно отрегулировать зажигание снегоход буран

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

Данную и все последующие команды следует выполнять с правами суперпользователя.

После установки часового пояса обновите список пакетов и установите пакет NTP-сервера:

Пакет работоспособен сразу после установки и конфигурация из коробки достаточно актуальна, но лучше внести в нее некоторые дополнительные штрихи. Для изменения настроек откроем файл /etc/ntp.conf.

Начнем с вышестоящих серверов для синхронизации времени, рекомендуется выбирать ближайшие к вам сервера, их адреса можно получить на сайте ntppool.org. Затем найдем в конфигурационном файле следующую секцию:

NTP-server-debian-ubuntu-001.png

И заменим значения на следующие:

В нашем примере приведены настройки для использования российских серверов времени. Ниже зададим настройку для синхронизации с аппаратными часами на случай отсутствия синхронизации с серверами в интернет:

Первая строка задает адрес аппаратных часов — 127.127.1.0, вторая указывает приоритет — stratum — он выбран таким образом, чтобы при наличии интернета NTP-сервер не синхронизировался с аппаратными часами. У серверов входящих в пулы ntp.org значение stratum равно двум.

Затем перейдем к списку контроля доступа, который состоит из сетевых адресов отсортированных по возрастанию адресов и масок. Запись по умолчанию — default соответствует адресу 0.0.0.0 с маской 0.0.0.0, если в записи не указана маска, то автоматически подставляется значение 255.255.255.255, что соответствует конечному хосту.

Кроме адресов строки списка содержат флаги, флаги указывают на те или иные ограничения, если строка не содержит флагов — это означает полный доступ к серверу. По умолчанию список контроля доступа, следующий:

NTP-server-debian-ubuntu-002.png

Разберем его подробнее. Первые две строки задают значения по умолчанию, т.е. для любых клиентов, в сетях IPv4 и IPv6:

Перечисленные флаги имеют значения:

  • kod — отправка клиенту, посылающему нежелательные запросы, пакета KoD (Kiss O’Death), получатель такого пакета обязан выполнить предписанную ему проверку и изменить свое поведение, в противном случае такой клиент будет отключен от сервера.
  • notrap — запрет приема управляющих сообщений
  • nomodify — запрет приема сообщений, изменяющих состояние сервера
  • nopeer — запрет установки одноранговых отношений с другими NTP-серверами
  • noquery — запрет любых запросов для синхронизации времени поступающих с других серверов
  • limited — запрет обслуживания, если интервал между пакетами от клиента превышает разрешенные значения

Под ними расположены строки, дающие полный доступ к серверу локальной системе:

Отсутствие маски указывает на то, что это конечный узел, а отсутствие флагов предоставляет полный доступ.

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

Если нужно запретить доступ к серверу времени, то следует использовать флаг ignore. Допустим, мы хотим запретить доступ для всех клиентов доменной сети, кроме эмулятора PDC:

Расположение строк не имеет значения, так как при запуске сервера все адреса будут отсортированы по возрастанию адреса/маски.

После внесения изменений следует перезапустить службу:

Проверить ее статус можно командой:

Состояние синхронизации с вышестоящими серверами можно узнать командой:

Которая выдаст нам следующий вывод:

NTP-server-debian-ubuntu-003.png

На что следует обратить внимание? Прежде всего на символы слева от адреса сервера:

  • * — сервер выбран для синхронизации
  • + — сервер пригодный для синхронизации
  • — синхронизация с этим сервером не рекомендуется
  • x — сервер недоступен

Затем на колонку refid — показывающее вышестоящий сервер синхронизации и колонку offset, которое показывает расхождение ваших часов с эталоном, при положительном значении наши часы спешат, при отрицательном отстают.

Читайте так же:
Как установить трос сцепления с автоматической регулировкой

В колонке st указывается stratum — приоритет сервера, а delay содержит задержку ответа от сервера. Как видим, в нашем случае служба времени выбрала для синхронизации сервер с приоритетом 1, который синхронизируется от GPS-часов, несмотря на более высокий уровень задержки при работе с ним.

Ну и не забудьте разрешить доступ к вашему NTP-серверу в брандмауэре, добавив в правила iptables строку:

При необходимости можно ограничить доступ сетевым интерфейсом:

Как видим, настроить собственный сервер времени очень и очень просто, можно просто установить пакет и работать. Но гораздо лучше разобраться с настройками, хотя бы на базовом уровне, после чего для вас конфигурация NTP перестанет быть «китайской грамотой» и вы будете понимать, как именно работает ваш сервер.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Синхронизация времени для виртуальных машин Linux в Azure

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

Платформа Azure основана на инфраструктуре, работающей под управлением Windows Server 2016. В Windows Server 2016 реализованы улучшенные алгоритмы коррекции времени и синхронизации локальных часов с временем в формате UTC. Функция "Точное время" в Windows Server 2016 значительно улучшила работу службы VMICTimeSync, которая регулирует точность времени в виртуальных машинах и на сервере. К числу улучшений относится более точное исходное время при запуске или восстановлении виртуальной машины, а также коррекция задержки при прерывании.

Краткий обзор службы времени Windows см. в этом видео.

Дополнительные сведения см. в статье Точное время в Windows Server 2016.

Обзор

Точность часов компьютера оценивается по тому, насколько близки их показания к стандартному времени в формате UTC. Время UTC устанавливается по точным атомным часам, отклонение которых не превышает одной секунды за 300 лет. Однако для считывания времени UTC напрямую требуется специальное оборудование. Вместо этого со временем UTC синхронизируются серверы времени, к которым затем обращаются другие компьютеры. Таким образом достигается масштабируемость и надежность. На каждом компьютере выполняется служба синхронизации времени, которая знает, какие серверы времени следует использовать, и регулярно проверяет необходимость коррекции часов компьютера, при необходимости корректируя время.

Узлы Azure синхронизированы с внутренними серверами времени Майкрософт, которые получают время от принадлежащих Майкрософт устройств Stratum 1 с антеннами GPS. Виртуальные машины Azure могут получать точное время от узла (время узла) непосредственно с сервера времени или использовать эти способы в сочетании.

На автономном оборудовании операционная система Linux считывает показания аппаратных часов узла только при загрузке. После этого время отсчитывается с помощью таймера прерываний в ядре Linux. В такой конфигурации в показаниях часов со временем будут возникать отклонения. В более новых дистрибутивах Linux в Azure виртуальные машины могут использовать поставщик VMICTimeSync, входящий в состав служб интеграции Linux (LIS), чтобы чаще запрашивать актуальное время от узла.

Взаимодействие виртуальной машины с узлом также может влиять на показания часов. Во время обслуживания с сохранением памяти виртуальные машины приостанавливаются на срок до 30 секунд. Например, до начала обслуживания часы виртуальной машины показывают 10:00:00, и приостановка длится 28 секунд. Когда виртуальная машина возобновляет работу, ее часы по-прежнему показывают 10:00:00, то есть отстают на 28 секунд. Чтобы скорректировать это отклонение, служба VMICTimeSync отслеживает происходящее в узле и обновляет часы истинного времени в виртуальных машинах Linux.

Читайте так же:
Волга 31029 регулировка фар

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

  • Проверка подлинности будет завершаться сбоем. Протоколы безопасности, такие как Kerberos, или технологии, зависящие от сертификатов, требуют согласования времени в системах.
  • Очень трудно понять, что случилось в системе, если журналы (или другие данные) рассогласованы по времени. Одно и то же событие будет представляться как произошедшее в разное время, что усложняет корреляцию.
  • Если часы идут неверно, могут происходить ошибки при выставлении счетов.

Варианты настройки

Для синхронизации времени необходимо, чтобы на виртуальной машине Linux была запущена служба синхронизации времени, а также источник точных данных о времени, по которым выполняется синхронизация. Обычно в качестве службы синхронизации времени используется ntpd или chronyd, хотя существуют и другие общедоступные службы синхронизации времени, которые также можно использовать. В качестве источника данных о точном времени можно использовать узел Azure или внешнюю службу времени, доступ к которой осуществляется через общедоступный Интернет. Сама по себе служба VMICTimeSync не обеспечивает непрерывную синхронизацию времени между узлом Azure и виртуальной машиной Linux, а только после приостановки обслуживания узла, как описано выше.

Традиционно большинство образов Azure Marketplace с Linux настраиваются одним из двух способов:

  • Служба синхронизации времени по умолчанию не запущена
  • Ntpd выполняется как служба синхронизации времени и синхронизируется с внешним источником времени NTP, доступ к которому осуществляется по сети. Например, в образах Marketplace Ubuntu 18.04 LTS используется сервер ntp.ubuntu.com.

Чтобы проверить правильность синхронизации ntpd, выполните команду ntpq -p .

С начала 2021 года в новейшие образы Azure Marketplace с Linux вносятся изменения с целью использования chronyd в качестве службы синхронизации времени, а chronyd настроен на синхронизацию с узлом Azure, а не внешним источником времени NTP. Время узла Azure обычно является лучшим источником времени для синхронизации, так как он очень точно и надежно работает и доступен без переменных сетевых задержек, характерных для использования внешнего источника времени NTP через общедоступный Интернет.

VMICTimeSync используется параллельно и выполняет две функции:

  • Немедленное обновление часов истинного времени виртуальной машины Linux после события обслуживания узла
  • Создание экземпляра источника истинного времени для аппаратного обеспечения по протоколу точного времени (PTP) IEEE 1588 в качестве устройства /dev/ptp, которое передает точное истинное время с узла Azure. Можно настроить синхронизацию chronyd с этим источником истинного времени (в новейших образах Linux эта конфигурация установлена по умолчанию). Дистрибутивы Linux с ядром версии 4.11 или новее (или версией 3.10.0-693 или новее для RHEL/CentOS 7) поддерживают устройство /dev/ptp. Для ядер предыдущих версий, которые не поддерживают /dev/ptp для передачи истинного времени с узла Azure, доступна только синхронизация с внешним источником истинного времени.

Разумеется, конфигурацию по умолчанию можно изменить. Образ предыдущих версий, настроенный на использование ntpd и внешнего источника времени, можно настроить на использование chronyd и устройства /dev/ptp для передачи времени с узла Azure. Аналогично, образ, использующий время узла Azure через устройство /dev/ptp, можно настроить для использования внешнего источника времени NTP, если этого требуют приложения или рабочая нагрузка.

Читайте так же:
Тяга регулировки угла наклона фар паджеро 4

Средства и ресурсы

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

Службы интеграции

Проверьте, загружена ли служба интеграции (hv_utils).

Должно отображаться примерно следующее:

Проверка источника времени PTP

В более новых версиях Linux в рамках поставщика VMICTimeSync доступен источник времени PTP, соответствующий узлу Azure. В более ранних версиях Red Hat Enterprise Linux или CentOS 7.x можно скачать службы интеграции Linux и использовать их для установки обновленного драйвера. Когда источник времени PTP доступен, устройство Linux отображается как /dev/ptp x.

Проверьте доступные источники времени PTP.

В этом примере возвращается значение ptp0. Мы используем его для проверки имени часов. Чтобы проверить устройство, определите имя часов.

Должно быть получено значение hyperv , означающее узел Azure.

В виртуальных машинах Linux с включенной функцией ускорения сети в списке может отображаться несколько устройств PTP, так как драйвер Mellanox mlx5 также создает устройство /dev/ptp. Поскольку порядок инициализации может отличаться при каждом запуске Linux, устройством PTP, соответствующим узлу Azure, может быть /dev/ptp0 или /dev/ptp1, что усложняет настройку chronyd с корректным источником истинного времени. Для решения этой проблемы в новых версиях образов Linux имеется правило udev, которое создает символьную ссылку /dev/ptp_hyperv к той записи /dev/ptp, которая соответствует узлу Azure. Необходимо настроить использование этой символьной ссылки в chrony вместо /dev/ptp0 или/dev/ptp1.

chrony

В Ubuntu версии 19.10 и выше, Red Hat Enterprise Linux и CentOS 8.x для средства chrony настроено использование источника времени PTP. В старых выпусках Linux вместо chrony используется управляющая программа NTP (ntpd), которая не поддерживает источники PTP. Чтобы использовать PTP в этих выпусках, необходимо вручную установить и настроить chrony (в chrony.conf) с помощью следующей инструкции:

Если доступен/Дев/ptp_hyperv символьную ссылку, используйте его вместо/dev/ptp0, чтобы избежать путаницы с устройством/Дев/ПТП, созданным драйвером Mellanox mlx5.

Сведения о Стратум не передаются автоматически с узла Azure в гостевой компьютер Linux. В приведенной выше строке конфигурации указывается, что источник времени узла Azure должен рассматриваться как Стратум 2, что, в свою очередь, приводит к тому, что гостевой компьютер Linux сообщает себя как Стратум 3. Вы можете изменить параметр Стратум в строке конфигурации, если хотите, чтобы гостевой компьютер Linux мог сообщить о себе по-другому.

По умолчанию chrony ускоряет или замедляет работу системных часов, чтобы устранить смещение времени. Если смещение станет слишком большим, chrony не сможет его исправить. Чтобы устранить эту проблему, можно изменить параметр makestep в файле /etc/chrony.conf так, чтобы принудительно вызывать синхронизацию времени при достижении заданного порога смещения.

В нашем примере chrony будет обновлять время, если смещение превысит 1 секунду. Чтобы применить изменения, перезапустите службу chronyd:

Дополнительные сведения об NTP в Ubuntu см. в статье, посвященной синхронизации времени.

Дополнительные сведения об NTP в Red Hat см. в статье, посвященной настройке NTP.

Дополнительные сведения о chrony см. в разделе, посвященном использованию chrony.

systemd

В SUSE и Ubuntu версии 19.10 и ниже синхронизация времени настраивается с помощью systemd. Дополнительные сведения об Ubuntu см. в статье, посвященной синхронизации времени. Дополнительные сведения о SUSE см. в разделе 4.5.8 статьи с заметками о выпуске SUSE Linux Enterprise Server 12 с пакетом обновления 3 (SP3).

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector