ГлавнаяОперационные системыLinuxКак синхронизировать время Linux с NTP-сервером

Как синхронизировать время Linux с NTP-сервером

Компьютерные часы не идеальны. Через несколько дней, недель или месяцев они смещаются и перестают показывать реальное время. После того, как они отклонятся, они могут показать «10:30», хотя на самом деле «10:33». На старых компьютерах было обычной практикой периодически корректировать компьютерные часы вручную. Но после того, как подключение к Интернету стало повсеместным, современные операционные системы начали автоматически корректировать часы с помощью NTP-серверов.

Читайте также: Как создать SSL-сертификаты в Linux с помощью OpenSSL

Что такое NTP?

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

Как включить синхронизацию времени в Linux

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

Что такое NTP?

демон.

В ОС Linux с помощью systemd

Большинство дистрибутивов Linux используют системный , а вместе с ним и демон «systemd-timesyncd». Это означает, что у вас уже есть клиент NTP, предустановленный в Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro и других. В этих дистрибутивах и других дистрибутивах, основанных на них (например, Elementary OS и Zorin OS), запустите это, чтобы проверить, включена ли синхронизация NTP:

timedatectl
Синхронизация времени Linux Ntp 01 Пример Timedatectl

Если вы видите Network time on: yesв выходных данных, значит, часы вашего компьютера автоматически периодически корректируются через NTP. Вы также можете заметить NTP synchronized: no, что может означать, что часы синхронизируются с помощью какого-либо другого инструмента, кроме «systemd-timesyncd». Это также мо

В ОС Linux с помощью systemd

ще не синхронизировался, но сделает это позже.

Если вы видите Network time on: no, выполните следующую команду, чтобы включить синхронизацию времени NTP.

sudo timedatectl set-ntp true

Это все, что вам нужно сделать в этих дистрибутивах.

Совет. прочитайте наши руководство по timedatectl , чтобы узнать больше.

В ОС Linux без systemd

Поскольку МХ Линукс равен один из самых популярных дистрибутивов Linux , кажется уместным начать с примера, касающегося этой ОС. Это также особый случай, поскольку «вроде» есть systemd, но в «вроде» нет . timedatectl сообщает, что сетевое время включено, но systemd-timesyncd не используется.

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

sudo cat /var/log/syslog | grep ntp

В MX Linux вы получите результат, аналогичный тому, что видите на следующем рисунке.

Синхронизация времени Linux Ntp 02 Mx Linux Grep Time

Из этого отфильтрованного сообщения журнала видно, что клиент «ntpdate» запускался один раз. Это популярный клиент, установленный по умолчанию во многих дистрибутивах Linux. Он легкий и лишь время от времени запрашивает NTP-серверы. Он не запускается в фоновом режиме и запускается скриптами и синхронизацией, а затем завершает работу.

Это время не синхронизируется с очень высокой точностью (например, до миллисекунд или микросекунд), но для большинства целей оно достаточно точное. Обычно это точно, по крайней мере, с точностью до секунды.В ОС Linux без systemdемах вы можете увидеть «ntpd» — демон, постоянно работающий в фоновом режиме и чрезвычайно точный. Чем больше он работает, тем точнее он становится.

Если по какой-то причине вы хотите установить ntpили ntpdateв операционных системах с systemd, сначала отключите ntp-клиент systemd.

sudo timedatectl set-ntp false

Конечно, указанная выше команда не требуется в дистрибутивах, отличных от systemd.

Установить клиент ntpdate

Подходит для домашних компьютеров, ноутбуков и других устройств, которые не находятся постоянно в Интернете.

В Debian, Ubuntu, Linux Mint, Zorin и других дистрибутивах на их основе запустите:

sudo apt install ntpdate

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

Как в Fedora, так и в Ubuntu ntpdate является устаревшим программным обеспечением, поэтому вместо него рекомендуется использовать демон ntpd (как показано ниже). То же самое рекомендуется и для всех остальных дистрибутивов по двум причинам:

  • Иногда они не включают ntpdate в отдельный пакет, а связывают его с ntpd из следующего раздела.
  • Они не автоматизируют автоматический запуск ntpdate при каждом сетевом подключении. Вам придется самостоятельно вставить ntpdate в скрипт, который автоматически запускается после подключения к сети.

В этом случае имеет смысл установить ntpd, как описано в следующем разделе.

Установить демон ntpd

В Debian, Ubuntu, Zorin, Mint и других дистрибутивах на базе Debian или Ubuntu запустите:

sudo apt install ntp

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

В Fedora установите с помощью:

sudo dnf install ntp

Для Arch Linux используйте:

sudo pacman -S ntp

В openSUSE введите:

sudo zypper install ntp

После этого включите запуск службы при загрузке и запустите ее:

sudo systemctl enable ntpd
sudo systemctl start ntpd

В других дистрибутивах, работающих без systemd, вместо этого вам, возможно, придется запустить эти команды:

sudo update-rc.d ntpd enable
sudo service ntpd start

или что-то эквивалентное для вашей ОС.

Если вы получите сообщение об ошибке, что ntpd не существует, замените «ntpd» на «ntp» в приведенных выше командах. В некоторых дистрибутивах служебные файлы демона ntpd называются по-другому.

Читайте также: Лучшие конвертеры часовых поясов для удобного планирования

Мониторинг ntpd

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

Установить клиент ntpdate

ить, общается ли ваш компьютер с сервером времени:

ntpstat
Синхронизация времени Linux Ntp 03 Ntpstat работает

Вы также можете опросить активные серверы времени в текущем экземпляре ntpd. Это может быть полезно, если вы пытаетесь синхронизировать время на своем компьютере с Linux и хотите увидеть наиболее надежные хосты, которые вы можете использовать. Чтобы выполнить опрос сервера времени, выполните следующую команду:

ntpq -p
Синхронизация времени Linux Ntp 04 Ntpq Список серверов времени

Наконец, ntpq — это также приглашение, которое вы можете использовать для прямого взаимодействия с демоном NTP. Чтобы использовать это приглашение, запустите ntpqв окне терминала.

Синхронизация времени Linux Ntp 05 Ntpq в интерактивном режиме

Оказавшись внутри, введите ?, чтобы просмотреть все доступные команды для демона NTP. Например, выполнение следующей команды заставит демон синхронизировать время вашего компьютера Linux с NTP4:

ntpversion 4
Синхронизировать время Linux Ntp 06 Ntpq Изменить версию Ntp

Установить демон Chrony

Помимо запуска ntpd, также можно использовать современный протокол учета времени и интерфейс для NTP. Chrony — это простая и современная реализация демона NTP.

Одним из самых больших преимуществ использ

Установить демон ntpd

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

Этот подход может быть полезен, если вы используете свой компьютер для выполнения срочных задач, например мониторинг прогнозов погоды . Чтобы установить Chrony в Debian и Ubuntu, выполните следующую команду:

sudo apt install chrony
Синхронизировать время Linux Ntp 07 Apt Установить Chrony

В Arch Linux используйте pacmanдля установки программы:

sudo pacman -S chrony

Используйте dnfдля установки Chrony в Fedora:

sudo dnf install chrony

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

chronyc sources
Синхронизация времени Linux Ntp 08 Chrony List Timeservers

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

Читайте также: Как исправить высокую загрузку процессора в Linux

Часто задаваемые вопросы

Можно ли установить Chrony и ntpd на одну машину?

Нет, поскольку и Chrony, и ntpd — это демоны, предоставляющие один и тот же набор служб для ваш

Мониторинг ntpd

предназначены для синхронизации локального времени Linux с сервером времени. Однако Chrony и ntpd различаются по целевому применению.

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

Повышает ли сочетание серверов времени мои часы точнее?

Да! Некоторые настольные компьютеры Linux используют «серверы времени пула» для поддержания системного времени. Это сервисы, которые собирают данные о времени с других серверов времени. «Сервер времени пула» использует эти данные для оценки текущего времени. Например, Ubuntu использует «ubuntu.pool.ntp.org» в качестве основного сервера времени как для своих настольных компьютеров, так и для серверов.

Я использую SystemD. Будут ли Chrony и ntpd вызывать конфликты с timesyncd?

Нет! По умолчанию timesyncdSystemD является лишь дополнительным модулем системы инициализации. Альтернативные демоны NTP можно использовать даже с дистрибутивом SystemD. Например, установка Chrony в Ubuntu и Debian автоматически удалит timesyncd в системе.

Изображение предоставлено: Unsplash . Все изменения и скриншоты Рамсеса Реда.

Установить демон Chrony

Часто задаваемые вопросы

Можно ли установить Chrony и ntpd на одну машину?

Повышает ли сочетание серверов времени мои часы точнее?

Я использую SystemD. Будут ли Chrony и ntpd вызывать конфликты с timesyncd?

ПОХОЖИЕ СТАТЬИ

Популярные записи