Taxitaxitaxi.ru

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

Минниахметов Равиль Юрисович

Минниахметов Равиль Юрисович

Служба времени Windows (Windows Time Service; имя службы W32Time) обеспечивает синхронизацию системных часов. В доменах Active Directory точность времени особенно важна потому, что клиенты работающие под управлением систем Windows 2000 и выше, и контроллеры домена при аутентификации используют протокол Kerberos V5, для нормальной работы которого необходимо, чтобы показания часов на компьютерах отличались не более чем на 5 минут.
В составе стека протоколов TCP/IP имеется протокол NTP (Network Time Protocol, RFC 1119), который служит для синхронизации системных часов компьютеров, связанных сетью TCP/IP. Клиент протокола NTP синхронизирует показания своих часов сервера NTP.
Примечание:
Работа службы времени определяется параметрами реестра, расположенными в разделе HKLMSYSTEMCurentControlSetServicesW32Time.

По умолчанию служба времени Windows синхронизируется от внешнего сервера времени (поскольку параметр TimeProvidersNtpClientEnable равен 1), при этом параметр ParametersType имеет значение NTP, с которым происходит синхронизация. Параметр TimeProvidersNtpServerEnabled изначально равен 0, и компьютер не может выполнять функции сервера времени.
В случае подключения компьютера к домену параметр ParametersType изменяет свое значение на NT5DS, и синхронизация времени осуществляется только от контроллеров домена. (Для систем Windows Server 2008 также можно использовать значение AllSync — тогда компьютер может получать точное время как от контроллеров домена, так и от внешних серверов времени). то же самое происходит и при повышении роли рядового сервера до контроллера домена (при этом параметр TimeProvidersNtpServerEnabled становится равным 1, поскольку каждый контроллер домена может выполнять функции сервера времени).
Примечание:
После каждого изменения параметров в реестре службы времени Windows ее следует перезапустить с помощью оснастки Службы (Service) или в окне консоли (используя команду net stop w32time && net start w32time). Если для настройки параметров используется утилита w32tm.exe, то новые значения начинают действовать только после выполнения команды:
w32tm /config /update

Клиенты, работающие под управлением систем Windows 2000/XP/Windows Server2003 и выше, автоматически синхронизируют время с контроллерами домена Active Directory в процессе загрузки системы. Контроллеры домена сверяют время с контроллером, выполняющим функции эмулятора PDC (PDC Emulator), или с любым контроллером родительского домена. Эмулятор PDC синхронизирует время с эмулятором PDC родительского домена (или корневого домена леса) или с любым сервером этого домена. Эмулятор PDC корневого домена леса должен получать время от внешнего NTP-сервера, либо возможна ситуация, когда синхронизация часов контроллера корневого домена леса не выполняется. В этом случае показания системных часов эмулятора PDC этого домена считаются эталонными.

Настройка синхронизации с источником времени
В общем случае имя или IP-адрес внешнего сервера времени можно задать с помощью команды:
net time /SETSNTP:
а команда
net time /QUERYSNTP
показывает, какой внешний сервер (серверы) времени используются в данный момент.
Примечание:
В качестве внешних можно использовать различные NTP-серверы времени, имеющиеся в Интернете, их примерный список имеется в статье КВ262680 базы знаний Microsoft.

Эту задачу можно выполнить с помощью двух команд:
w32tm /config /syncfromflags:MANUAL /manualpeerlist:
w32tm /config /update

По умолчанию все компьютеры, работающие под управлением Windows, в качетсве сервера времени используют веб-узел time.windows.com
Для того чтобы часы компьютера синхронизировались только в соответствии с иерархической структурой доменов (чтобы параметр ParametrsType изменил назначение на NT5DS), нужно выполнить команду:
w32tm /config /syncfromflags:DOMHIER /update
Команда:
w32tm /config /syncfromflags:ALL /update
позволяет получение точного времени от контроллеров домена и внешних серверов времени (при этом параметр ParametrsType изменит значение на AllSync).

Запуск NTP сервера
Служба времени в Windows Server (начиная с 2000 и выше) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра.
Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.

Затем перезапускаем службу времени командой:
net stop w32time && net start w32time

После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды
w32tm /query /configuration
Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled:1, то все в порядке, сервер времени работает.

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

Основные настройки NTP сервера
NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLMSystemCurrentControlSetservicesW32TimeParameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.

И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.

В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:

0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).

Еще один важный параметр AnnounceFlags находится в разделе реестра HKLMSystemCurrentControlSetservicesW32TimeConfig. Он отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:

0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его, как источник времени;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени для всего леса даже при отсутствии связи с вышестоящими NTP-серверами. Ни один другой контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как надежном источнике времени, если он не может найти источник времени для себя.

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

Значение AnnounceFlags составляет сумму составляющих его флагов, например:

10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.

5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.

Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update. И еще несколько команд для настройки, мониторинга и диагностики службы времени:

w32tm /monitor – при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov
w32tm /resync – при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени.
w32tm /stripchart– показывает разницу во времени между текущим и удаленным компьютером, причем может выводить результат в графическом виде. Например, команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выведет результат в текстовом виде.

w32tm /config – это основная команда, используемая для конфигурирования службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update
w32tm /query — показывает текущие настройки службы. Например команда w32tm /query /source покажет текущий источник времени, а w32tm /query /configuration выведет все параметры службы.

Ну и на крайний случай
w32tm /unregister — удаляет службу времени с компьютера.
w32tm /register – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.

Смена часового пояса в Windows
Для смены часового пояса в операционных системах семейства Windows используется специальная утилита командной строки tzutil.exe (Windows Time Zone Utility), устанавливается в виде отдельного обновления KB 2556308. Исполняемый файл утилиты хранится в каталоге %WINDIR%System32.
Запускаем командную строку (cmd.exe). Чтобы узнать текущий часовой пояс и его идентификатор (TimeZoneID), выполните команду:
tzutil /g

Выведем список всех часовых поясов с их названием и идентификаторами так:
tzutil /l

Для быстрого вывода всех доступных часовых поясов, например, со сдвигом UTC +5, используем следующую команду:
tzutil /l | find /I «utc+05»

Изменим текущий часовой пояс на (UTC+05:00) Ашхабад, Ташкент (West Asia Standart Time). Для этого нужно указать идентификатор часового пояса.
tzutil /s «West Asia Standard Time»

Проверим, что пояс сменился другим способом:
reg query HKLMSYSTEMCurrentControlSetControlTimeZoneInformation

Чтобы отключить переход на летнее время для конкретного пояса, указываем идентификатор часового пояса с суффиксом _dstoff, например
tzutil /s “West Asia Standard Time_dstoff”

После выполнения данной команды Мы изменим часовой пояс рабочей станции или сервера и отключим сезонный перевод часов.
Выведем информацию о часовом поясе и настройках сезонного перевод часов:
w32tm /tz

Управление часовым поясом из консоли PowerShell

Получаем настройки текущего часового пояса в консоли PowerShell, выполняем следующую команду
[TimeZoneInfo]::Local
Или
Get-TimeZone

Чтобы посмотреть все возможные часовые пояса, доступные в Windows можно использовать команду Powershell:
[System.TimeZoneInfo]::GetSystemTimeZones()
Или
Get-TimeZone -ListAvailable

Для смены часового пояса из PowerShell, выполните команду:
Set-TimeZone -Name «West Asia Standard Time»

Настройка NTP сервера в Windows

Начиная с Windows 2000 все операционные системы Windows включают в себя службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol).

По умолчанию служба времени в Windows сконфигурирована следующим образом:

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

Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии, и надежным источником времени можно назначить любой компьютер. В качестве примера я опишу настройку NTP-сервера в Windows Server 2008 R2, хотя со времен Windows 2000 процедура не особо изменилась.

Запуск NTP сервера

Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2012) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.

Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.

включение сервера NTP

Затем перезапускаем службу времени командой net stop w32time && net start w32time

перезапуск службы времени в Windows

После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды w32tm /query /configuration. Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled :1 , то все в порядке, сервер времени работает.

Читайте так же:
Как регулировать фары по госту

просмотр параметров службы времени в Windows

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

Основные настройки NTP сервера

NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLMSystemCurrentControlSetservicesW32TimeParameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.

