Windows время синхронизация с linux
Как синхронизировать время с NTP в Linux с помощью Chrony Tool
В операционных системах и серверах на базе Linux часовой пояс и отметки времени играют жизненно важную роль в оптимизации и управлении сервером. Если вы являетесь администратором сервера, вы, вероятно, уже знаете, что изменение отметки времени сервера может сыграть важную роль в обеспечении доступа к вашему серверу из разных мест.
Если время вашего компьютера Linux не синхронизировано правильно, ваша система может не получить соответствующее обновление пакета. Чтобы избежать этой проблемы, вы можете использовать NTP (сетевой протокол времени) на вашем компьютере Linux для синхронизации времени вашего компьютера.
Синхронизация времени с NTP в Linux
В каждой операционной системе есть свой метод поддержания точного времени машины в соответствии с часовым поясом. В Linux работу по поддержанию точного времени вашего компьютера выполняет Chrony. Chrony — это сетевой протокол времени для Debian, Red Hat, Arch и других дистрибутивов Linux, который может синхронизировать время по сетевому протоколу.
У Chrony есть демон, который незаметно работает на вашем компьютере с Linux. Разработчики программного обеспечения Red Hat создали Chrony; сейчас он широко используется во всех операционных системах на базе Linux. Он написан на языке программирования C и имеет лицензию конфиденциальности GNU. Этот пост покажет вам, как синхронизировать время с NTP в Linux с помощью инструмента Chrony (NTP).
Шаг 1. Установите Chrony в Linux
Самый первый шаг — установка Chrony в Linux. Его легко установить на Debian, Red Hat, серверах и других дистрибутивах Linux из официального репозитория Linux. Если вы являетесь пользователем Debian / Ubuntu Linux, вы можете запустить следующую команду aptitude, указанную ниже, чтобы установить Chrony в вашей системе.
Если вы являетесь пользователем Red Hat или Fedora Linux, вы можете установить Chrony, выполнив следующую команду DNF или YUM в оболочке терминала.
Установите Chrony в Red Hat Linux
Установите Chrony в Fedora Linux
После успешной установки Chrony на вашем компьютере с Linux теперь вы можете включить его и проверить статус Chrony на вашем компьютере. Выполните следующие команды управления системой в хронологическом порядке в терминальной оболочке Linux, чтобы включить и увидеть состояние системы.
Вы также можете выполнить следующую команду, чтобы проверить активность Chrony на вашем компьютере с Linux.
Шаг 2. Отслеживайте параметры Chrony в Linux
После установки инструмента Chrony на вашем Linux теперь вы можете отслеживать режим источника, состояние источника, IP-адрес, частоту дискретизации NTP из оболочки терминала. Выполните следующую команду в оболочке терминала с правами root, чтобы проверить параметры Chrony.
Вы также можете запустить следующую команду sourcestats в оболочке терминала, чтобы отслеживать количество точек выборки, частоту, сетевой IP-адрес, адрес сервера NTP и другую подробную информацию о сервере NTP на вашем компьютере Linux.
Шаг 3. Настройте Chrony для синхронизации времени
Chrony запускает в системе демон для автоматической синхронизации времени в системе Linux через сервер NTP. Вы можете найти сценарий конфигурации Chrony в файле /etc/chrony/chrony.conf. Чтобы отредактировать и настроить конфигурацию Chrony, вы можете запустить следующую команду в оболочке терминала. Здесь я использую редактор сценариев Nano для редактирования сценария конфигурации Chrony; вы также можете использовать другие редакторы.
Обычно NTP использует пакетный сервер пула 0.pool.ntp.org для синхронизации времени с NTP в Linux. Но вы можете добавить следующие адреса серверов NTP в сценарий конфигурации для синхронизации времени с NTP в Linux.
После настройки адресов NTP-серверов в вашей системе Linux не забудьте перезапустить службы Chrony на вашем компьютере. Выполните следующую команду управления системой, чтобы перезапустить демон Chrony на вашем компьютере с Linux.
Шаг 4. Отслеживайте время с помощью Chrony
Ранее мы видели, как отслеживать параметры Chrony и как настраивать параметры Chrony. Теперь мы можем видеть источники Chrony для отслеживания параметров демона Chrony. Выполните следующую команду в оболочке терминала с правами суперпользователя, чтобы отслеживать исходный код Chrony.
Вы также можете отслеживать записи отслеживания Chrony, выполнив следующую команду в своей оболочке.
Наконец, запустите следующую команду timedatectl в оболочке терминала, чтобы отобразить текущее местное время, всемирное время, время RTC, часовой пояс и статус сервера NTP на вашем компьютере с Linux.
Выводы
Синхронизация времени с использованием сетевых протоколов в Linux — не очень сложный процесс; скорее, это простой процесс. Во всем посте я описал, почему синхронизация времени на машине Linux важна и как синхронизировать время с NTP в Linux. После того, как вы все сделали правильно, если вы обнаружите, что время ваших компьютеров не синхронизировалось после каждого перезапуска, убедитесь, что батарея BIOS C-MOS функционирует безупречно.
Пожалуйста, поделитесь им со своими друзьями и сообществом Linux, если вы найдете этот пост полезным и информативным. Вы также можете записать свое мнение об этом сообщении в разделе комментариев.
Синхронизация времени в Ubuntu 16.04
Точное хронометрирование – очень важный аспект корректной работы многих современных программ. Из-за неправильного времени на сервере могут возникнуть ошибки, и данные могут быть повреждены (например, при обновлении БД или логировании).
В Ubuntu 16.04 синхронизация времени встроена и включена по умолчанию; за неё отвечает сервис timesyncd. Данное руководство ознакомит вас с базовыми командами для управления временем, научит проверять состояние timesyncd и устанавливать другие сервисы сетевого времени.
Требования
- Сервер Ubuntu 16.04.
- Пользователь с доступом к sudo (руководство нужно выполнить в сессии этого пользователя).
Все необходимые инструкции можно найти здесь.
Основные команды для управления временем
date – основная команда для определения времени на сервере. Любой пользователь может использовать её, чтобы узнать дату и время:
date
Wed Apr 26 17:44:38 UTC 2017
Обычно по умолчанию серверы используют часовой пояс UTC (Coordinated Universal Time) – это всемирное координированное время. UTC последовательно устанавливает время на серверах и минимизирует ошибки в случае если сервера инфраструктуры находятся в разных часовых поясах.
Чтобы изменить часовой пояс, используйте команду timedatectl.
Запросите список доступных поясов:
Перемещаться вниз по списку можно с помощью клавиши пробела, а вверх – с помощью b. Выберите часовой пояс, запишите его и нажмите q, чтобы закрыть список.
Используйте следующую команду, указав в ней требуемый часовой пояс:
sudo timedatectl set-timezone America/New_York
Примечание: Вместо America/New_York укажите необходимый часовой пояс.
Убедитесь, что пояс изменился:
date
Wed Apr 26 13:55:45 EDT 2017
Аббревиатура часового пояса будет отражать новое значение.
Управление сервисом timesyncd
До недавнего времени за синхронизацию времени отвечал демон ntpd. Он подключал сервер к пулу серверов NTP, что обеспечивало точное хронометрирование.
Теперь Ubuntu вместо ntpd по умолчанию использует timesyncd. Сервис timesyncd подключается к тем же серверам времени и работает примерно таким же образом, но он легче ntpd и интегрирован с systemd.
Узнать состояние timesyncd позволяет команда timedatectl.
timedatectl
Local time: Wed 2017-04-26 17:20:07 UTC
Universal time: Wed 2017-04-26 17:20:07 UTC
RTC time: Wed 2017-04-26 17:20:07
Time zone: Etc/UTC (UTC, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
Команда выведет местное время, универсальное время (если вы используете часовой пояс UTC, оно будет совпадать с местным временем) и дополнительную информацию о состоянии сетевого времени. Строка «Network time on: yes» означает, что сервис timesyncd включен, а «NTP synchronized: yes» указывает, что время было успешно синхронизировано.
Если сервис timesyncd отключен, введите:
sudo timedatectl set-ntp on
После этого снова запросите состояние timesyncd. В строках Network time on и NTP synchronized должно быть значение yes.
Переход с timesyncd на ntpd
В большинстве случаев сервис timesyncd подходит для работы, но если ваши приложения чувствительны к малейшим колебаниям времени, лучше обслуживать их с помощью ntpd, так как этот демон использует более сложные методы синхронизации системного времени.
Прежде чем установить ntpd, отключите timesyncd:
sudo timedatectl set-ntp no
Убедитесь, что timesyncd отключился:
В выводе должна быть строка:
Network time on: no
Теперь можно установить ntp:
sudo apt-get install ntp
Демон ntpd запускается автоматически после установки. Запросите состояние ntpd:
sudo ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p — 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p — 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p — 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p — 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p — 64 0 0.000 0.000 0.000
-makaki.miuku.ne 210.23.25.77 2 u 45 64 3 248.007 -0.489 1.137
-69.10.161.7 144.111.222.81 3 u 43 64 3 90.551 4.316 0.550
+static-ip-85-25 130.149.17.21 2 u 42 64 3 80.044 -2.829 0.900
+zepto.mcl.gg 192.53.103.108 2 u 40 64 3 83.331 -0.385 0.391
ntpq – это инструмент запросов для ntpd. Флаг –p запрашивает данные о серверах NTP, к которым подключается ntpd. Ваш вывод будет отличаться, но в нём всё равно должен быть стандартный пул Ubuntu.
На установку соединения ntpd потребуется несколько минут.
Заключение
Теперь вы умеете управлять системным временем сервера Ubuntu.
Больше информации можно найти в документации NTP или на сайте проекта NTP Pool.
ИСПРАВЛЕНИЕ: Произошла ошибка во время синхронизации Windows с time.windows.com
Автоматическая синхронизация часов была частью Windows в течение многих лет, и эта функция также присутствует в Windows 10. К сожалению, немногие пользователи имеют некоторые проблемы с синхронизацией часов, и они сообщают об ошибке Произошла ошибка во время синхронизации Windows с time.windows.com сообщение об ошибке.
Как я могу исправить ошибку, произошедшую во время синхронизации windows с time.windows.com?
Содержание:
- Проверьте, работает ли служба времени Windows
- Используйте другой сервер
- Перезапустите службу времени Windows.
- Использовать командную строку
- Отключите сторонний брандмауэр
- Изменить интервал обновления по умолчанию
- Добавьте больше серверов в реестр
- Изменить значения реестра
Решение 1. Проверьте, работает ли служба времени Windows
Функция синхронизации времени в значительной степени зависит от службы времени Windows, и если служба времени Windows не работает, вы можете столкнуться с этой ошибкой. Чтобы устранить эту проблему, необходимо изменить настройки службы времени Windows, выполнив следующие действия:
- Нажмите Windows Key + R и введите services.msc . Нажмите Enter или нажмите ОК .
- Когда откроется окно « Службы» , найдите службу Windows Time и дважды щелкните ее, чтобы открыть ее свойства.
- Установите для параметра « Тип запуска» значение « Автоматический» и нажмите кнопку « Пуск» , чтобы запустить службу времени Windows .
- После этого нажмите Apply и OK, чтобы сохранить изменения.
Решение 2. Используйте другой сервер
Пользователи сообщили, что им удалось решить эту проблему, просто используя другой сервер. Чтобы изменить сервер синхронизации, сделайте следующее:
- Нажмите Windows Key + S и введите дату. Выберите дату и время из меню.
- Когда откроется окно « Дата и время» , перейдите в Интернет-время и нажмите кнопку « Изменить настройки» .
- Выберите time.nist.gov в качестве Сервера и нажмите кнопку Обновить сейчас . Некоторые пользователи также сообщают, что использование pool.ntp.org в качестве сервера решает эту проблему, поэтому вы также можете попробовать его использовать.
- Нажмите OK, чтобы сохранить изменения.
Существуют разные серверы времени, которые вы можете использовать, и некоторые из них: time-a.nist.gov, time-b.nist.gov, time-a.timefreq.bldrdoc.gov и time-b.timefreq.bldrdoc. правительство
Прежде чем попробовать это решение, убедитесь, что служба времени Windows настроена на работу в автоматическом режиме. Для получения подробных инструкций о том, как это сделать, обязательно ознакомьтесь с нашим предыдущим решением.
Решение 3 — Перезапустите службу Windows Time
Чтобы решить эту проблему, вам, возможно, придется перезапустить службу времени Windows . Для этого откройте окно « Службы» и дважды щелкните службу времени Windows, чтобы открыть ее свойства.
Если служба работает, остановите ее. Установите для параметра « Тип запуска» значение « Автоматически» и снова запустите службу. Нажмите Apply и OK, чтобы сохранить изменения и перезагрузить компьютер.
Некоторые пользователи также предлагают изменить настройки входа в систему службы времени Windows перед применением изменений и перезагрузкой компьютера. Для этого выполните следующие действия:
- Перейдите в раздел «Службы» и откройте свойства службы Windows Time .
- Перейдите на вкладку « Вход в систему » и выберите вариант учетной записи локальной системы . Установите флажок Разрешить службе взаимодействовать с опцией рабочего стола .
- После этого нажмите Apply и OK и перезагрузите компьютер.
Имейте в виду, что вам нужно сделать этот шаг сразу после перезапуска службы Windows Time.
Решение 4 — Использование командной строки
По словам пользователей, вы можете решить эту проблему, просто используя командную строку и выполнив несколько команд. Для этого выполните следующие действия:
- Нажмите клавиши Windows + X, чтобы открыть меню Win + X, и выберите « Командная строка» («Администратор») .
- Когда запускается командная строка , введите следующие команды:
- w32tm / debug / disable
- w32tm / незарегистрированный
- w32tm / регистрация
- чистый старт w32time
- Если все прошло успешно, вы должны увидеть «Служба времени Windows запускается.Служба времени Windows была успешно запущена » .
- Закройте командную строку и попробуйте синхронизировать ваши часы.
Решение 5. Отключите сторонний брандмауэр
Инструменты брандмауэра всегда полезны, потому что они предотвращают доступ потенциально опасных приложений к Интернету. К сожалению, иногда эти инструменты могут мешать вашим часам и вызывать появление этой ошибки.
Чтобы исправить эту ошибку, не забудьте временно отключить брандмауэр и проверить, устраняет ли это проблему. Если проблема не устранена, вы можете полностью удалить брандмауэр.
Пользователи сообщили, что после перехода в стандартный режим в своем брандмауэре или после полного его отключения они смогли синхронизировать свои часы без каких-либо проблем.
Кроме того, вы можете настроить брандмауэр на разблокировку доступа NPT через UDP-порт 123. Если вы изменили конфигурацию брандмауэра маршрутизатора, вам также может потребоваться разблокировать UDP-порт 123 на маршрутизаторе.
Вам нужно настроить роутер? Измените любые настройки легко с этими программными инструментами .
Решение 6. Изменить интервал обновления по умолчанию
Иногда эти ошибки могут возникать из-за вашего интервала обновления, но вы можете легко исправить эту ошибку, изменив несколько значений в вашем реестре.
Мы должны предупредить вас, что изменение реестра может привести к проблемам со стабильностью системы, если вы делаете это неправильно, поэтому вы можете создать резервную копию реестра на всякий случай. Чтобы отредактировать реестр, сделайте следующее:
- Нажмите Windows Key + R и введите regedit . Нажмите Enter или нажмите ОК .
- Когда редактор реестра запустится, перейдите к ключу HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W32Time TimeProviders NtpClient на левой панели. Дважды щелкните ключ SpecialPollInterval .
- В разделе Base выберите Decimal . По умолчанию значение должно быть равно 604800 . Это число представляет 7 дней в секундах, но вы можете изменить его на 86400, чтобы оно представляло 1 день.
- После этого нажмите кнопку ОК, чтобы сохранить изменения.
Решение 7 — Добавьте больше серверов в реестр
Иногда вам просто нужно переключиться на другой сервер времени, и если вы хотите, вы можете добавить эти серверы в реестр, выполнив следующие действия:
- Откройте редактор реестра и перейдите к ключу HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion DateTime Servers на левой панели.
- Вы должны увидеть несколько значений, доступных на правой панели. Каждый сервер будет представлен числом. Чтобы добавить новый сервер времени, щелкните правой кнопкой мыши пустое место и выберите « Создать»> «Строковое значение» .
- Введите соответствующий номер в качестве имени, в нашем случае это 3, так как у нас уже есть 3 доступных сервера, и дважды щелкните по нему.
- В поле « Значение» введите адрес сервера. Пользователи сообщали, что сервер tick.usno.navy.mil работал для них, поэтому вы можете добавить его, если хотите. Нажмите OK, чтобы сохранить изменения.
- Необязательно: Вы можете добавить столько серверов, сколько хотите, выполнив предыдущие шаги. Что касается серверов, вы можете добавить любой из них:
- time-a.nist.gov
- time-b.nist.gov
- 128.105.37.11
- europe.pool.ntp.org
- clock.isc.org
- north-america.pool.ntp.org
- time.windows.com
- time.nist.gov
После добавления серверов в реестр просто перейдите к настройкам времени и даты и выберите любой из добавленных вами серверов. Для получения дополнительной информации о том, как изменить сервер времени, обязательно проверьте Решение 2 для получения подробных инструкций.
Решение 8 — Изменить значения реестра
Пользователи сообщили, что вы можете решить эту проблему, просто изменив два значения в вашем реестре. Для этого выполните следующие действия:
- Откройте редактор реестра и перейдите к ключу HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W32Time Config на левой панели.
- В правой панели дважды щелкните MaxNegPhaseCorrection и установите для данных значения значениеffffff. Нажмите OK, чтобы сохранить изменения.
- Дважды щелкните MaxPosPhaseCorrection и установите значение данных в значение ffffff. Нажмите OK, чтобы сохранить изменения.
- Закройте редактор реестра .
После этого попробуйте снова синхронизировать ваши часы. Прежде чем попробовать это решение, рекомендуется сделать резервную копию реестра, если что-то пойдет не так.
Произошла ошибка во время синхронизации Windows с time.windows.com. Ошибка может помешать синхронизации ваших часов, но вы можете легко решить эту проблему, изменив сервер времени или воспользовавшись любым из наших решений.
Если у вас есть еще вопросы или предложения, не стесняйтесь оставлять их в разделе комментариев ниже.
ЧИТАЙТЕ ТАКЖЕ:
- Исправлено: значки синхронизации Dropbox не отображаются в Windows 10
- Исправлено: Chrome не синхронизируется в Windows 10
- Cortana теперь синхронизирует уведомления между телефонами на базе Windows 10 / Android и ПК
- Исправлено: не удается синхронизировать электронную почту AOL с приложением Windows 10 Mail
- Исправлено: Runtime Broker вызывает высокую загрузку процессора
Примечание редактора: этот пост был первоначально опубликован в сентябре 2016 года и с тех пор был полностью переработан и обновлен для обеспечения свежести, точности и полноты.
Как установить, изменить время и часовой пояс (timezone) в Debian
Системное время — важный параметр в работе сервера, так как на него завязаны почти все службы. Сегодня я расскажу, как настроить время в сервере Debian — установить его, указать или сменить часовой пояс, а так же настроить автоматическое обновление. Отдельно затрону тему своего сервера времени в локальной сети.
Данная статья является частью единого цикла статьей про сервер Debian.
Цели статьи
- Показать, как смотреть и настраивать системное время в Debian.
- Рассказать, как управлять часовыми поясами.
- Настроить автоматическую синхронизацию времени через интернет.
- Показать настройку своего ntp сервера в информационной системе.
Введение
Во время установки Debian, сервер автоматически настраивает системное время на основе информации из bios. Инсталлятор предлагает вам выбрать только часовой пояс. При этом, если вы не правильно указали часовой пояс (timezone), его без проблем можно изменить после установки.
Так же ситуация, когда необходимо изменить время или часовой пояс, может возникнуть, если вы арендуете сервер за границей и вам разворачивают систему из готового образа. В таком случае timezone может быть указана не такая, как вы хотите. Надо будет изменить.
Зачем, собственно, следить за точным временем на сервере, кроме непосредственно удобства восприятия этого времени? Причин может быть много. Перечислю основные, которые пришли в голову.
- Точное время на сервере необходимо для корректного логирования всех событий и последующего расследования инцидентов. Более того, одинаковое время должно быть на всех серверах, которые участвуют в работе информационной системы. Если это не так, то расследование инцидентов становится затруднительным.
- В доменной середе Windows для корректной работы протокола аутентификации Kerberos требуется примерно одинаковое время на всех участниках домена. Если ваш сервер Debian является членом домена, важно, чтобы его время не сильно отличалось от времени контроллера домена. Его нужно обязательно синхронизировать с ним.
- На сервере может располагаться какой-то сервис, который взаимодействует с пользователями. Например, новостной сайт, где в статьях указано точное время публикации. Если неправильно настроить часы или timezone, может возникнуть ситуация, когда для некоторых пользователей опубликованные материалы будут отображаться со временем из будущего.
- Планировщик cron в своей работе использует системные часы. Если вы хотите предсказуемое поведение запланированных задач, время и часовой пояс должны быть настроены правильно.
Для избежания этих и других проблем, предлагаю приступить к настройке времени, даты и часового пояса на сервере под управлением системы Debian.
Как посмотреть и узнать системное время
Начнем с самого простого — подключимся к серверу по ssh и посмотрим в консоли на текущее время. Сделать это можно с помощью простой команды date.
Wed | день недели, в данном случае среда |
21 Aug | число и месяц, 21-е августа |
2019 | год |
03:38:12 | время в формате часы:минуты:секунды |
PM | обозначение времени суток, am или pm, до или после полудня |
MSK | часовой пояс, он же timezone |
Как вы видите, у нас установлен часовой пояс MSK, текущая дата и время в 12-ти часовом формате. Это не очень удобно. Если вам нужно посмотреть время в 24-х часовом формате, добавьте отображение +%R к date.
Подобные параметры удобно использовать в скриптах. Вот наиболее популярные комбинации просмотра текущего времени, которые использую я.
Также есть еще один способ получить полную информацию о времени сервера Debian — воспользоваться командой timedatectl.
Установка и настройка времени в Debian
Для того, чтобы вручную установить дату, используем упомянутую выше команду date, только уже с дополнительными параметрами.
Здесь 08 — месяц, 21 — число, 15 — час, 55 — минуты. Таким образом, формат команды получился вот такой — date MMDDhhmm .
То же самое, только через timedatectl.
Если вы получили ошибку — Failed to set time: Automatic time synchronization is enabled, значит у вас уже настроено автоматическое обновление времени. Об этом подробнее мы поговорим ниже. В таком случае timedatectl, в отличие от date, время менять не будет.
С помощью команды date так же можно посмотреть текущее время системы без учета часового пояса, то есть время по UTC.
В выводе видно время относительно нулевого меридиана, без поправок на часовой пояс. После установки корректного времени переходим к настройке часового пояса.
Установка, настройка и изменение часового пояса
Выше я рассказал, как узнать, в каком часовом поясе находятся системные часы сервера debian. В моем случае timezone установлена как MSK, то есть московский часовой пояс. Если у вас указан другой часовой пояс, а вы, к примеру, хотите установить московский, то делается это просто. Смена часового пояса выполняется через timedatectl:
Посмотреть список всех timezоne, доступных для установки на сервере, можно командой:
Перед настройкой или изменением часового пояса, рекомендуется обновить список timezone на сервере. Они периодически меняются.
После того как обновили и настроили часовой пояс, можно приступать к синхронизации времени.
Timedatectl для настройки времени в Debian
В большинстве современных дистрибутивов с systemd служба синхронизации времени уже присутствует в дефолтной установке и реализуется через systemd-timesyncd. Эта служба призвана заменить ntpd. Со слов разработчиков, она легче и быстрее, чем ntpd, плюс интегрирована в systemd, поэтому для автоматической синхронизации времени рекомендуется использовать именно ее.
Тут важно понимать, что systemd-timesyncd не может работать в качестве сервера времени, который мы настроим ниже. Так что, если у вас одиночный сервер, вам вполне подойдет timesyncd. Если же вы хотите использовать свой сервер времени, то надо настраивать ntp.
Для начала, давайте проверим, что у нас настроено в качестве службы обновления времени.
Синхронизация времени уже включена и работает через timesyncd. Посмотрим ее статус.
В принципе, больше ничего делать не нужно. Синхронизация времени через интернет уже настроена и работает. Время обновляется с сервера 2.debian.pool.ntp.org. Для надежности, можно убедиться, что служба работает, плюс, добавим ее сразу в автозагрузку, если ее там нет.
Список серверов для синхронизации времени в timedatectl настраивается в конфигурационном файле /etc/systemd/timesyncd.conf.
Синхронизация времени с помощью ntp и ntpdate
Если вам по какой-то причине не подходит описанная выше синхронизация, либо вам нужен свой сервер времени в сети, то timesyncd можно выключить.
Покажу теперь простую утилиту ntpdate, с помощью которой можно разово синхронизировать время, не автоматически. Для начала ее нужно установить в систему.
Дальше запускаем для разовой синхронизации.
В данном случае pool.ntp.org — адрес сервера времени. Можно использовать любой. Все, время синхронизировано и никаких автоматических служб не запущено.
Если у вас ntpdate выдает ошибку — the NTP socket is in use, exiting, значит у вас уже установлена и запущена служба ntp, которая заняла udp порт 123, необходимый для работы ntpdate. Установкой и настройкой этой службы мы и займемся далее. Также, если ntpdate не работает, посмотрите материал, может это ваш случай.
Для обновления времени сервера можно воспользоваться службой ntp. Ее так же надо установить отдельно.
Это старая проверенная служба времени, которую использовали еще задолго до появления systemd и его юнитов. Запустим ее и добавим в автозагрузку.
После запуска она сразу же автоматически синхронизирует время. Проверим статус службы ntp в Debian.
Синхронизация времени через ntp заработала сразу же. Дополнительная настройка не нужна, если вас не интересует свой сервер времени, который мы настроим ниже.
При этом, для проверки статуса службы времени ntp можно использовать утилиту ntpq. Посмотрим статус синхронизации.
Поясню значения каждого столбца.
remote | Адрес удаленного эталона времени, с которого была синхронизация |
refid | Указывает, откуда каждый эталон получает точное время. Это могут быть другие сервера времени, система GPS и другое |
st | Stratum (уровень) это число от 1 до 16, которое указывает на точность эталона. 1- максимальная точность, 16 — сервер недоступен. Уровень вашего сервера будет равен уровню наименее точного удаленного эталона плюс 1. |
poll | Интервал в секундах между опросами |
reach | Восьмеричное представление массива из 8 бит, отражающего результаты последних восьми попыток соединения с эталоном. Бит выставлен, если удаленный сервер ответил. |
delay | Время задержки ответа на запрос о точном времени |
offset | Разница между вашим и удаленным сервером |
jitter | Дисперсия (Jitter) — это мера статистических отклонений от значения смещения (поле offset) по нескольким успешным парам запрос-ответ. Чем меньше значение дисперсии, тем лучше, поскольку позволяет точнее синхронизировать время. |
Настройка сервера ntp в Debian
Теперь настроим свой сервер времени, с которого другие наши сервера смогут синхронизировать свои часы. Сервер времени ntp использует отдельный одноименный протокол — Network Time Protocol, который для работы использует UDP порт 123. Перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.
Файл конфигурации ntp — /etc/ntp.conf. Привожу минимальную достаточную конфигурацию для своего сервера времени.
Так же я обычно отключаю ipv6 протокол, если он не используется. Для этого в файле /etc/default/ntp заменяем параметр на
После изменения конфигурации, перезапустим ntp и проверим статус службы.
Теперь убедимся, что она запущена.
Все в порядке, служба ntp запущена и готова принимать подключения. Для примера синхронизирую время одной из windows машин с нашим сервером времени.
Теперь другие компьютеры и серверы могут синхронизировать свои часы с нашего сервера Debian, где мы настроили ntp службу в качестве источника времени для остальных.
Если в логе /var/log/ntp.log увидите сообщение — kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized, не обращайте внимание. Это не ошибка, а информационное сообщение, говорящее о том, что в момент запуска ntp ядро еще не синхронизировало свое время.
Заключение
Кратко подведу итог опубликованного материала. Мы рассмотрели практически все, что связано со временем на сервере Debian. Причем захватили нюансы systemd, который все больше забирает на себя функционала.
Я показал как устанавливать время, изменять часовой пояс, разово синхронизировать время с помощью ntpdate и настраивать сервер времени ntpd в локальной сети.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.