Настройка ntp-клиента Debian

Обновлено: 21.11.2024

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

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

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

NTP работает на основе синхронизации с эталонными часами, также известными как серверы "уровня 0". Все остальные NTP-серверы затем становятся страт-серверами более низкого уровня в зависимости от того, насколько они удалены от эталонного сервера.

Началом цепочки NTP является сервер уровня 1, который всегда напрямую подключен к эталонным часам уровня 0. Отсюда серверы нижнего уровня подключаются через сетевое соединение к серверу верхнего уровня.

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

Хотя настроить сервер уровня 0 или уровня 1 можно, но это дорого, поэтому в этом руководстве основное внимание будет уделено настройке сервера нижнего уровня.

У Tecmint есть базовая конфигурация хоста NTP по следующей ссылке:

Отличие этого руководства заключается в том, что вместо того, чтобы все хосты в сети отправляли запросы на общедоступные серверы NTP, один (или, что лучше, несколько) серверов будет связываться с общедоступной системой NTP, а затем предоставлять время для всех хосты в локальной сети.

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

Шаг 1. Установка NTP-сервера

<р>1. Первым шагом к настройке внутренней структуры NTP является установка программного обеспечения сервера NTP. Пакет программного обеспечения в Debian под названием «NTP» в настоящее время содержит все серверные утилиты, необходимые для настройки иерархии NTP. Как и во всех руководствах по настройке системы, предполагается доступ с правами root или sudo.

Шаг 1. Настройка NTP-сервера

<р>2. После установки NTP пришло время настроить серверы более высокого уровня для запроса времени. Файл конфигурации для NTP хранится в /etc/ntp.conf и может быть изменен с помощью любого текстового редактора. Этот файл будет содержать полные доменные имена серверов более высокого уровня, ограничения, установленные для этого NTP-сервера, и любые другие специальные параметры для хостов, запрашивающих этот NTP-сервер.

Чтобы начать процесс настройки, необходимо настроить серверы более высокого уровня. Debian по умолчанию помещает пул Debian NTP в файл конфигурации. Это подходит для большинства целей, но администратор может посетить NIST, чтобы указать определенные серверы или использовать все серверы NIST в циклическом режиме (метод, предложенный NIST).

Для этого руководства будут настроены определенные серверы. Файл конфигурации разбит на несколько основных разделов и по умолчанию настроен для IPv4 и IPv6 (если вы хотите отключить IPv6, об этом упоминается позже). Чтобы начать процесс настройки, файл конфигурации необходимо открыть в текстовом редакторе.

Для первых нескольких разделов (driftfile, statsdir и статистика) установлены значения по умолчанию. Следующий раздел содержит серверы более высокого уровня, через которые этот сервер должен запрашивать время. Синтаксис каждой записи сервера очень прост:

Шаг 3. Настройка ограничений NTP

<р>3. Следующим шагом является настройка ограничений NTP. Они используются, чтобы разрешить или запретить хостам взаимодействовать с сервером NTP. По умолчанию для NTP используется время обслуживания для всех, но не разрешается настройка как для соединений IPv4, так и для соединений IPv6.

В настоящее время этот сервер используется только в сети IPv4, поэтому IPv6 был отключен двумя способами. Первое, что было сделано для отключения IPv6 на сервере NTP, — это изменение значений по умолчанию, запускаемых демоном. Это было достигнуто путем изменения строки в ‘/etc/default/ntp’.

В основном файле конфигурации ( /etc/ntp.conf ) демон NTP будет автоматически настроен для совместного использования времени со всеми хостами IPv4/6, но не будет разрешать настройку. Это видно по следующим двум строкам:

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

Теперь сервер должен знать, кому разрешено запрашивать у сервера время и что еще им разрешено делать с сервером NTP. Для этого сервера будет использоваться частная сеть 172.27.0.0/16 для создания строфы ограничения.

Эта строка сообщает серверу, что любой хост из сети 172.27.0.0/16 может получить доступ к серверу на время. Параметры после маски помогают контролировать, что любой из хостов в этой сети может делать при запросе к серверу. Давайте уделим немного времени, чтобы понять каждый из этих вариантов ограничения:

  1. Ограничено: указывает, что если клиент злоупотребляет контролем скорости передачи пакетов, пакеты будут отбрасываться сервером. Если пакет «Поцелуй смерти» включен, он будет отправлен обратно злоумышленнику. Тарифы настраиваются администратором, но здесь предполагаются значения по умолчанию.
  2. KOD: Поцелуй смерти. Если хост нарушает лимит пакетов на сервер, сервер ответит нарушившему хосту пакетом s KoD.
  3. Notrap: контрольные сообщения режима отклонения 6. Эти управляющие сообщения используются для программ удаленного ведения журналов.
  4. Nomodify: запрещает запросы ntpq и ntpdc, которые могут изменить конфигурацию сервера, но информационные запросы по-прежнему разрешены.
  5. Noquery: этот параметр запрещает хостам запрашивать информацию у сервера. Например, без этой опции хосты могут использовать ntpdc или ntpq, чтобы определить, откуда конкретный сервер времени получает свое время или другие одноранговые серверы времени, с которыми он может обмениваться данными.

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

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

