Linux получить время с сервера

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

Оригинал: How to Synchronize Time with NTP in Linux
Автор: Matei Cezar
Дата публикации: 20 апреля 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2018 г.

Network Time Protocol (NTP) — это протокол, используемый для автоматической синхронизации системных часов компьютера по сети. Машина может выставлять системные часы по Coordinated Universal Time (UTC), а не по местному времени.

Наиболее распространенный метод синхронизации системного времени по сети на десктопах или серверах Linux — выполнение команды ntpdate, которая может установить системное время с сервера времени NTP. В этом случае на компьютере, на котором введена команда ntpdate, должен быть остановлен демон ntpd.

В большинстве систем Linux команда ntpdate не устанавливается по умолчанию. Чтобы установить ее, выполните приведенную ниже команду.

Пример команды ntpdate:

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

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

В новых дистрибутивах Linux, которые используют Systemd, вы также можете синхронизировать время через файл timesyncd.conf. Просто откройте файл для редактирования.

И добавьте или раскомментируйте следующие строки после оператора [Time], как показано ниже:

После редактирования файла введите команду timedatectl, чтобы активировать сборку клиента NTP в systemd.

После этого введите команду date для отображения системных часов.

Источник

⏲️ Как проверить, работают ли настройки NTP (синхронизация) или нет в Linux?

NTP это сетевой протокол времени, который синхронизирует часы между компьютерными системами по сети.

NTP-сервер поддерживает синхронизацию всех серверов в вашей организации с точным временем выполнения заданий.

NTP-клиент синхронизирует свои часы с сетевым сервером времени.

Мы уже написали статью об установке и настройке NTP-сервера и клиента.

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

Теперь, как проверить, правильно ли работает настройки NTP?

В Linux доступны три команды для проверки синхронизации NTP.

В этой статье мы расскажем вам, как проверить синхронизацию NTP с помощью всех этих команд.

  • ntpq: ntpq – стандартная программа запросов NTP.
  • ntpstat: показывает состояние синхронизации времени в сети.
  • timedatectl: управляет системным временем и датой в systemd.

Способ 1: Как проверить состояние NTP с помощью команды ntpq?

Утилита ntpq используется для мониторинга операций NTP-демона ntpd и определения производительности.

Читайте также:  Как полностью поменять имя пользователя windows 10

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

Он выводит список пиров, которые соединились, отправив несколько запросов на сервер.

Если NTP работает правильно, вы получите вывод, аналогичный приведенному ниже.

  • -p: выводит список пиров, известных серверу, а также сводку их состояния.

Способ 2: Как проверить состояние NTP с помощью команды ntpstat?

ntpstat сообщит о состоянии синхронизации демона NTP (ntpd), работающего на локальной машине.

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

Команда ntpstat возвращает три вида кода состояния на основе синхронизации NTP. Подробности ниже.

  • 0: возвращает 0, если часы синхронизированы.
  • 1: Возвращает 1, если часы не синхронизированы.
  • 2: Возвращает 2, если состояние часов не определено, например, если ntpd не доступен.

Способ 3: Как проверить состояние NTP с помощью команды timedatectl?

Команда timedatectl используется для запроса и изменения системного времени и его настроек в системе systmed.

Chrony это замена NTP-клиента.

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

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

Он может работать хорошо, даже если сеть перегружена в течение более длительных периодов времени.

Источник

NTP сервер на Linux Ubuntu

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

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

Устанавливаем ntp сервер следующей командой:

apt-get install ntp

Разрешаем автозапуск и стартуем сервис:

systemctl enable ntp || update-rc.d ntp defaults

systemctl start ntp || service ntp start

Настройка NTP

Открываем файл с настройками:

Настраиваем серверы, с которых наш 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

Читайте также:  Звук панель для windows

systemctl restart ntp || service restart ntp

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

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

или с помощью ufw:

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:

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

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

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

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

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

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

* московское время (GMT+3).

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

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

apt-get install ntp

CentOS / Red Hat:

yum install 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 позволяет серверу подключаться к самому себе по нужному протоколу.

Читайте также:  Rdp client oracle linux

3. no server suitable for synchronization found

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

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

Источник

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

Материал из Пингвиньи радостей

Содержание

Статья об управлении временем в linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для установки аппаратных часов используется утилита hwclock:

Источник

Оцените статью