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

NTP сервер на Linux Ubuntu

Обновлено и опубликовано

Опубликовано: 12.01.2018

Тематические термины: NTP, Linux, Ubuntu. Следить за актуальностью времени на всех узлах локальной сети удобнее с помощью сервера синхронизации времени NTP. В инструкции рассказано об установке и настройке такого сервера на Linux Ubuntu Server 16.04. Данное руководство можно использовать для настройки ntpd на любом другом Linux (например, Debian или CentOS).

Установка сервера

Настройка NTP

pool ru.pool.ntp.org iburst
server ntp2.vniiftri.ru iburst prefer
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
server 127.127.1.0

* iburst — отправлять несколько пакетов (повышает точность); ru.pool.ntp.org / 0.ubuntu.pool.ntp.org / 1.ubuntu.pool.ntp.org — адреса серверов, с которыми наш сервер будет сверять время; server — указывает на выполнение синхронизации с сервером, а не пулом серверов; prefer — указывает на предпочитаемый сервер. server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов. Настраиваем безопасность:

restrict default kod notrap nomodify nopeer noquery
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
restrict ::1

  • restrict default — задает значение по умолчанию для всех рестриктов.
  • kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
  • notrap — не принимать управляющие команды.
  • nomodify — запрещает команды, которые могут вносить изменения состояния.
  • nopeer — не синхронизироваться с хостом.
  • noquery — не принимать запросы.
  • restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
  • IP адреса127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.

Настройки по умолчанию могут быть разные для IPv4 и IPv6:

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

systemctl restart ntp || service restart ntp

Если используется брандмауэр, добавляем правило:

iptables -I INPUT 1 -p udp —dport 123 -j ACCEPT

ufw allow in on enp2s0 to any port 123 proto udp

* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.

Дополнительные настройки

Настройка файла хранения логов:

Тестирование

Проверить состояние получения эталонного времени можно командой:

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

remote refid st t when poll reach delay offset jitter
==============================================================================
ru.pool.ntp.org .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
*91.189.94.4 17.253.34.253 2 u 58 64 377 55.802 3.790 0.412
-91.189.91.157 132.246.11.231 2 u 56 64 377 113.456 -1.746 0.334
+91.189.89.198 192.53.103.108 2 u 1 64 377 54.595 4.229 0.608
+91.189.89.199 17.253.34.253 2 u 61 64 377 54.061 2.637 0.557

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

Проверить отдачу времени сервером можно введя команду на другом Linux:

Читайте также:  Linux following packages have been kept back

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

ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec

* время было рассинхронизировано на 0.017657 секунд.

Отобразить текущее время можно командой:

Если после синхронизации время некорректно, настраиваем правильный часовой пояс:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Настройка клиента Linux

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

NTP

В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:

Остальные pool и server удаляем или комментируем.

systemctl restart ntp || service restart ntp

ntpdate

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

0 0 * * * /usr/sbin/ntpdate 192.168.0.15

* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.

Настройка клиента Windows

В командной строке выполняем:

w32tm /config /manualpeerlist:»192.168.0.15,0×8″ /syncfromflags:manual /update

Некоторые ошибки

1. the NTP socket is in use, exiting

Как правило, данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.

Причина: NTP сокет в системе уже занят, как правило, ntpd.

Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.

2. Connection refused

Возникает при попытке выполнить команду ntpq -p.

Причина: нет разрешения на обращение к серверу.

Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.

3. no server suitable for synchronization found

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

Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.

  1. Убедиться, что сервер доступен по сети.
  2. Проверить настройки ntp.conf — наличие соответствующего restrict.
  3. Проверить состояние сервиса командой service ntp status.
  4. Проверить настройки брандмауэра — убедиться в наличие правила, которое разрешает UDP порт 123.
Читайте также:  Linux mint изменить разрешение экрана

Источник

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

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

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

Синхронизируем время в Linux

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

Настройка даты через графический интерфейс

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

