- Синхронизация времени по NTP в Linux
- ⏲️ Как проверить, работают ли настройки NTP (синхронизация) или нет в Linux?
- Способ 1: Как проверить состояние NTP с помощью команды ntpq?
- Способ 2: Как проверить состояние NTP с помощью команды ntpstat?
- Способ 3: Как проверить состояние NTP с помощью команды timedatectl?
- NTP сервер на Linux Ubuntu
- Установка сервера
- Настройка NTP
- Дополнительные настройки
- Тестирование
- Настройка клиента Linux
- ntpdate
- Настройка клиента Windows
- Некоторые ошибки
- 1. the NTP socket is in use, exiting
- 2. Connection refused
- 3. no server suitable for synchronization found
- Управление временем в 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 и определения производительности.
Программа может быть запущена в интерактивном режиме или управляться с помощью аргументов командной строки.
Он выводит список пиров, которые соединились, отправив несколько запросов на сервер.
Если 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
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 позволяет серверу подключаться к самому себе по нужному протоколу.
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:
Источник