4 мысли о «Как установить и настроить NTP-сервер и клиент в Debian»

Я неправильно понял эту концепцию. не могли бы вы объяснить просто, чтобы обычный человек тоже мог понять.

Заранее спасибо.

Что вы не поняли? не могли бы вы подробнее объяснить, где вы не поняли, и что вы хотите, чтобы мы объяснили более подробно?

NTP – это сетевой протокол, используемый для синхронизации всех системных часов в сети. Это позволяет всем системам в сети иметь одинаковое время. NTP делает это, связываясь с рядом других серверов времени в Интернете. NTP использует порт UDP 123 для связи с клиентами и другими серверами NTP. В этом посте мы собираемся показать вам, как настроить сервер и клиент NTP в системе Debian.

Для демонстрации мы использовали две машины Debian со следующими деталями:

Хост NTP — имя хоста: ntp-host, статический IP-адрес: 192.168.72.158

Клиент NTP — имя хоста: клиент, IP-адрес: 192.168.72.159

Примечание. Показанные здесь шаги были протестированы на Debian 10 (Buster).

Установка и настройка NTP-сервера на хост-компьютере Debian

Для установки и настройки NTP-сервера в Debian 10 вам необходимо выполнить все шаги, перечисленные ниже:

Шаг 1. Запустите Apt Update

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

Шаг 2. Установка NTP на хост-сервер

Чтобы установить сервер NTP на хост-компьютере, выполните следующую команду:

После выполнения приведенной выше команды вас могут спросить, хотите ли вы продолжить установку, предоставив вам вариант y/n (да/нет). Введите y, чтобы продолжить процесс установки.

Чтобы проверить, установлен ли NTP, и просмотреть информацию о версии, выполните следующую команду:

Шаг 3. Настройка NTP-сервера

Для настройки NTP-сервера на хост-компьютере должны быть два элемента: файл /etc/ntp.conf и демон ntpd. Сначала мы настроим файл ntp.conf, а затем перезапустим демон ntpd.

Отредактируйте файл /etc/ntp.conf с помощью следующей команды:

Когда сервер NTP установлен, он по умолчанию настроен на получение времени со следующих серверов:

Чтобы использовать какой-либо конкретный сервер пула NTP, вам необходимо добавить его в файл ntp.conf. Мы собираемся добавить серверы пулов для азиатского региона, который показан следующим образом:

В файле ntp.conf замените список пулов по умолчанию следующими строками:

Затем сохраните и закройте файл ntp.conf.

Шаг 4. Перезапустите демон NTP

Теперь вы должны перезапустить демон NTP. Для этого используйте следующую команду:

Теперь выполните следующую команду, чтобы проверить, работает ли сервер NTP без каких-либо проблем:

Шаг 5. Разрешите NTP через брандмауэр

Если вы используете брандмауэр, вам необходимо настроить его, чтобы разрешить UDP-подключения к NTP-порту 123. Выполните следующую команду, чтобы разрешить клиентам доступ к NTP-серверу:

Теперь выполните следующую команду, чтобы проверить, успешно ли добавлено правило:

Установка и настройка NTP-клиента на клиентском компьютере Debian

Чтобы настроить машину в качестве NTP-клиента, необходимо убедиться, что смещение (разница во времени между локальными часами и NTP-сервером) не превышает 1024 секунд. Если смещение больше этого значения, источник времени будет считаться неточным. По этой причине мы сначала попытаемся вручную синхронизировать клиент NTP с сервером NTP, используя файл ntpdate. Если значение смещения меньше 1024 секунд, мы настроим файл ntpd.conf для автоматической синхронизации.

Шаг 1. Синхронизируйте NTP-клиент с NTP-сервером вручную с помощью ntpdate

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

После выполнения приведенной выше команды вас могут спросить, хотите ли вы продолжить установку, предоставив вам вариант y/n (да/нет). Введите y, чтобы продолжить процесс установки.

Теперь используйте следующую команду, чтобы вручную синхронизировать клиент NTP с сервером NTP:

В нашем сценарии это будет:

Вывод команды ntpdate покажет значение смещения (разница во времени между локальными часами и сервером NTP). В нашем примере значение смещения составляет 0,054776 с, что намного меньше. Поэтому теперь мы можем настроить ntp.conf для автоматической синхронизации времени с нашим NTP-сервером.

Шаг 2. Конфигурация файла hosts

Добавьте следующую запись имени хоста в файл /etc/hosts клиентского компьютера. Этот шаг необходим для разрешения NTP-сервера через имя хоста.

Обязательно замените ntp-server-hostname и ntp-server-ip на имя хоста и IP-адрес вашего NTP соответственно. В нашем сценарии это будет:

Шаг 3. Отключите демон systemd timesyncd

Поскольку мы собираемся настроить NTP, отключите демон systemd timesyncd. Для этого используйте следующую команду:

Шаг 4. Автоматическая синхронизация клиента NTP с сервером NTP с помощью файла конфигурации NTP

Теперь мы настроим нашу клиентскую машину для автоматической синхронизации с сервером NTP. По этой причине мы установим NTP с помощью следующей команды в клиентской системе:

После выполнения приведенной выше команды вас могут спросить, хотите ли вы продолжить установку, предоставив вам вариант y/n (да/нет). Введите y, чтобы продолжить процесс установки. После завершения установки настройте файл ntp.conf.

Выполните следующую команду, чтобы отредактировать файл ntp.conf:

Вставьте в файл следующую строку:

В нашем сценарии это будет:

В приведенной выше строке параметр Prefer используется, чтобы пометить указанный сервер как предпочтительный сервер для синхронизации NTP. Где iburst используется для отправки шести пакетов на синхронизацию вместо обычного одного (в случае недоступности NTP-сервера).

Теперь перезапустите демон NTP, чтобы применить изменения конфигурации:

Проверить статус синхронизации NTP

Теперь, чтобы проверить, правильно ли работает NTP, выполните следующую команду:

Вот вывод приведенной выше команды, где remote — это имя хоста NTP-сервера, а refid — это сервер верхнего уровня, к которому наш NTP-сервер сам подключился для синхронизации.

На этом все! В сегодняшнем посте мы показали вам, как настроить сервер NTP в Debian 10. Затем мы объяснили, как настроить клиент NTP на другом компьютере с Debian и синхронизировать его с сервером NTP. Выполнив все описанные выше простые шаги, вы сможете легко синхронизировать все системные часы в сети.

Уммара Муштак — инженер по телекоммуникациям с двухлетним опытом работы в области поддержки серверов и сетей. Она пишет технические статьи по системному администрированию Linux для LinuxWays.

Ну, интересно, как настроить сервер NTP в Debian 10 Buster? Следуйте этому руководству, чтобы узнать, как настроить сервер NTP с помощью NTPd в Debian 10 Buster.

Настройка NTP-сервера с помощью NTPd в Debian 10 Buster

Запустить обновление системы

Прежде чем продолжить, выполните приведенную ниже команду, чтобы обновить системные пакеты.

Установите NTP на Debian 10 Buster

Пакет ntp предоставляет демона NTPd, который отвечает за настройку и поддержание системного времени суток в синхронизации с серверами стандартного времени в Интернете. Пакет ntp доступен в репозиториях Debian 10 Buster по умолчанию. Следовательно, вы можете установить, выполнив команду ниже;

Запуск службы NTP

NTP запускается и включается при загрузке системы после установки. Чтобы проверить статус;

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

Настроить пул NTP

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

Получите список серверов в вашем часовом поясе (или на вашем континенте) с серверов времени общего пула NTP. Затем откройте файл конфигурации NTP и прокомментируйте серверы пула Debian и добавьте серверы времени пула NTP вашего часового пояса. Например, чтобы использовать серверы пула времени NTP из Европы, вы должны добавить приведенные ниже строки в конфигурацию NTP.

Настройка контроля доступа к серверу NTP

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

Например, чтобы разрешить хостам в сети 192.168.1.0/24 запрашивать точное время и статистику с вашего NTP-сервера;

  • параметры nomodify предотвращают любые изменения в конфигурации
  • параметр notrap предотвращает ловушки протокола управляющих сообщений ntpdc.
  • параметр nopeer предотвращает формирование одноранговой ассоциации

Для базовой настройки NTP-сервера это просто настройка. Сохраните конфигурацию и перезапустите службу NTP.

Проверьте подключение NTP-сервера к одноранговым узлам NTP и сводку их состояния, выполнив команду;

Открыть NTP в брандмауэре

Если UFW работает, вы можете просто разрешить входящие запросы NTP из определенной сети.

Настроить NTP-клиент

Чтобы убедиться, что настроенный сервер действительно работает, вам необходимо настроить клиент NTP для запроса времени с нашего сервера NTP. В этом руководстве Debian 10 Buster также используется в качестве NTP-клиента.

