- Установка и настройка NTP-клиента в Linux
- Настройка синхронизации NTP-клиента с NTP-сервером
- Запуск службы NTP
- Проверка состояния NTP
- Ручная синхронизация времени
- Похожие записи:
- ⏲️ Как проверить, работают ли настройки NTP (синхронизация) или нет в Linux?
- Способ 1: Как проверить состояние NTP с помощью команды ntpq?
- Способ 2: Как проверить состояние NTP с помощью команды ntpstat?
- Способ 3: Как проверить состояние NTP с помощью команды timedatectl?
- Как синхронизировать время в Linux
- Синхронизация времени в Linux и NTP
- Как включить синхронизацию времени в Linux
- Синхронизировать время в Linux с systemd
- Синхронизировать время в Linux без systemd
- Установить клиент ntpdate
- Установить ntpd Daemon
Установка и настройка NTP-клиента в Linux
Для начала смотрим какая у нас установлена временная зона. Для этого используем команду date.
[root@localhost ~]# date Пт мар 8 17:38:47 MSK 2019
Если временная зона установлена неправильно, то устанавливаем правильную временную зону. Для этого создаем симлинк на файл /etc/localtime с соответствующей временной зоны из каталога /usr/share/zoneinfo/. Например для Москвы.
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Настройка синхронизации NTP-клиента с NTP-сервером
Для синхронизации локальной клиентской машины на Linux с NTP-сервером требуется отредактировать файл /etc/ntp.conf. В следующем примере указывается несколько серверов времени, что полезно на случай недоступности одного из них. Или можете прописать другие внешние сервера, например pool.ntp.org
server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst
iburst: данный параметр повышает точность синхронизации, вместо одного пакета отправляется восемь. Когда сервер не отвечает, пакеты отправляются каждые 16 секунд, когда отвечает – каждые 2 секунды.
Далее нужно указать в файле конфигурации ваш NTP-сервер, который мы настроили в предыдущей статье. Если у вас в сети нет своего ntp сервера, то этот параметр указывать не нужно.
prefer: если указана данная опция, заданный сервер считается предпочтительным перед остальными, но если ответ этого сервера будет значительно отличаться от ответов остальных серверов, он будет игнорироваться. Вместо 192.168.1.1 укажите ip адрес вашего сервера
Запуск службы NTP
После изменения ntp.conf и задания необходимых параметров запустите службу (демон) NTP. В зависимости от настроек, она может работать и как сервер, и как клиент.
и добавьте его в автозагрузку
для проверки времени наберите команду
Проверка состояния NTP
Проверить состояние NTP можно при помощи команды ntpq. Если вы получите ошибку отказа в соединении, значит, сервер времени не отвечает, не запущена служба NTP на клиенте или закрыт порт.
sudo ntpq –p remote refid st t when poll reach delay offset jitter ========================================================================= *elserver1 192.168.1.1 3 u 300 1024 377 1.225 -0.071 4.606
remote – имя или адрес сервера времени. Перед ним указан служебный символ, в данном случае «*», что означает используемый сервер. «+» означает, что сервер пригоден для обновления, «-» — что непригоден, «x» — сервер недоступен;
refid – вышестоящий в иерархии Stratum сервер;
st – уровень сервера в иерархии Stratum;
t – тип соединения (u – unicast, одиночное соединение, b – broadcast, широковещательное соединение, l – локальные часы);
when – время, прошедшее с момента последнего ответа;
poll – период опроса в секундах;
reach – состояние доступности (при представлении в двоичном виде 1 означает успешную попытку, 0 – сбой. После 8 успешных попыток устанавливается значение 377);
delay – время двойного оборота пакета;
offset – текущее смещение времени относительно сервера;
jitter – среднеквадратичное отклонение времени.
Значение jitter должно быть низким, если это не так, проверьте смещение относительно часов в файле погрешности (driftfile). Если оно слишком велико, может потребоваться смена NTP-сервера. Следующая команда вручную синхронизирует время с NTP-сервером:
Ручная синхронизация времени
Для опроса NTP-сервера и установки даты и времени в ручную используется команда ntpdate. Обычно это требуется только один раз.
Для начала отключите ntp службу
Запустите синхронизацию указав сервер с которого нужно синхронизировать время
После такой первоначальной синхронизации NTP-клиент будет регулярно опрашивать NTP-сервер для обеспечения соответствия локального времени точному времени.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
⏲️ Как проверить, работают ли настройки 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 работает правильно, вы получите вывод, аналогичный приведенному ниже.
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *CentOS7.2daygee 133.243.238.163 2 u 14 64 37 0.686 0.151 16.432
Способ 2: Как проверить состояние NTP с помощью команды ntpstat?
ntpstat сообщит о состоянии синхронизации демона NTP (ntpd), работающего на локальной машине.
Если будет установлено, что локальная система синхронизирована с эталонным источником времени, ntpstat сообщит о приблизительной точности времени.
Команда ntpstat возвращает три вида кода состояния на основе синхронизации NTP. Подробности ниже.
- 0: возвращает 0, если часы синхронизированы.
- 1: Возвращает 1, если часы не синхронизированы.
- 2: Возвращает 2, если состояние часов не определено, например, если ntpd не доступен.
# ntpstat synchronised to NTP server (192.168.1.8) at stratum 3 time correct to within 508 ms polling server every 64 s
Способ 3: Как проверить состояние NTP с помощью команды timedatectl?
Команда timedatectl используется для запроса и изменения системного времени и его настроек в системе systmed.
# timedatectl или # timedatectl status Local time: Thu 2019-05-30 05:01:05 CDT Universal time: Thu 2019-05-30 10:01:05 UTC RTC time: Thu 2019-05-30 10:01:05 Time zone: America/Chicago (CDT, -0500) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2019-03-10 01:59:59 CST Sun 2019-03-10 03:00:00 CDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2019-11-03 01:59:59 CDT Sun 2019-11-03 01:00:00 CST
Chrony это замена NTP-клиента.
Он может синхронизировать системные часы с большей точностью и может быть особенно полезен для систем, которые не подключены к сети все время.
chronyd меньше, он использует меньше памяти и пробуждает процессор только при необходимости, что лучше для экономии энергии.
Он может работать хорошо, даже если сеть перегружена в течение более длительных периодов времени.
Как синхронизировать время в Linux
Часы в компьютере далеко не идеальны. Через несколько дней, недель или месяцев они перестают отображать правильное время. Они могут показывать «10:30», тогда как на самом деле «10:33». На старых компьютерах было обычной практикой периодически переустанавливать часы компьютера вручную. Но после того, как интернет-соединения стали повсеместными, современные операционные системы начали автоматически настраивать часы с помощью NTP-серверов.
В статье я покажу, как синхронизировать время в Linux в дистрибутивах Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro, CentOS, Elementary ОС, Zorin OS и т.д.
Синхронизация времени в Linux и NTP
NTP — это сокращение от Network Time Protocol. Это алгоритм, разработанный для синхронизации часов компьютера с помощью подключения к NTP-серверу.
Как включить синхронизацию времени в Linux
К счастью, большинство Linux-дистрибутивов по умолчанию синхронизируют время. Если вы не замечали, что часы вашего компьютера расходятся с часами телефона, тогда наверняка ваш дистрибутив использует NTP-клиент / демон.
Синхронизировать время в Linux с systemd
В большинстве дистрибутивов Linux используется systemd, а вместе с ним и демон systemd-timesyncd. Это означает, что у вас уже есть NTP-клиент, предварительно установленный в Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro и других. На этих дистрибутивах (и других основанных на них, например, Elementary ОС, Zorin OS) чтобы проверить, включена ли синхронизация NTP запустите команду:
Если на выходе отображается « Network time on : yes », часы вашего компьютера автоматически синхорнизируются через NTP. Иногда вы можете также заметить NTP synchronized : — это означает, что часы синхронизируются с помощью другого инструмента.
Если вы видите Network time on : no , выполните следующую команду, чтобы включить синхронизацию времени NTP.
Это все, что вам нужно сделать в этих дистрибутивах.
Синхронизировать время в Linux без systemd
Для примера возьмем MX Linux. Запуск команды timedatectl показывает, что сетевое время включено, но systemd-timesyncd не используется. Как же синхронизировать время в таких дистрибутивах без systemd?
Проверьте с помощью следующей команды, которую вы можете использовать в любой другой операционной системе Linux.
В MX Linux вы увидите результат, подобный тому, что вы видите на следующем снимке экрана.
Из этого сообщения журнала видно, что клиент «ntpdate» запускался один раз. Это популярный клиент, установленный по умолчанию во многих дистрибутивах Linux. Он легкий и время от времени запрашивает только NTP-серверы. Он не работает в фоновом режиме и запускается сценариями, синхронизируется, а затем завершается.
Это означает, что время не синхронизируется с высокой точностью (например, миллисекунды или микросекунды), но оно достаточно точно для большинства.
В других операционных системах вы можете увидеть «ntpd», который является демоном, постоянно работающим в фоновом режиме и очень точным. Чем больше он работает, тем точнее время.
Если по какой-то причине вы хотите установить ntp или ntpdate в операционных системах с systemd, сначала отключите ntp-клиент systemd.
Конечно, приведенная выше команда не нужна в несистемных дистрибутивах.
Установить клиент ntpdate
Это подходит для домашних компьютеров, ноутбуков и других устройств, которые не постоянно подключены к Интернету.
На Debian, Ubuntu, Linux Mint, Zorin и других дистрибутивах, основанных на них, запустите:
На всех вышеперечисленных дистрибутивах на основе Debian он настроен по умолчанию на запуск после того, как обнаружит новое сетевое соединение. Вы можете принудительно синхронизировать время, если отключитесь от сети и подключитесь снова.
В Fedora ntpdate устарела, поэтому рекомендуется вместо этого использовать демон ntpd (см. Следующую главу). То же самое рекомендуется для всех других дистрибутивов по двум причинам:
- Иногда они не включают ntpdate в отдельный пакет, а связывают его с ntpd из следующего раздела.
- Они не автоматизируют запуск ntpdate автоматически при каждом сетевом подключении. Вы должны вставить ntpdate самостоятельно в скрипт, который автоматически запускается после подключения к сети.
В этом случае имеет смысл установить ntpd, как указано в следующей главе.
Установить ntpd Daemon
В Debian, Ubuntu, Zorin, Mint и других дистрибутивах, основанных на Debian или Ubuntu, запустите:
Эти дистрибутивы сразу запускают ntpd, а затем автоматически запускают его при каждой загрузке; никаких дальнейших действий от вас не требуется.
На Fedora установите с помощью: