Компьютерные часы не идеальны. Через несколько дней, недель или месяцев они смещаются и перестают показывать реальное время. После того, как они отклонятся, они могут показать «10:30», хотя на самом деле «10:33». На старых компьютерах было обычной практикой периодически корректировать компьютерные часы вручную. Но после того, как подключение к Интернету стало повсеместным, современные операционные системы начали автоматически корректировать часы с помощью NTP-серверов.
Читайте также: Как создать SSL-сертификаты в Linux с помощью OpenSSL
Что такое NTP?
NTP — это аббревиатура от «Протокол сетевого времени». Это алгоритм, который синхронизирует компьютерные часы через сетевые подключения и обеспечивает их точность.
Как включить синхронизацию времени в Linux
К счастью, большинство дистрибутивов реализуют ту или иную форму синхронизации времени «из коробки». Если вы никогда не замечали, что часы вашего компьютера отклоняются от часов телефона, у вас почти наверняка
Contents
Что такое NTP?
демон.В ОС Linux с помощью systemd
Большинство дистрибутивов Linux используют системный , а вместе с ним и демон «systemd-timesyncd». Это означает, что у вас уже есть клиент NTP, предустановленный в Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro и других. В этих дистрибутивах и других дистрибутивах, основанных на них (например, Elementary OS и Zorin OS), запустите это, чтобы проверить, включена ли синхронизация NTP:
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 вы получите результат, аналогичный тому, что видите на следующем рисунке.
Из этого отфильтрованного сообщения журнала видно, что клиент «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
Вы также можете опросить активные серверы времени в текущем экземпляре ntpd. Это может быть полезно, если вы пытаетесь синхронизировать время на своем компьютере с Linux и хотите увидеть наиболее надежные хосты, которые вы можете использовать. Чтобы выполнить опрос сервера времени, выполните следующую команду:
ntpq -p
Наконец, ntpq — это также приглашение, которое вы можете использовать для прямого взаимодействия с демоном NTP. Чтобы использовать это приглашение, запустите ntpq
в окне терминала.
Оказавшись внутри, введите ?
, чтобы просмотреть все доступные команды для демона NTP. Например, выполнение следующей команды заставит демон синхронизировать время вашего компьютера Linux с NTP4:
ntpversion 4
Установить демон Chrony
Помимо запуска ntpd, также можно использовать современный протокол учета времени и интерфейс для NTP. Chrony — это простая и современная реализация демона NTP.
Одним из самых больших преимуществ использ
Установить демон ntpd
он автоматически рассчитывает количество секунд, на которое ваши местные часы отклоняются от эталонного сервера времени. Затем демон корректирует локальное время Linux, чтобы оно всегда синхронизировалось с этой ссылкой.Этот подход может быть полезен, если вы используете свой компьютер для выполнения срочных задач, например мониторинг прогнозов погоды . Чтобы установить Chrony в Debian и Ubuntu, выполните следующую команду:
sudo apt install chrony
В Arch Linux используйте pacman
для установки программы:
sudo pacman -S chrony
Используйте dnf
для установки Chrony в Fedora:
sudo dnf install chrony
Как только Chrony окажется в вашей системе, убедитесь, что он опрашивает удаленный сервер времени, выполнив следующую команду:
chronyc sources
После этого либо выйдите из системы, либо перезагрузите компьютер, чтобы убедиться, что время в вашей системе Linux синхронизируется с вашим удаленным сервером времени.
Читайте также: Как исправить высокую загрузку процессора в Linux
Часто задаваемые вопросы
Можно ли установить Chrony и ntpd на одну машину?
Нет, поскольку и Chrony, и ntpd — это демоны, предоставляющие один и тот же набор служб для ваш
Мониторинг ntpd
предназначены для синхронизации локального времени Linux с сервером времени. Однако Chrony и ntpd различаются по целевому применению.Разработчики Chrony разработали программу для работы с современным оборудованием Linux, поэтому она включает в себя функции, отнимающие много ресурсов вашей системы. ntpd проще и может работать как с устаревшим, так и с меньшим оборудованием.
Повышает ли сочетание серверов времени мои часы точнее?
Да! Некоторые настольные компьютеры Linux используют «серверы времени пула» для поддержания системного времени. Это сервисы, которые собирают данные о времени с других серверов времени. «Сервер времени пула» использует эти данные для оценки текущего времени. Например, Ubuntu использует «ubuntu.pool.ntp.org» в качестве основного сервера времени как для своих настольных компьютеров, так и для серверов.
Я использую SystemD. Будут ли Chrony и ntpd вызывать конфликты с timesyncd?
Нет! По умолчанию timesyncd
SystemD является лишь дополнительным модулем системы инициализации. Альтернативные демоны NTP можно использовать даже с дистрибутивом SystemD. Например, установка Chrony в Ubuntu и Debian автоматически удалит timesyncd в системе.
Изображение предоставлено: Unsplash . Все изменения и скриншоты Рамсеса Реда.