И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.

В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:

0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).

настройка синхронизации NTP сервера

Еще один важный параметр AnnounceFlags находится в разделе реестра HKLMSystemCurrentControlSetservicesW32TimeConfig. Он отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:

0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его, как источник времени;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени для всего леса даже при отсутствии связи с вышестоящими NTP-серверами. Ни один другой контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как надежном источнике времени, если он не может найти источник времени для себя.

Значение AnnounceFlags составляет сумму составляющих его флагов, например:

10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.

5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.

настройка представления NTP сервера

Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).

настройка интервала синхронизации NTP сервера

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update. И еще несколько команд для настройки, мониторинга и диагностики службы времени:

w32tm /monitor – при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov
w32tm /resync – при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени.
w32tm /stripchart – показывает разницу во времени между текущим и удаленным компьютером, причем может выводить результат в графическом виде. Например, команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выведет результат в текстовом виде.

w32tm /config – это основная команда, используемая для конфигурирования службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update
w32tm /query — показывает текущие настройки службы. Например команда w32tm /query /source покажет текущий источник времени, а w32tm /query /configuration выведет все параметры службы.

Ну и на крайний случай
w32tm /unregister — удаляет службу времени с компьютера.
w32tm /register – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.

Как установить, изменить время и часовой пояс в CentOS 7, 8

Для нормального функционирования сервера требуется корректно настроить текущее время и его своевременное обновление с определенной периодичностью. Как правильно произвести смену часового пояса в centos в случае его изменения или неверного указания во время установки – одна из тем этой статьи. Также я затрону вопрос установки и использования утилиты разовой синхронизации времени ntpdate и настройки сервиса точного времени ntp.

Цели статьи

  1. Показать способы настройки и смены времени и часового пояса в centos.
  2. Рассказать о средствах для автоматической синхронизации времени.
  3. Настройка своего сервера точного времени на основе centos.

Данная статья является частью единого цикла статьей про сервер Centos.

Время на сервере CentOS

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

Читайте так же:
Регулировка карбюратора на скутере ямаха гранд аксис 100

Почему важно, чтобы в системе было правильное время? Причин может быть несколько:

  • Для корректного логирования событий той или иной службы. Например, у вас в сети случился какой-то инцидент и вы его расследуете. Удобно, когда время на всех машинах сети одинаковое, это упрощает проверку и сопоставление различных действий.
  • Могут возникнуть проблемы с работой в доменной среде windows, если у вас существенно различаются данные системных часов. Это актуально, если у вас файловый сервер centos интегрирован в доменную сеть windows. Пользователь в определенный момент не сможет получить доступ к файлам, если время сервера превысит допустимое отклонение от контроллера домена (более 5 минут). Это связано с особенностью работы протокола аутентификации Kerberos.
  • На вашем сервере может располагаться web хостинг с сайтами, в которых указано время публикации материала. Если часы сервера не будут совпадать с временной зоной основной аудитории, то могут возникать курьезные моменты, когда посетители увидят статьи, опубликованные в будущем. Так же некорректно будет работать статистика, основанная на анализе логов apache или nginx.
  • Вы используете планировщик cron в своей работе. Для корректной и предсказуемой работы запланированных событий дата и часовой пояс на сервере должны быть настроены правильно.

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

Установка и настройка времени в CentOS

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

Или более подробной команды timedatectl.

Узнать время в centos

Monдень недели, в данном случае понедельник
Oct 21месяц август, 10-е число
11:17:03текущее время часы:минуты:секунды
MSKчасовой пояс
2019текущий год

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

Здесь MM — месяц, DD — число, hh — час, mm — минуты. Таким образом, чтобы изменить дату на 22 октября, 17:10, выполняем в консоли:

Чтобы узнать текущее время без учета часового пояса, то есть время по UTC, можно воспользоваться следующим ключом команды date:

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

Установка и настройка часового пояса в CentOS

Как уже было показано раньше, чтобы узнать в каком часовом поясе находятся системные часы сервера centos, необходимо воспользоваться командой date. В нашем случае timezone указана как MSK. Это общепризнанное сокращение для часовой зоны Московское время (Moscow Time). Если у вас указан другой часовой пояс, а вы хотите установить московскую временную зону, то вам нужно выполнить следующие процедуры:

Обновить системный список часовых поясов tzdata с помощью yum:

Настраиваем часовой пояс с помощью утилиты timedatectl.

Эта утилита выполняет очень простое действие. Она проставляет символьную ссылку с нужного файла timezone из /usr/share/zoneinfo на файл /etc/ localtime . Тот же самый результат вы получите, если сделаете это сами вручную.

Перед этим лучше сделать резервную копию текущей timezone на всякий случай:

centos timezone

Далее найдите в каталоге /usr/share/zoneinfo/ необходимую временную зону. В нашем случае это файл Moscow в папке Europe.

Установить символьную ссылку на указанный файл timezone:

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

Синхронизация времени с помощью chrony, ntpdate

Способов синхронизации времени в centos существует как минимум три:

  • ручной с помощью утилиты ntpdate
  • автоматический при помощи сервиса ntp или chrony
  • автоматический через утилиту из пакета systemd — timesyncd.

Рассмотрим сначала вариант ручной однократной синхронизации при помощи программы ntpdate. Она позволяет разово синхронизировать локальное время с эталонным сервером времени в интернете. Подобных эталонов существует великое множество. Мы для примера воспользуемся одним из них — pool.ntp.org

Запускаем синхронизацию времени:

Если получите ошибку

значит утилита у вас не установлена. Установить ее можно из базового репозитория.

Это актуально только для 7-й версии, в В CentOS 8 ntp и ntpdate убрали из репозиториев . Для синхронизации времени можно использовать только chrony. Ее мы рассмотрим ниже.

Утилита ntpdate провела синхронизацию, в результате которой к моему системному времени было добавлено 0.001664 секунды для приближения к эталонному. Если в результате работы синхронизации вы получаете ошибку: no server suitable for synchronization found то попробуйте в работе утилиты использовать непривилегированный порт. По-умолчанию ntpdate работает по 123 порту. Если он закрыт на фаерволе, то помочь в синхронизации поможет следующий параметр:

Если у вас запуск ntpdate завершается ошибкой — the NTP socket is in use, exiting, значит у вас уже установлена и запущена служба ntpd, которая заняла udp порт, необходимый для работы ntpdate. Установкой и настройкой этой службы мы и займемся далее.

Как я уже сказал, в CentOS 8 служба ntpd и утилита ntpdate стали недоступны в базовых репозиториях. Возможно, их как-то удастся установить из сторонних репозиториев, но большого смысла нет. Можно воспользоваться программой chrony. Ставим ее:

Запускаем и добавляем в автозагрузку.

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

Программа стартовала и уже выполнила синхронизацию с источниками точного времени в интернете. Каких-то особых настроек для получения точного времени больше не надо. Служба будет постоянно работать и выполнять синхронизацию. Проверим это с помощью timedatectl.

timedatectl

systemd-timesyncd

Отдельно пару слов о службе systemd-timesyncd, которая в системах с systemd выступает в роли простого sntp клиента, в отличие от chrony и ntp, которые в том числе могут работать в качестве сервера времени. В Debian служба systemd-timesyncd присутствует в составе systemd и ей можно пользоваться, что достаточно удобно. Легкий полновесный клиент, который по дефолту есть в составе системы.

Я сначала не мог понять, что с systemd-timesyncd в Centos. Команда вроде есть и работает, но как оказалось, это просто обертка над chrony. Реально команда управляет именно chrony и без него не работает. Без него вы получите ошибку, при попытке активировать компонент timesyncd.

Если вернете chrony в систему, то timedatectl будет запускать именно его. Немного погуглив, я понял в чем тут дело. Red Hat компилирует systemd без компонента systemd-timesyncd, предлагая по дефолту именно chrony.

Настройка сервера ntp в CentOS 7

Сервер времени ntp использует в своей работе одноименный протокол — Network Time Protocol, которому для работы необходим UDP порт 123. Так что перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.

Устанавливаем сервер ntp:

Читайте так же:
Регулировка насос форсунок cummins

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

После завершения редактирования файла настроек запускаем службу синхронизации времени:

Проверяем запустился ли сервер:

настройка ntp centos

Все в порядке, служба слушает положенный порт 123. Проверим еще на всякий случай системные логи centos:

centos ntp server настройка ntpd centos

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

Теперь настроим автозапуск ntp вместе с загрузкой centos:

Наблюдать за работой службы ntp можно с помощью команды ntpq -p:

настройка ntp сервера

Что значат все эти данные:

remoteАдрес удаленного эталона времени, с которого была синхронизация
refidУказывает, откуда каждый эталон получает точное время. Это могут быть другие сервера времени, система GPS и другое
stStratum (уровень) это число от 1 до 16, которое указывает на точность эталона. 1- максимальная точность, 16 — сервер недоступен. Уровень вашего сервера будет равен уровню наименее точного удаленного эталона плюс 1.
pollИнтервал в секундах между опросами
reachВосьмеричное представление массива из 8 бит, отражающего результаты последних восьми попыток соединения с эталоном. Бит выставлен, если удаленный сервер ответил.
delayВремя задержки ответа на запрос о точном времени
offsetРазница между вашим и удаленным сервером
jitterДисперсия (Jitter) — это мера статистических отклонений от значения смещения (поле offset) по нескольким успешным парам запрос-ответ. Чем меньше значение дисперсии, тем лучше, поскольку позволяет точнее синхронизировать время.

Настройка сервера chrony в CentOS 8

С сервером времени chrony все будет практически идентично ntpd. Принцип работы и формат конфигов у них примерно одинаковый. Если вы еще не установили chrony, то сделайте это и добавьте его в автозагрузку.

Конфигурация сервера времени chrony располагается в файле /etc/chrony.conf. Ниже представлен минимум настроек, необходимых, чтобы он работал в качестве локального сервера времени для клиентов.

Параметр rtcsync задает возможность периодически записывать системное время в RTC (Real Time Clock) — аппаратные часы компьютера. Описание всех параметров файла конфигурации можно посмотреть тут — https://chrony.tuxfamily.org/doc/3.4/chrony.conf.html.

Не забываем настраивать firewalld, если отдельно не настраивали iptables, для доступа клиентов к серверу.

Теперь можно перезапустить chrony и проверить синхронизацию времени с какого-нибудь клиента в сети.

Идем на другой компьютер и там проверяем работу нашего сервера времени.

Часто задаваемые вопросы по теме статьи (FAQ)

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

Я бы рекомендовал так делать. Если перезагрузиться совсем нельзя, я рекомендую вручную перезапустить основные сервисы. Не все могут автоматически корректно отработать внезапное изменение времени. Может начаться путаница в логах, особенно если время изменилось существенно (на несколько часов).

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

Нет, это не возможно. Да и не имеет практического смысла. Обе эти программы проверяют при запуске, свободен ли udp порт 123 на сетевом интерфейсе. Если он занят другой программой, то запуск завершится с ошибкой.

В общем случае лучше настроить у себя в локальной сети сервер времени и синхронизироваться с него. Так у вас гарантированно у всех серверов будет одинаковое время, даже если по какой-то причине сам сервер времени не будет синхронизироваться с внешним источником. Это лучше, нежели разное время на всех серверах.

Заключение

Подведем итог опубликованного материала. Мы рассмотрели практически все, что связано со временем на сервере CentOS. Да и не только на нем, вся информация в статье актуальна практически для любого Linux дистрибутива. Мы научились устанавливать время, изменять часовой пояс, синхронизировать время с помощью ntp, chrony и настраивать сервер времени в локальной сети.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Синхронизация времени сервер по умолчанию

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

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

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

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

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

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

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

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

Читайте так же:
Регулировка ручного тормоза зил 131

Служба VMICTimeSync работает в режиме образца или синхронизации и влияет только на перевод часов вперед. В режиме образца, предусматривающем функционирование службы W32time, служба VMICTimeSync опрашивает узел каждые 5 секунд и предоставляет W32time образцы времени. Примерно каждые 30 секунд служба W32time корректирует гостевые часы, используя для этого последний образец времени. Режим синхронизации активируется, если гостевая система возобновляет работу или при отставании гостевых часов от часов узла более чем на 5 секунд. Если служба W32time функционирует правильно, последнее никогда не происходит.

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

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