Что ж, если вам нужно просто запустить синхронизацию времени один раз, вы можете просто использовать команду ntpdate. Чтобы установить ntpdate;

После завершения установки вы можете запросить службы времени с сервера, используя ntpdate, выполнив команду;

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

После завершения установки настройте клиент NTP для отправки запросов на сервер NTP. Это можно сделать с помощью команды сервера, которая принимает форму;

Опция iburst сокращает время, необходимое для начальной синхронизации.

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

Следовательно, откройте файл конфигурации NTP

Сохраните и закройте файл конфигурации.

Далее отключите Systemd timesyncd ntp.

Перезапустить службу NTP

Проверьте синхронизацию времени

Отлично. Вы успешно установили и настроили NTP-сервер с помощью NTPd в Debian 10 Buster. Вы также настроили клиент и протестировали работу вашего NTP-сервера. Наслаждайтесь.

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

В Debian 10 встроена синхронизация времени, которая активируется по умолчанию с помощью стандартного сервера времени ntpd, предоставляемого пакетом ntp. В этой статье мы рассмотрим некоторые основные команды, связанные со временем, убедимся, что ntpd активен и подключен к одноранговым узлам, а также узнаем, как активировать альтернативную службу сетевого времени systemd-timesyncd.

Предпосылки

Перед началом работы с этим руководством вам потребуется сервер Debian 10 с пользователем без полномочий root и включенным sudo, как описано в этом руководстве по настройке сервера Debian 10.

Шаг 1. Навигация по основным командам времени

Самой простой командой для определения времени на вашем сервере является date . Любой пользователь может ввести эту команду, чтобы распечатать дату и время:

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

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

Сначала укажите доступные часовые пояса:

Список часовых поясов будет распечатан на вашем экране. Вы можете нажать ПРОБЕЛ, чтобы перейти на страницу вниз, и b, чтобы перейти на страницу вверх. Как только вы найдете правильный часовой пояс, запишите его, а затем нажмите q, чтобы выйти из списка.

Теперь установите часовой пояс с помощью timedatectl set-timezone , убедившись, что выделенная часть ниже заменена часовым поясом, который вы нашли в списке. Вам нужно будет использовать sudo с timedatectl, чтобы внести это изменение:

Вы можете еще раз проверить свои изменения по дате выполнения:

Аббревиатура часового пояса должна отражать новое выбранное значение.

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

Шаг 2 — Проверка состояния ntpd

По умолчанию Debian 10 запускает стандартный сервер ntpd для синхронизации системного времени с пулом внешних серверов времени. Мы можем проверить, работает ли он с помощью команды systemctl:

Активный (работающий) статус означает, что ntpd запущен правильно. Чтобы получить больше информации о статусе ntpd, мы можем использовать команду ntpq:

ntpq — это инструмент запросов для ntpd. Флаг -p запрашивает информацию о NTP-серверах (или одноранговых узлах), к которым подключен ntpd. Ваш вывод будет немного отличаться, но вы должны указать серверы пула Debian по умолчанию, а также несколько других. Имейте в виду, что для установки соединения ntpd может потребоваться несколько минут.

Шаг 3. Переключение на systemd-timesyncd

Для замены ntpd можно использовать встроенный в systemd компонент timesyncd. timesyncd — более легкая альтернатива ntpd, более интегрированная с systemd.Обратите внимание, однако, что он не поддерживает работу в качестве сервера времени, и он немного менее сложен в методах, которые он использует для синхронизации вашего системного времени. Если вы используете сложные распределенные системы реального времени, вы можете использовать ntpd.

Чтобы использовать timesyncd, мы должны сначала удалить ntpd:

Затем запустите службу timesyncd:

Наконец, проверьте статус службы, чтобы убедиться, что она работает:

Мы можем использовать timedatectl, чтобы распечатать текущие представления systemd о времени:

При этом выводится местное время, универсальное время (которое может совпадать с местным временем, если вы не переключились с часового пояса UTC) и некоторая информация о состоянии сетевого времени. Системные часы синхронизированы: да означает, что время было успешно синхронизировано, а служба NTP: активна означает, что timesyncd включен и работает.

Заключение

В этой статье мы показали, как просматривать системное время, изменять часовые пояса, работать с ntpd и переключаться на службу systemd timesyncd. Если у вас есть более сложные потребности в хронометрировании, чем то, что мы рассмотрели здесь, вы можете обратиться к официальной документации NTP, а также взглянуть на проект NTP Pool Project, глобальную группу добровольцев, обеспечивающую большую часть мировой инфраструктуры NTP.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Читайте также: