- 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
- ⏲️ Как установить и настроить NTP-сервер и NTP-клиент на Linux?
- Что такое NTP-сервер?
- Что такое NTP-клиент?
- Что такое Chrony ?
- Зачем нам нужен NTP сервер?
- СТОРОНА NTP-СЕРВЕРА: Как установить NTP-сервер на Linux?
- Как настроить NTP-сервер на Linux?
- Установка NTP сервера для включения его в pool.ntp.org
- Как же установить свой сервер, что для этого требуется?
- Устанавливаем NTP-сервер
- Проверка работоспособности
- Добавление сервера в пул pool.ntp.org
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) нет сетевой доступности из-за проблем на сети или брандмауэра.
Источник
⏲️ Как установить и настроить NTP-сервер и NTP-клиент на Linux?
Возможно, вы слышали это слово много раз, а также, возможно, работали с ним.
Тем не менее, я расскажу вам ясно в этой статье о настройке NTP-сервера и NTP-клиента
О настройке Chrony NTP Client мы узнаем позже.
Что такое NTP-сервер?
NTP означает сетевой протокол времени.
Это сетевой протокол, который синхронизирует часы между компьютерными системами по сети.
Он будет сохранять одинаковое время (точное время) для всех систем, которые подключены к NTP-серверу через NTP или клиент Chrony.
NTP обычно может поддерживать время с точностью до десятков миллисекунд по общедоступному Интернету и может достигать точности, превышающей одну миллисекунду, в локальных сетях при идеальных условиях.
Он использует протокол пользовательских дейтаграмм (UDP) на порту номер 123 для отметок времени отправки и получения.
Это клиент / серверное приложение.
Он отправляет и получает временные метки с использованием протокола пользовательских дейтаграмм (UDP) на порту 123.
Что такое NTP-клиент?
NTP-клиент синхронизирует свои часы с сетевым сервером времени.
Что такое Chrony ?
Chrony – это замена NTP-клиента.
Он может синхронизировать системные часы с большей точностью и может быть особенно полезен для систем, которые не подключены к сети все время.
Зачем нам нужен NTP сервер?
Чтобы все серверы в вашей организации были синхронизированы с точным временем выполнения заданий, основанных на времени.
Чтобы прояснить это, я расскажу вам сценарий.
Скажем, например, у нас есть два сервера (Server1 и Server2).
Server1 обычно выполняет пакетные задания в 10:55, а затем Server2 необходимо выполнить другое задание в 11:00 на основании отчета о завершении задания Server1.
Если обе системы используют в разное время (если одна система опережает другие, другие отстают от этой конкретной), мы не сможем это сделать.
Для этого нам нужно настроить NTP.
Надеюсь, это убрало ваши сомнения по поводу необходимости NTP.
В этой статье мы будем использовать следующую настройку, чтобы проверить работу NTP
- NTP-сервер: HostName: CentOS7.itisgood.ru, IP: 192.168.1.8, ОС: CentOS 7
- NTP-клиент: HostName: Ubuntu18.itisgood.ru, IP: 192.168.1.5, ОС: Ubuntu 18.04
СТОРОНА NTP-СЕРВЕРА: Как установить NTP-сервер на Linux?
Не существует разных пакетов для NTP-сервера и NTP-клиента, так как это модель клиент / сервер.
Пакет NTP доступен в официальном репозитории дистрибутива, поэтому используйте его для установки.
Для системы Fedora используйте DNF для установки ntp.
Для систем Debian / Ubuntu используйте команду APT-GET или APT для установки ntp.
Для систем на основе Arch Linux используйте Pacman для установки ntp.
Для систем RHEL / CentOS используйте команду YUM для установки ntp.
Для системы openSUSE Leap используйте Zypper для установки ntp.
Как настроить NTP-сервер на Linux?
После установки пакета NTP убедитесь, что вы раскомментировали следующую конфигурацию в файле /etc/ntp.conf на стороне сервера.
По умолчанию конфигурация NTP-сервера основана на X.distribution_name.pool.ntp.org.
Если вы хотите, вы можете использовать конфигурацию по умолчанию или изменить ее в соответствии с вашим местоположением (в зависимости от страны), посетив https://www.ntppool.org/zone/@
Если вы находитесь в Индии, то ваш NTP-сервер будет 0.in.pool.ntp.org, и он будет работать для большинства стран.
Мы разрешили только клиентам подсети 192.168.1.0/24 получать доступ к NTP-серверу.
Поскольку брандмауэр по умолчанию включен в дистрибутивах на основе RHEL 7, разрешите использование сервера / службы ntp.
Для системы на основе Debian нам нужно запустить ntp вместо ntpd.
Для systemctl систем
СТОРОНА КЛИЕНТА NTP: Как установить клиент NTP в Linux?
Как я уже упоминал ранее в этой статье.
Не существует специального пакета для NTP-сервера и клиента. Итак, установите этот же пакет на клиенте.
Для системы Fedora используйте DNF для установки ntp.
Для систем Debian / Ubuntu используйте команду APT-GET или APT для установки ntp.
Для систем на основе Arch Linux используйте Pacman для установки ntp.
Для систем RHEL / CentOS используйте команду YUM для установки ntp.
Для системы openSUSE Leap используйте Zypper для установки ntp.
Я установил и настроил NTP-сервер на CentOS7.itisgood.ru, добавив те же самые настройки на все клиентские машины.
Для системы на основе Debian нам нужно запустить ntp вместо ntpd.
Для systemctl систем.
Для системы на основе Debian нам нужно запустить ntp вместо ntpd.
Подождите несколько минут после перезапуска службы NTP, чтобы получить время синхронизации с NTP-сервером.
Выполните следующие команды, чтобы проверить состояние синхронизации сервера NTP в Linux.
Выполните следующую команду, чтобы получить текущий статус ntpd.
Наконец, запустите команду date
Если вы наблюдаете значительное смещение по времени на выводе NTP, выполните следующую команду, чтобы синхронизировать часы вручную с NTP-сервера.
Убедитесь, что ваш NTP-клие неактивен, когда вы выполняете команду.
Источник
Установка NTP сервера для включения его в pool.ntp.org
Большинство дистрибутивов операционных систем на базе Linux и многих сетевых устройств используют для установки часов сервера вида *.pool.ntp.org.
Рассмотрим подробнее откуда же берутся данные сервера, что требуется чтобы создать свой собственный сервер и добавить его к данному кластеру для помощи сообществу синхронизации времени.
Как сказано на сайте https://www.ntppool.org/ru/ — это огромный кластер серверов точного времени, предоставляющий надежный и простой в использовании NTP-сервис для миллионов клиентов и его услугами пользуются десятки миллионов систем по всему миру.
Как же установить свой сервер, что для этого требуется?
Требуется обычный сервер со статическим реальным IP адресом с актуальной операционной системой будь то Linux/BSD или подобное устройство которое в состоянии стабильно работать в роли ntp-сервера по протоколу NTP https://ru.wikipedia.org/wiki/NTP который работает через интернет-сети по порту 123/UDP.
Из-за небольшого потребления ресурсов и канала (до 10-15 килобит в секунду) подойдет практически любая конфигурация, например, VPS/VDS на базе KVM с минимальными ресурсами.
“В настоящее время большинство серверов получают порядка 5-15 NTP-пакетов в секунду. Несколько раз в день могут возникать пики по 60-120 пакетов в секунду. Переводя в килобиты, получаем примерно 10-15Кбит/с в среднем и порядка 50-120Кбит/с на пиках нагрузки. В пул постепенно входит все больше серверов, поэтому резкое возрастание нагрузки в будущем не ожидается. Таким образом, вам вряд ли потребуется полоса больше 384-512Кбит (на прием и отдачу)”.
Устанавливаем NTP-сервер
В большинстве дистрибутивов Linux он входит в стандартные репозитории операционной системы и достаточно выполнить его установку
apt install ntp для Debian/Ubuntu или yum install ntp для CentOS
Теперь откройте файл конфигурации в вашем /etc/ntp.conf и там в 99% случаев будут сервера из пула:
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst
Просто закомментируйте их символом #, сервер который будет входить в пул не должен синхронизироваться с ними
Также рекомендуется использовать google по запросу вида “ntp server ваша_страна”
Рекомендуется использовать не меньше 4 и не больше 6 серверов
Руководствуйтесь правилом 2+2+2 —
2 сервера — StratumOne
2 сервера — StratumTwo
2 сервера — в геолокациях соседних с вашей
Отмечу, что существуют также сервера (пулы серверов) точного времени принадлежащие крупным корпорациям — такие как time.apple.com / time.facebook.com / time.google.com. Использовать их или нет — сложный вопрос, так как мы используем пул для «интернет-независимости» и свободных операционных систем, то я бы не рекомендовал их использовать, кроме того сервера google не поддерживают передачу leap second.
Работу сервера следует проверить командой ntpdate -q имя-сервера должен быть ответ вида
# ntpdate -q ntp4.vniiftri.ru
server 89.109.251.24, stratum 1, offset 0.001008, delay 0.08249
8 Jan 03:50:07 ntpdate[1414]: adjust time server 89.109.251.24 offset 0.001008 sec
Это означает, что сервер работает, есть ответ и он представляет собой сервер “первого яруса” (stratum 1).
Подробнее об ярусах (stratum) можно прочитать по ссылке https://habr.com/ru/post/79461/
Сервера которые являются эталонными часами (атомными, GPS-спутник) являются сервера так называемого нулевого уровня (stratum 0).
Сервера которые синхронизируются с ними напрямую (например, через GPS-приемник) имеют уровень 1.
Следом идут сервера 2 и 3 — их вполне достаточно для синхронизации времени часов большинства компьютерных систем.
Проверка работоспособности
После добавления новых серверов (предварительно проверенных через ntpdate -q) следует перезапустить ntp-сервер (service ntp restart) и проверить его работу командой ntpq -pn
remote refid st t when poll reach delay offset jitter
-51.15.74.121 131.176.107.13 2 u 48 64 17 1.009 -0.030 0.246
*193.190.230.37 .EXT. 1 u 41 64 17 4.825 -0.263 0.853
+145.238.203.14 .MRS. 1 u 41 64 17 14.549 -0.857 0.127
-89.109.251.24 .MRS. 1 u 44 64 17 46.043 0.501 1.539
+62.231.6.98 .GPS. 1 u 43 64 17 41.770 -1.292 0.647
-80.60.208.118 193.67.79.202 2 u 43 64 17 8.324 -1.364 1.338
Когда есть сервер который начинается с * — значит синхронизирован успешно.
Понаблюдайте за работой ntp сервера некоторое время. Оставьте сервера с минимальным delay и jitter, рекомендуется потратить на это около часа времени и отобрать действительно лучшие сервера.
Также проверьте работу сервера с внешнего подключения через интернет выполнив ntpdate -q ip-адрес тем самым убедитесь что все работает, udp/123 нигде не фильтруется
Добавление сервера в пул pool.ntp.org
Дальше следует перейти на сайт https://www.ntppool.org/ru/join.html и добавить сервер — все предельно просто после быстрой регистрации
Сервер работает по IP адресу, доменное имя можно указать на этапе добавления и оно будет использоваться только в момент первоначальной настройки и для отображения в списке.
После чего выполняется проверка стабильности работы сервера (так называемый score) и как он станет больше 10 — ваш сервер будет добавлен в пул.
На странице управления серверами есть мониторинг в виде графика и csv-формата, где можно отслеживать стабильность часов и ответы вашего NTP-сервера, в случае его недоступности отправится email о проблеме.
Наблюдать пакеты можно командой tcpdump port 123 — будут видны запросы с различных сетей различных провайдеров, в основном конечно с клиентских устройств (интернет-роутеров).
04:00:50.531801 IP gw.mytimeserver.net.ntp > 82-217-46-231.cable.dynamic.v4.ziggo.nl.59634: NTPv4, Server, length 48
04:00:50.888803 Imytimeserver.netP 51.144.84.29.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48
04:00:50.888998 IP gw.mytimeserver.net.ntp > 51.144.84.29.ntp: NTPv4, Server, length 48
04:00:51.621673 IP 46.11.105.3.54627 > gw.mytimeserver.net.ntp: NTPv4, Client, length 48
04:00:51.621916 IP gw.mytimeserver.net.ntp > 46.11.105.3.54627: NTPv4, Server, length 48
04:00:52.037807 IP 51.136.36.226.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48
04:00:52.052103 IP gw.mytimeserver.net.ntp > 40.68.72.138.ntp: NTPv4, Server, length 48
В связи с этим настоятельно рекомендую провайдерам интернет-услуг установить в своей сети ntp-сервер и включить его в ntp-пул.
Источник