Переход к параметрам для настройки времени в Linux через графическое меню

    Откройте меню приложений и отыщите там «Параметры».

  • Перейдите в раздел «Сведения о системе». Переход к сведениям о системе для настройки времени в Linux через графическое меню
  • Здесь вас интересует категория «Дата и время». Переход к настройкам даты и времени Linux
  • Обратите внимание на пункты автоматического определения даты и времени. Они используют интернет для выставления оптимальных настроек, которые зависят от выбранного часового пояса. Вы можете активировать или отключить эти настройки, передвинув ползунки. Отключение или включение автоматического определения даты и времени в Linux
  • При их отключении строки с датой, временем и часовым поясом активируются, а это значит, что теперь ничего не помешает вам установить пользовательские параметры. Ручная настройка времени и часового пояса через графическое меню Linux
  • В окне местоположения выберите точку на карте или используйте поиск. Окно для выбора часового пояса через графическое меню Linux
  • Дополнительно в «Дата и время» указывается формат. По умолчанию он 24-часовой. Выбор формата отображения времени через графическое меню Linux

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

    Стандартные команды для управления временем

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

    1. Начните с запуска «Терминала». Сделать это можно, например, нажав на соответствующий значок в меню приложений. Запуск терминала для использования команд времени в Linux
    2. Введите команду date , чтобы определить текущую дату и время. Ввод команды для просмотра текущей даты в терминале Linux
    3. В новой строке отобразится интересующая вас информация в стандартном формате. Просмотр текущей даты через терминал Linux
    4. Через стандартную команду можно и изменить часовой пояс. Сначала нужно просмотреть доступный список поясов и запомнить название требуемого. Напечатайте timedatectl list-timezones и нажмите на Enter. Вызов команды для просмотра часового пояса через терминал в Linux
    5. Перемещайтесь вниз по списку с помощью клавиши Пробел. После того, как вы найдете нужный пояс и запомните правило его написания, нажмите на Q для выхода. Просмотр списка часовых поясов через терминал в Linux
    6. Команда sudo timedatectl set-timezone America/New_York отвечает за смену часового пояса на выбранный. Вместо America/New_York вам следует написать определенный ранее вариант. Ввод команды для изменения текущего часового пояса через терминал в Linux
    7. Для подтверждения действия придется ввести пароль суперпользователя, поскольку команда была выполнена с аргументом sudo. Ввод пароля Linux для изменения часового пояса через терминал

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

    Читайте также:  Linux отключить сессию пользователя

    Взаимодействие с сервисом timesyncd

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

    1. Для определения текущего статуса timesyncd используйте команду timedatectl в консоли. Вызов команды для проверки текущего состояния сервиса синхронизации времени Linux
    2. В новых строках вы получите все необходимые сведения, куда относится локальное время, установленная зона и данные о синхронизации и активности самого сервиса. Просмотр информации о текущем состоянии сервиса синхронизации времени Linux
    3. Если вы видите, что этот инструмент сейчас отключен по каким-то причинам и хотите запустить его, чтобы наладить синхронизацию, используйте строку sudo timedatectl set-ntp on . Команда для активации работы сервиса синхронизации времени в Linux

    Установка NTPD

    Последний раздел нашего сегодняшнего материала будет посвящен замене упомянутого выше сервиса синхронизации времени на более надежный протокол NTPD (Network Time Protocol daemon). Именно его раньше задействовали во многих дистрибутивах по умолчанию и хвалили за корректное взаимодействие с особо чувствительными ко времени приложениями. Инсталляция и замена сервиса происходит так:

    1. Для начала отключите стандартную утилиту, введя sudo timedatectl set-ntp no . Ввод команды для отключения сервиса синхронизации времени в Linux
    2. Придется подтвердить подлинность учетной записи путем написания пароля суперпользователя. Подтверждение пароля для отключения сервиса синхронизации времени в Linux
    3. После вы можете использовать уже знакомую команду timedatectl для того, чтобы убедиться в отключенном состоянии инструмента. Проверка информации о текущем состоянии сервиса после отключения Linux
    4. Перед началом установки нового программного обеспечения рекомендуется произвести инсталляцию последних обновлений. Осуществляется это через sudo apt update . Команда для установки обновлений Linux перед установкой программ
    5. По окончании этого процесса используйте команду sudo apt install ntp . Команда для установки нового сервиса синхронизации времени
    6. Подтвердите уведомление о необходимости скачивания архивов. Подтверждение установки нового сервиса синхронизации времени Linux
    7. Ожидайте завершения скачивания и инсталляции пакетов. Ожидание завершения установки нового сервиса синхронизации времени Linux
    8. Теперь можете использовать новый протокол, вводя соответствующие атрибуты в «Терминал». Просмотр основных сведений происходит через ntpq -p . Использование нового сервиса для синхронизации времени в Linux

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

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

    Источник

  • Оцените статью
    Adblock
    detector