Nara-auto.ru

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

Михаил Григорьев Сисадмин — это не профессия, это призвание

alt=»Блог Михаила Григорьева» />

4 Фев 2020 18:02:19 | 2 комментария

Использование systemd-timesyncd для синхронизации времени в Debian/Ubuntu

В Linux для синхронизации времени традиционно используется ntpd как стандарт де-факто, но есть другая и более простая альтернатива — это systemd-timesyncd.

Давайте настроим его для синхронизации времени, а про ntpd забудем и удалим его.

С ntpd все просто, ставится пакет ntp, настраивается файл конфигурации /etc/ntp.conf и включается служба ntp (systemctl start ntp), далее проверяем с помощью утилиты ntpstat факт синхронизации локальных часов с удаленным сервером и радуемся.
Все бы хорошо, но с помощью ntpd можно не только забирать время с удаленных сервером, но и выступать в качестве сервера времени для других, то есть ntpd принимает входящие соединения и его некорректная настройка может послужить причиной участия вашего сервера в DDoS-атаки (см. apt-get remove ntp ntpstat —purge apt autoremove

Удалить ntpd или например chronyd нужно потом, что иначе systemd-timesyncd не будет синхронизировать время. За такую проверку отвечает файл /lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf в котором прописан список бинарников, при наличии которых в системе демон systemd-timesyncd не будет работать.

Теперь настроим systemd-timesyncd, для этого в файл конфигурации /etc/systemd/timesyncd.conf пропишем список серверов времени:

Таким образом мы добавили в файл настройку NTP= определяющую список основных серверов времени, можно добавить настройку FallbackNTP= которая определит список резервных серверов времени:

Смотрим текущий статус синхронизации часов:

В строке «NTP synchronized» может стоять no если синхронизация часов по ntp до этого не была настроена вообще или yes, если до этого часы синхронизировались с помощью ntpd

Включаем использование systemd-timesyncd для синхронизации времени:

Включаем и перезапускаем службу systemd-timesyncd:

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

Значение в строке «NTP synchronized» должно измениться на yes

Если systemd-timesyncd не синхронизирует часы, то прежде всего проверьте настройки межсетевого экрана (iptables) на предмет разрешения исходящих подключений на 123 порт по протоколу UDP.

Детальную информацию о состоянии синхронизации времени можно посмотреть командой:

P.S. Утилиту timedatectl так же можно использовать для смены часового пояса, пример:

Выведем список временных зон:

Установим временную зону Asia/Yekaterinburg:

+5 свидетельствует об установке нашей зоны (Asia/Yekaterinburg это UTC+5)

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

Управление временем в linux

Управление временем в linux это комплекс мероприятий по настройке серверов и рабочих станций локальной сети для установки и поддержания точного времени.

Полный план мероприятий по управлению временем включает в себя

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

Описание управления временем в linux приведено на примере операционной системы Debian GNU/Linux.

Системное время

Системным временем называется дата и время используемые Операционной средой.

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

Читайте так же:
Водяной насос малыш регулировка

Аппаратные часы

Аппаратным временем называется дата и время используемое компьютером, когда он выключен.

Аппаратные часы устанавливаются и хранятся в БИОС компьютера.

В некоторых случаях хранение времени в аппаратных часах в формате UTC может предоставлять определённые неудобства. Например при установке времени BIOS/CMOS вручную (в соответствии с наручными часами) придётся самостоятельно учитывать разницу в часовых поясах. Или например при совместном использовании на одном компьютере операционных систем Windows и linux.

Для изменения в Linux стандарта хранения времени в аппаратных часах

  • отказ от хранения времени в аппаратных часах в формате UTC
  • применение нового стандарта хранения аппаратного времени

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

Сервер точного времени локальной сети это рабочая станция, на которой работает Сервер времени, обеспечивающий связь с Сервером точного времени в интернет для периодичного обновления системного времени.

В качестве Сервера точного времени может быть использована например программа Chrony.

Настройка часовых поясов и «летнего времени»

Часовой пояс это геофизическое деление земного шара на части по 15 градусов каждая, начиная с Гринвича, в Англии.

Настройка часового пояса необходима, если аппаратные часы хранят время в формате UTC, как это принято по умолчанию в linux и в месте установки рабочей станции осуществляется переход на «летнее/зимнее время».

Для установки часового пояса могут быть использованы команды

  • Изменение часового пояса на сервере

Синхронизация времени в локальной сети

Синхронизация времени в локальной сети это процесс связи рабочей станции с помощью NTP-клиента с сервером точного времени в локальной сети для синхронизация с ним своего системного времени.

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

Для синхронизации системного времени с помощью ntpdate

  • для «непрерывной» синхронизации с помощью cron, в например /etc/crontab добавляется строка
  • для разовой синхронизации

Синхронизация системного времени и аппаратных часов

Синхронизация системного времени и аппаратных часов это процесс установки аппаратных часов рабочей станции в соответствии с системным временем.

Такая синхронизация требуется например при настройке автовключения рабочих станций по времени, например при использовании компьютера в качестве будильника или при одновременном (поочерёдном) использовании на рабочей станции операционных сред Linux и windows.

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

Синхронизация времени Active Directory с внешним источником

  • Автор: Уваров А.С.
  • 07.05.2020

ad-pdc-ntp-000.pngСинхронизация времени — важный и во многом достаточно критичный аспект работы Active Directory, особенно сегодня, когда широко используется взаимодействие с внешними системами и работа с сотрудниками, которые могут находиться в различных часовых поясах. Применение систем виртуализации вносит дополнительные особенности, которые также следует учитывать. Поэтому данный вопрос может оказаться не столь простым, как кажется, а синхронизация с внешним источником точного времени становится одной из актуальных задач.

Прежде всего вспомним, как происходит синхронизация времени в Active Directory. В качестве эталона времени выступает контроллер, владеющий ролью эмулятора PDC. Это FSMO-роль и эмулятором PDC может являться только один контроллер в каждом домене. С ним синхронизируют время остальные контроллеры домена. Доменные ПК и рядовые серверы сверяют часы с ближайшим контроллером домена.

ad-pdc-ntp-001.png

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

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

О последней поговорим более подробно. Раньше все было довольно просто, источником времени в домене обычно служили аппаратные часы эмулятора PDC, ну отстали или убежали на пару минут, в конце концов можно и подвести. Когда добавилось требование взаимодействия с внешними системами критичными к точному времени (например, использующих криптографию), то в качестве источника времени стал выступать внешний сервер. От него получал время эмулятор PDC, с ним синхронизировались контроллеры, а от них точное время расходилось на остальных участников домена.

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

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

Давайте перейдем от теории к практике. Начнем с того, что выясним кто из контроллеров является эмулятором PDC и эталоном времени для домена. Это можно сделать на любом контроллере домена командой:

В выводе будут показаны все хозяева операций, нас интересует только эмулятор PDC.

ad-pdc-ntp-002.png

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

Если в выводе вы увидите:

то источником времени являются аппаратные часы. А если там будет:

то вы имеете дело с виртуальной машиной, которая синхронизирует время с хостом.

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

и установите для параметра Enabled значение .

ad-pdc-ntp-003.png

После данного изменения следует перезапустить Службу времени Windows или перезагрузить компьютер.

Следующим шагом будет настройка нашего эмулятора PDC на работу с внешними источниками точного времени. Все изменения также будут вноситься через реестр. Прежде всего изменим тип сервера на NTP, для этого откроем ветку

и для параметра Type укажем строковое значение NTP. А для параметра NtpServer зададим адреса серверов точного времени, после каждого из которых, через запятую укажем 0x8, если мы хотим работать как стандартный NTP-клиент или 0x1 если будем использовать собственные параметры, например:

Параметр Enabled установим в значение 1.

Затем перейдем в

и установим для параметра AnnounceFlags значение A.

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

и для параметра SpecialPollInterval укажите десятичное значение в секундах.

и зададим максимальное время опережения и отставания часов, после которых синхронизация производиться не будет. Для этого используются параметры MaxPosPhaseCorrection (опережение) и MaxNegPhaseCorrection (отставание) для которых также следует задать десятичное значение в секундах. По умолчанию стоит 48 часов. Это значит, что если время на эмуляторе PDC уйдет от точного источника более чем на 48 часов в любую сторону, то синхронизация производиться не будет.

Читайте так же:
Двигатель умз 421600 регулировка клапанов

Если вы хотите, чтобы время синхронизировалось всегда, то установите в оба параметра шестнадцатеричное значение FFFFFFFF.

Выполнив настройки перезапустите Службу времени Windows, это также можно сделать в командной строке:

После чего еще раз выполним

и убедимся, что источником времени для эмулятора PDC является внешний сервер.

ad-pdc-ntp-004.png

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

Дополнительные материалы:

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

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

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

Синхронизация времени

Синхронизация времени в Linux возможна про протоколу NTP, описанному в RFC 5905, и протоколу TIME, описанному в RFC 868. В настоящее время, в подавляющем большинстве случаев, используется протокол NTP. Кроме того, в случае выключения компьютера, либо его перезагрузки, важна синхронизация системного времени с аппаратными часами реального времени материнской платы компьютера (RTC). В ALT есть несколько пакетов, обеспечивающих синхронизацию по протоколу NTP. Использовать одновременно несколько способов не следует. Так же существует дистрибутивонезависимое MINI-HOWTO на эту тему [1] .

Содержание

tzdata [ править ]

Пакет содержит множество описаний временны́х зон, нужная из которых копируется в /etc/localtime (либо это может быть символическая ссылка на соответствующий файл). Только этот файл определяет системную временну́ю зону. Для дистрибутивов ALT с sysvinit копирование может быть выполнено командой

Сама зона, в этом случае, определяется по значению переменной ZONE из /etc/sysconfig/clock.

NTP [ править ]

пакет openntpd [ править ]

Используется по-умолчанию в большинстве дистрибутивов ALT. Отличается высокой безопасностью и как следствие — некоторыми недостатками, самый неприятный из которых — это медленный старт, доходящий в некоторых случаях до суток. Сам демон имеет название ntpd, как и аналогичный из пакета ntp, однако не является совместимым с ним ни по параметрам запуска, ни по средствам контроля, ни по конфигурационному файлу.

пакет ntp [ править ]

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

ntpd [ править ]

Собственно сам демон, который может работать как в качестве клиента, так и в качестве сервера.

ntpdate [ править ]

Утилита, позволяющая однократно посмотреть время на каком-либо NTP-сервере (не обязательно ntpd) и/или синхронизировать с ним системное время. Если запущен ntpd, требуется использовать ключ -u при запуске.

ntpq [ править ]

Утилита, позволяющая посмотреть статус работающего ntpd, как локального, так и удалённого.

пакет chrony [ править ]

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

Читайте так же:
Карбюратор викинг 540 регулировка карбюратора

пакет systemd-timesyncd [ править ]

Является клиентом SNTP, не может быть сервером NTP.

TIME 868 [ править ]

пакет xinetd [ править ]

Встроенный сервер TIME 868 имеет демон xinetd. Чтобы служба заработала, надо в /etc/xinetd.d/time-tcp и /etc/xinetd.d/time-udp заменить «disable = yes» на «disable = no». Так же, не следует забывать про основной /etc/xinetd.conf, в котором, по-умолчанию, присутствует параметр «only_from = 127.0.0.1».

пакет rdate [ править ]

TIME 868 клиент

пакет netdate [ править ]

TIME 868 клиент

DAYTIME 867 [ править ]

Упоминается в контексте Samba. надо понять и дописать, для чего

Синхронизация системного времени с RTC [ править ]

Linux kernel [ править ]

При наличии синхронизации с NTP-сервером ядро каждые 11 минут обновляет время в RTC. Начиная с 3.10, из ядра выпилили код, который пытался обновлять в RTC только минуты и секунды, чтобы обновление работало независимо от часового пояса (но в этом случае не могло быть исправлено расхождение более чем на 15 минут) [2] . В результате, при использовании синхронизаторов, умеющих сообщать ядру о наличии синхронизации, ядро получило возможность выставить значение RTC в UTC в соответствии с текущим значением времени, что внесло некоторую путаницу.

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

пакет hwclock [ править ]

При запуске однократно синхронизирует RTC с системными часами, либо наоборот. В зависимости от параметров в RTC может быть установлено время в UTC, либо локальное. В момент исполнения hwclock создаёт файл /etc/adjtime, в котором записано отклонение RTC от системного времени и какое время (локальное, либо UTC) записано в RTC. При загрузке системное время выставляется относительно RTC по данными из adjtime. Несоответствие значения временной зоны в RTC и в файле adjtime (UTC/LOCAL) приводит к сдвигу системного времени при загрузке. В некоторых случаях (например, при использовании ntpd) можно просто обнулить содержимое /etc/adjtime после использования ( >/etc/adjtime ).

другие ОС [ править ]

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

Как синхронизировать время в Linux

Linux синхронизация времени NTP

Часы в компьютере далеко не идеальны. Через несколько дней, недель или месяцев они перестают отображать правильное время. Они могут показывать «10:30», тогда как на самом деле «10:33». На старых компьютерах было обычной практикой периодически переустанавливать часы компьютера вручную. Но после того, как интернет-соединения стали повсеместными, современные операционные системы начали автоматически настраивать часы с помощью NTP-серверов.

В статье я покажу, как синхронизировать время в Linux в дистрибутивах Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro, CentOS, Elementary ОС, Zorin OS и т.д.

Синхронизация времени в Linux и NTP

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

Как включить синхронизацию времени в Linux

К счастью, большинство Linux-дистрибутивов по умолчанию синхронизируют время. Если вы не замечали, что часы вашего компьютера расходятся с часами телефона, тогда наверняка ваш дистрибутив использует NTP-клиент / демон.

Синхронизировать время в Linux с systemd

В большинстве дистрибутивов Linux используется systemd, а вместе с ним и демон systemd-timesyncd. Это означает, что у вас уже есть NTP-клиент, предварительно установленный в Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro и других. На этих дистрибутивах (и других основанных на них, например, Elementary ОС, Zorin OS) чтобы проверить, включена ли синхронизация NTP запустите команду:

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

Ntp Linux Проверка статуса Ntp на ОС Systemd

Если на выходе отображается « Network time on: yes », часы вашего компьютера автоматически синхорнизируются через NTP. Иногда вы можете также заметить NTP synchronized: — это означает, что часы синхронизируются с помощью другого инструмента.

Если вы видите Network time on: no , выполните следующую команду, чтобы включить синхронизацию времени NTP.

Это все, что вам нужно сделать в этих дистрибутивах.

Синхронизировать время в Linux без systemd

Для примера возьмем MX Linux. Запуск команды timedatectl показывает, что сетевое время включено, но systemd-timesyncd не используется. Как же синхронизировать время в таких дистрибутивах без systemd?

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

В MX Linux вы увидите результат, подобный тому, что вы видите на следующем снимке экрана.

Синхронизация времени Linux проверка Ntp Client

Из этого сообщения журнала видно, что клиент «ntpdate» запускался один раз. Это популярный клиент, установленный по умолчанию во многих дистрибутивах Linux. Он легкий и время от времени запрашивает только NTP-серверы. Он не работает в фоновом режиме и запускается сценариями, синхронизируется, а затем завершается.

Это означает, что время не синхронизируется с высокой точностью (например, миллисекунды или микросекунды), но оно достаточно точно для большинства.

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

Если по какой-то причине вы хотите установить ntp или ntpdate в операционных системах с systemd, сначала отключите ntp-клиент systemd.

Конечно, приведенная выше команда не нужна в несистемных дистрибутивах.

Установить клиент ntpdate

Это подходит для домашних компьютеров, ноутбуков и других устройств, которые не постоянно подключены к Интернету.

На Debian, Ubuntu, Linux Mint, Zorin и других дистрибутивах, основанных на них, запустите:

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

В Fedora ntpdate устарела, поэтому рекомендуется вместо этого использовать демон ntpd (см. Следующую главу). То же самое рекомендуется для всех других дистрибутивов по двум причинам:

  • Иногда они не включают ntpdate в отдельный пакет, а связывают его с ntpd из следующего раздела.
  • Они не автоматизируют запуск ntpdate автоматически при каждом сетевом подключении. Вы должны вставить ntpdate самостоятельно в скрипт, который автоматически запускается после подключения к сети.

В этом случае имеет смысл установить ntpd, как указано в следующей главе.

Установить ntpd Daemon

В Debian, Ubuntu, Zorin, Mint и других дистрибутивах, основанных на Debian или Ubuntu, запустите:

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

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