Наилучшие результаты для развертываний Windows достигаются при использовании Windows Server 2016 в качестве операционной системы на виртуальной машине, что позволяет пользоваться последними улучшениями в плане синхронизации времени.

Есть три способа настроить синхронизацию времени для виртуальных машин Windows, размещенных в Azure:

  • время узла и time.windows.com; это конфигурация по умолчанию для образов из Azure Marketplace;
  • только от узла;
  • использование другого внешнего сервера времени с применением или без применения времени узла.

Конфигурация по умолчанию

По умолчанию образы виртуальных машин с ОС Windows настроены для синхронизации w32time из двух источников:

  • поставщика NtpClient, который получает сведения с сервера time.windows.com;
  • службы VMICTimeSync, которая служит для передачи времени узла виртуальным машинам и корректировки после приостановки виртуальных машин для обслуживания. Для поддержания точного времени узлы Azure используют принадлежащие Майкрософт устройства Stratum 1.

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

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

Так как time.windows.com является общедоступным NTP-сервером, синхронизация времени с ней требует передачи трафика через Интернет, а различные задержки пакетов могут негативно повлиять на качество синхронизации времени. Удаление time.windows.com путем переключения на синхронизацию только между узлами иногда может улучшить результаты синхронизации времени.

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

Внешний сервер времени

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

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

Проверьте, настроен ли поставщик времени NtpClient для использования явно заданных NTP-серверов (NTP) или синхронизации времени в домене (NT5DS).

Если виртуальная машина использует NTP, вы увидите такой результат:

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

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

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

Ниже приведены возможные результаты и их значение.

  • time.windows.com — в конфигурации по умолчанию служба w32time получает время с сервера time.windows.com. Качество синхронизации времени зависит от подключения к нему через Интернет и задержек пакетов. Это обычный результат, который можно получить на физическом компьютере.
  • Поставщик синхронизации времени виртуальных машин IC — время виртуальной машины синхронизируется с узлом. Это обычный результат, который можно получить на виртуальной машине, работающей в Azure.
  • Сервер домена — текущая машина находится в домене, и домен определяет иерархию синхронизации времени.
  • Другой сервер — служба w32time была явным образом настроена для получения времени с другого сервера. Качество синхронизации зависит от качества этого сервера.
  • Локальные часы CMOS — часы не синхронизированы. Этот результат может быть получен, если служба w32time не успела запуститься после перезагрузки или если не доступен ни один настроенный источник времени.

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

Команда Azure непрерывно работает над улучшением синхронизации времени на серверах и гарантирует, что вся инфраструктура синхронизации времени размещается в принадлежащих Майкрософт центрах обработки данных. Если возникают проблемы с синхронизацией времени в конфигурации по умолчанию, в которой в качестве основного источника времени используется сервер time.windows.com, вы можете включить синхронизацию времени только с узлом с помощью приведенных ниже команд.

Пометьте поставщик VMIC как включенный:

Пометьте поставщик NTPClient как выключенный:

Перезапустите службу w32time:

Виртуальные машины Windows Server 2012 и Windows Server 2012 R2

В Windows Server 2012 и Windows Server 2012 R2 существуют разные параметры по умолчанию для синхронизации времени. По умолчанию служба w32time настроена таким образом, чтобы снизить нагрузку на службу в течение точного времени.

Если вы хотите перевести развертывания Windows Server 2012 и Windows Server 2012 R2 на использование новых параметров по умолчанию, в соответствии с которыми предпочтение отдается точности времени, выполните указанные ниже действия.

Измените интервалы опроса и обновления w32time в соответствии с параметрами Windows Server 2016.

Чтобы Служба W32Time могла использовать новые интервалы опроса, Нтпсерверс необходимо пометить как их использование. Если серверы помечены битовой маской 0x1, данный механизм переопределяется и служба w32time использует значение SpecialPollInterval. Убедитесь в том, что указанные NTP-серверы используют флаг 0x8 или не используют флаг вообще:

Проверьте, какие флаги используются для NTP-серверов.

Ниже приведены ссылки на дополнительные материалы по синхронизации времени:

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