Синхронизация времени NTP на Debian 8 Jessie/Ubuntu Server LTS
Синхронизация времени NTP на Debian 8 Jessie/Ubuntu Server 14.04 LTS
Для правильной работы системы, необходимо чтобы на ней было правильное время. Следить за временем будет с помощью NTP (Network Time Protocol) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
NTP-Client
Для настройки NTP-клиента, необходимо указать ему какие сервера синхронизации времени использовать. В файле конфигурации /etc/ntp.conf:
Для жителей РФ вписываем:
Останавливаем службу NTP:
Проверяем расхождение во времени с сервером синхронизации времени:
Из вывода видно что, часы на локальной машине спешат на 3 секунды по сравнению с сервером синхронизации. Нужно синхронизировать часы локальной машины с сервером синхронизации времени.
Cинхронизируем часы с сервером синхронизации времени:
Запускаем службу NTP:
NTP-Server
Как и в случае с NTP-клиентом, указываем предпочтительные сервера синхронизации времени. По-умолчанию NTP-сервер будет доступен всем хостам в Интернет. Параметр restrict в файле /etc/ntp.conf позволяет контролировать доступ к NTP-серверу.
Пример простой настройки безопасности, правим файл конфигурации /etc/ntp.conf:
Ниже описаны некоторые из наиболее часто используемых опций:
ignore — Игнорировать любые виды входящих пакетов и запросов на NTP-сервер.
kod — Разрешать этому хосту отправлять пакеты kiss-o’-death (KoD) (Клиент, отправляющий слишком частые запросы, сначала получает kod-пакет (предупреждение об отказе в обслуживании), а затем будет отключен от сервера).
nomodify — Не разрешать этому хосту / подсети изменять параметры NTP-сервера.
noquery — Не разрешать этому хосту / подсети запрашивать ваш статус NTP-сервера.
nopeer — Отказать в пакетах этому хосту / подсети, которые могли бы мобилизовать ассоциацию, если не были аутентифицированы.
noserve — Не показывайте время этому хосту / подсети. (Используется когда хотим разрешить хосту / подсети получать доступ к NTP-серверу, только для мониторинга и / или дистанционной настройки.)
notrap — Не разрешать этому хосту / подсети доступ службе trap
notrust — Игнорировать все пакеты NTP, которые не имеют криптографической аутентификации.
На остальных компьютерах в сети указываем в роли сервера времени наш локальный NTP-сервер (вместо списка серверов).
Синхронизируем время в Linux
Для начала давайте уточним, что затронуть абсолютно все дистрибутивы в рамках одной статьи не получится, поэтому за пример мы возьмем самую популярную сборку — Ubuntu. В остальных ОС все происходит практически идентично, а различия наблюдаются лишь в элементах графического интерфейса. Однако если вы в этой статье не найдете интересующей информации, придется воспользоваться официальной документацией дистрибутива, чтобы справиться с поставленной задачей.
Настройка даты через графический интерфейс
Перед тем, как мы приступим к разбору сервисов для синхронизации времени, давайте рассмотрим важную для новичков настройку. Большинство начинающих обладателей Linux предпочитают использовать графическое меню для конфигурации необходимых параметров, это относится и к времени. Весь процесс осуществляется следующим образом:
- Откройте меню приложений и отыщите там «Параметры».
Как видите, ничего сложного во взаимодействии с графическим интерфейсом нет. Однако недостаток этого способа заключается в том, что в меню отсутствуют важные параметры управления сервисом синхронизации, поэтому в определенных ситуациях использовать «Параметры» не получится.
Стандартные команды для управления временем
Все остальные инструкции, которые вы увидите в рамках сегодняшнего материала, заключаются в использовании терминальных команд. В первую очередь мы хотим затронуть тему стандартных опций, позволяющих управлять текущей датой и временем или просматривать нужные сведения.
- Начните с запуска «Терминала». Сделать это можно, например, нажав на соответствующий значок в меню приложений.
После внесения всех изменений остается убедиться в том, что все они вступили в силу. Дополнительную информацию о timedatectl мы предлагаем узнать в официальной документации, поскольку остальные опции уже не входят в рамки темы синхронизации времени, однако могут быть полезны определенным пользователям.
Взаимодействие с сервисом timesyncd
Выше мы посоветовали изучить сведения о timedatectl через официальную документацию, но предлагаем еще на минуту остановиться на этом, чтобы ознакомиться с сервисом timesyncd. Именно эта утилита отвечает за синхронизацию времени в операционной системе по умолчанию.
- Для определения текущего статуса timesyncd используйте команду timedatectl в консоли.
Установка NTPD
Последний раздел нашего сегодняшнего материала будет посвящен замене упомянутого выше сервиса синхронизации времени на более надежный протокол NTPD (Network Time Protocol daemon). Именно его раньше задействовали во многих дистрибутивах по умолчанию и хвалили за корректное взаимодействие с особо чувствительными ко времени приложениями. Инсталляция и замена сервиса происходит так:
- Для начала отключите стандартную утилиту, введя sudo timedatectl set-ntp no .
Network Time Protocol daemon будет активирован автоматически, поэтому никаких дополнительных команд вводить не нужно. Вы можете сразу же приступить к тестированию проблемных приложений или выполнять другие действия, ради которых и осуществлялась инсталляция нового сервиса синхронизации времени.
Как видите, синхронизация времени и даты в Linux осуществляется автоматически, поэтому очень редко случаются ситуации, когда требуется активировать этот параметр или поменять другие опции. Теперь, изучив представленный материал, вы знаете, что существуют разные инструменты синхронизации, а настройка также может осуществляться через графическое меню.
Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 12385 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Как синхронизировать время с NTP в Linux
В Сетевой протокол времени (NTP) — это протокол, используемый для автоматической синхронизации системных часов компьютера по сети. Машина может использовать системные часы Всемирное координированное время (универсальное глобальное время), а не по местному времени.
Поддержание точного времени в системах Linux, особенно на серверах, является важной задачей по многим причинам. Например, в сетевой среде точное измерение времени требуется для точных отметок времени в пакеты и системные журналы для анализа первопричин, определения момента возникновения проблем и поиска корреляции.
Хрони теперь по умолчанию NTP пакет реализации в последних версиях операционных систем Linux, таких как CentOS, RHEL, Fedora и Ubuntu/Debian среди прочего и по умолчанию предустановлен. Пакет состоит из хронид, демон, работающий в пользовательском пространстве, и хроник программа командной строки для мониторинга и управления хронид.
Хрони универсальный NTP реализации и хорошо работает в широком диапазоне условий (ознакомьтесь с сравнение пакета chrony с другими реализациями NTP ). Его можно использовать для синхронизации системных часов с серверами NTP (действовать как клиент) с эталонными часами (например, GPS приемник) или с ручным вводом времени. Его также можно использовать как NTPv4 (RFC 5905) сервер или одноранговый узел для предоставления службы времени другим компьютерам в сети.
В этой статье вы узнаете, как синхронизировать время сервера с NTP в Linux с использованием хрония.
Установка Chrony на Linux Server
В большинстве систем Linux хрония команда не установлена по умолчанию. Чтобы установить его, выполните следующую команду.
После завершения установки запустите хрония service и включите его автоматический запуск при загрузке системы, затем проверьте, запущен ли он и работает.
Проверить статус хроники
Чтобы перепроверить, если хрония теперь работает нормально, и чтобы увидеть количество подключенных к нему серверов и одноранговых узлов, запустите следующую команду хроник команда.
Проверить активность хронистов
Проверка синхронизации хроники
Для отображения информации (список доступных серверов, состояние и смещения от локальных часов и источника) о текущих источниках времени, которые хронид получает доступ, выполните следующую команду с -v флаг показывает описание для каждого столбца.
Проверьте источники времени Chronyd
Что касается предыдущей команды, чтобы отобразить другую полезную информацию для каждого из источников, в настоящее время исследуемых хронид (например, скорость дрейфа и процесс оценки смещения), используйте sourcestats команда.
Проверьте статистику источника Chronyd
Проверять хрония отслеживания, выполните следующую команду.
В выходных данных этой команды ссылочный ID указывает имя (или IP-адрес), если он доступен, сервера, с которым в настоящее время синхронизируется компьютер, из всех доступных серверов.
Отслеживание хронологии дисплея
Настройка источников времени Chrony
Главный хрония файл конфигурации находится по адресу /etc/chrony.conf (CentOS / RHEL / Fedora) или /etc/chrony/chrony.conf (Ubuntu / Debian).
При установке ОС Linux в облако ваша система должна иметь несколько серверов по умолчанию или пул серверов, добавленных в процессе установки. Чтобы добавить или изменить серверы по умолчанию, откройте файл конфигурации для редактирования:
Вы можете добавить несколько серверов с помощью директивы server, как показано.
Добавить серверы NTP
или в большинстве случаев лучше использовать ntppool.org найти NTP-сервер. Это позволяет системе попытаться найти для вас ближайшие доступные серверы. Чтобы добавить пул, используйте директиву пула:
Добавить пул серверов NTP
В этом файле можно настроить множество других параметров. После внесения изменений перезапустите службу chrony.
Чтобы показать информацию об источниках текущего времени, которые хронид запрашивает, выполните следующую команду еще раз.
Просмотр источников времени Chronyd
Проверять хрония статус отслеживания, выполните следующую команду.
Проверить статус синхронизации хронов
Чтобы отобразить текущее время в вашей системе, проверьте, синхронизированы ли системные часы и действительно ли NTP активен, запустите команда timedatectl :
Проверить текущее время сервера
На этом мы подошли к концу этого руководства. Если у вас есть какие-либо вопросы, свяжитесь с нами через раздел комментариев ниже. Для получения дополнительной информации ознакомьтесь с: с помощью chrony Suite для настройки NTP из документации RHEL 8 или используя chrony для настройки NTP из официального блога Ubuntu.
Настройка клиента NTP
Теперь, когда ваш NTP-сервер запущен и работает, настройте NTP-клиент для синхронизации своего времени с вашим NTP-сервером. В этом руководстве мы используем сервер Ubuntu 18.04 в качестве нашего NTP-клиента. Конфигурация клиента NTP в основном аналогична конфигурации сервера NTP.
Синхронизировать время вручную с помощью ntpdate
Выполните команду ниже, чтобы установить ntpdate в Ubuntu 18.04.++
Чтобы вручную синхронизировать время с NTP-сервером, используя ntpdate ;
Ну вроде с ручной синхронизацией времени все в порядке.
Автоматическая синхронизация времени с NTP
Выполните команду ниже, чтобы установить ntp;
Служба NTP по умолчанию запускается после установки в Ubuntu 18.04. Чтобы настроить клиент NTP для синхронизации времени с вашим сервером NTP, отредактируйте файл конфигурации ntp и замените общедоступные серверы пула NTP своим сервером.
Вы также можете просто добавить свой сервер в файл конфигурации и сделать его предпочтительными эталонными часами. Это может быть достигнуто с помощью опции предпочтения .
Сохраните файл конфигурации и перезапустите ntp. Вам также необходимо отключить Systemd timesyncd ntp.
Проверить синхронизацию времени
Включите NTP для запуска при загрузке системы.
Что касается основных конфигураций, это только то, как настроить сервер NTP с использованием NTPd в Fedora 30.
Ознакомьтесь с другими нашими руководствами по Fedora 30, перейдя по ссылкам ниже;
Как работает синхронизация времени через Интернет?
Синхронизация времени производится посредством специального протокола передачи данных — NTP (Network Time Protocol). Этот протокол включает в себя набор сложных алгоритмов, которые позволяют с большой точностью синхронизировать время (до тысячных миллисекунд расхождения).
Есть более упрощенная версия этого протокола — SNTP (Simple Network Time Protocol), который используется в сетях, где не требуется высокая точность синхронизации (до 1 сек. расхождения).
Вся модель синхронизации времени NTP выглядит в виде дерева. В «кроне» этого дерева находятся «первичные сервера». Таких серверов во всем мире несколько штук. На них чаще всего установлены атомные часы и другие дорогостоящие хронометры. Синхронизировать время с «первичными» серверами у Вас не получится либо из-за их большой загруженности, либо из-за ограничения самими серверами.
«Вторичные» сервера синхронизируются с серверами первого уровня посредством протокола NTP. Расхождение по времени между ними достигает порядка 20 миллисекунд. Таких серверов значительно больше и поэтому целесообразней настраивать синхронизацию именно с ними.
После этого могут идти сервера третьего, четвертого уровня и т. д., к которым чаще всего относятся сервера синхронизации времени различных провайдеров и других IT-компаний.
Принцип работы устройств синхронизации времени
Сервера точного времени используются для синхронизации временных характеристик внутри определенной системы. Достигается это благодаря подключению к протоколу NTP. Он представляет собой специальный алгоритм, который производит настройку внутренних часов компьютера с применением сетей с переменной латентностью. Для того, чтобы получить максимальную точность синхронизации, предпочтительно использовать протокол NTP как системную службу. Для Microsoft Windows такой службой является W32Time, а для Linux — Ntpd.
CentOS 6 и ниже
За синхронизацию времени отвечает служба ntpd. Она работает одновременно как клиент, так и сервер. Настройки хранятся в файле /etc/ntp.conf . Чтобы добавить/изменить ntp-сервер для синхронизации, используем параметр server. Допускается указание нескольких серверов, служба сама выберет наиболее подходящий по доверию/доступности:
После внесения изменения нужно перезапустить службу:
Синхронизация может не работать по нескольких причинам.
Смотрим логи. По умолчанию ntp пишет в системный лог /var/log/messages:
Эта ошибка возникает, если запущено несколько копий ntp и они конфликтуют между собой:
Убьем лишний процесс:
Ошибка в логах исчезнет, но синхронизация по-прежнему не работает. Тут есть нюанс — служба ntp после перезапуска не пытается немедленно синхронизироваться. Ей требуется определенное время(10-15мин), чтобы проанализировать работу системного таймера и потом выполнить надстройку. Чтоб заставить службу вызвать немедленную синхронизацию, остановим службу и запустим демон с ключами, которые вызовут попытку немедленной синхронизации и выход:
Смотрим /var/log/messages и видим ошибку «no reply: clock not set»
Первая мысль — не проходят пакеты через фаерволл. Это можно проверить, запросив статус серверов у службы через утилиту ntpq , если udp-порт 123 открыт, значения reach, delay, offset не должны быть нулевыми:
«*» — означает сервер, с которым последний раз была синхронизация.
«+» — можно использовать для синхронизации.
«-‘ — не рекомендуется для использования
В нашем случае пакеты проходят. Попробуем другой способ ручной синхронизации через утилиту ntpdate, службу ntp предварительно нужно выключить:
Время синхронизировалось. Дело в том, что утилита ntpdate использует иные механизмы синхронизации времени. Что касается службы, несмотря на то, что обратный ответ от внутренненго сервера приходит(мы это посмотрели через ntpq), служба отказывается принимать данные в качестве достоверного источника точного времени, хотя и явно об этом не сообщает. Это может быть связано с настройками удаленного ntp-сервера, политиками безопасности, если это win-сервер.