Если вы когда-нибудь задавались вопросом о том, как работает автоматический переход на зимнее/летнее время либо задумывались, как компьютер берет из интернета информацию о точном времени, настраивая внутренние часы, то сегодняшняя статья — для вас. А еще для тех, кому необходимо настроить синхронизацию часов на сервере, работающем под управлением операционной системы Ubuntu 18.04, и на компьютере-клиенте, где установлен аналогичный дистрибутив Linux.
Речь пойдет об NTP — протоколе сетевого времени. Именно он повсеместно применяется для решения таких задач. После прочтения статьи вы сможете:
- Установить NTP-сервер и настроить его для работы на серверной версии Ubuntu 18.04.
- Установить клиентское приложение NTP на машине-клиенте с Ubuntu 18.04, а также убедиться в том, что синхронизация с сервером происходит так, как положено.
Установка NTP-сервера на Ubuntu 18.04
Все действия, которые необходимо совершить для достижения цели — то есть, для установки NTP-сервера и синхронизации времени — будут описаны пошагово. Повторять их следует в такой же последовательности, ничего не упуская.
Шаг 1: Обновление списка репозиториев
Сначала рассмотрим как установить NTP сервер Ubuntu 18.04. Но установку любого ПО в Ubuntu предваряет выполнение следующей команды:
sudo apt update -y
Она необходима для того, чтобы ОС обновила список репозиториев и имела актуальный перечень программных файлов, установленных на жестком диске.
Шаг 2: Установка NTP-сервера
Когда компьютер закончит выполнение предыдущей команды, самое время дать ему следующее задание. Оно заключается в установке протокола NTP на Ubuntu 18.04 c длительным сроком поддержки. Команда выглядит так:
sudo apt install ntp
После ее получения система проверит, доступны ли ей установочные файлы и сообщит о том, какой объем памяти будет занимать программа. На экране появится запрос на инсталляцию, который нужно подтвердить, нажав клавиши Y и ENTER, либо отклонить нажатием N и Enter (в том случае, если вы решили отложить все это дело на потом).
После завершения не помешает убедиться в том, что установка прошла успешно. Сделать это можно, спросив систему, какая именно версия NTP доступна на компьютере в данный момент:
sntp — version
Шаг 3: Настройка пулов NTP-сервера
Работа NTP-сервера по умолчанию строится на четырех «родных» пулах для Ubuntu. Их адреса прописаны в файле конфигурации /etc/ntp.conf . Нет прямой необходимости что-либо здесь менять, однако, есть смысл заменить пулы на те, которые расположены ближе к физическому месту нахождения сервера.
Воспользовавшись ссылкой https://support.ntp.org/bin/view/Servers/NTPPoolServers, вы можете подобрать наиболее предпочтительные для вас пулы. Мы же воспользуемся еврпейскими пулами NTP.
Чтобы переписать адреса пулов, нужно открыть упомянутый файл конфигурации в текстовом редакторе. Для этого служит следующая команда:
sudo vim /etc/ntp.conf
Список пулов удобнее всего скопировать со страницы сайта и вставить в файл вместо тех, что были там раньше:
sudo vim /etc/ntp.conf
Затем придется сохранить файл и закрыть его. Однако, сами по себе изменения в силу не вступят — чтобы сервер синхронизировался с новыми пулами, следует перезапустить службу NTP, а затем проверить ее статус. Делают это при помощи двух команд:
sudo systemctl restart ntp
sudo systemctl status ntp
Если брандмауэр UWF активен, компьютеры-клиенты не смогут получать информацию с нашего сервера. Чтобы предоставить им доступ, нужно разрешить ему работу со службой NTP, выполнив одну из указанных команд:
sudo ufw allow ntp
sudo ufw allow 123 / udp
С новыми настройками брандмауэр заработает только после перезагрузки:
sudo ufw reload
Проверить, все ли сделано правильно, можно с помощью такой команды:
sudo ufw status
Если на вашем экране появилось то же самое, что вы видите на скриншоте, значит, установка и настройка NTP-сервера оказалась успешной. Теперь можно перейти к аналогичным действиям на машине-клиенте.
Установка и настройка NTP-клиента в Ubuntu 18.04
В этом разделе будет описан способ установки NTP-клиента на Ubuntu 18.04, который выполняет роль клиента и должен синхронизировать время Ubuntu с нашим сервером, настроенным ранее.
Шаг 1: Обновление репозиториев
Начало ничем не отличается — следует выполнить команду для обновления списка репозиториев и файлов.
sudo apt update -y
После завершения можно приступать к следующему шагу.
Шаг 2: Установка Ntpdate
Ntpdate — это утилита, которая позволяет синхронизировать время компьютера (локальное) с серверным (глобальным). При этом используются ресурсы NTP. Для инсталляции программы в систему предназначена команда
sudo apt install ntpdate
Чтобы машина-клиент воспринимала NTP-сервер по его названию, нужно отредактировать файл /etc/hosts, внеся в него IP-адрес NTP-сервера и соответствующее имя хоста. Работа с файлом осуществляется при помощи текстового редактора:
sudo vim /etc/hosts
IP-адрес и имя хоста должны выглядеть следующим образом:
Шаг 3: Проверка синхронизации времени
Такую проверку выполняют в ручном режиме с помощью команды
sudo ntpdate имя_хоста_ntp_сервера
Поскольку в предыдущем шаге мы присвоили хосту имя, то в нашем случае эта команда будет выглядеть немного иначе:
sudo ntpdate bionic
В ответ система отобразит временной сдвиг.
Для синхронизации времени между клиентом и сервером NTP понадобится отключить службу timesynchd на компьютере-клиенте. Для этого используют следующую команду:
sudo timedatectl set-ntp off
Шаг 4: Установка NTP-клиента
Следующий этап — установка NTP-клиента. Выполняют её командой:
sudo apt install ntp
Как и в случае с сервером, система запросит разрешения на продолжение установки. Чтобы согласиться, нужно нажать букву Y клавиатуре и ENTER.
Шаг 5: Настройка NTP-клиента
Теперь наша цель — использовать настроенный ранее NTP-сервер в качестве NTP-сервера для клиентской машины. Чтобы это стало возможным не обойтись без редактирования файла /etc/ntp.conf.
sudo vim /etc/ntp.conf
Когда файл откроется, нужно пролистать его в конец и сделать там небольшую приписку, указав bionic как имя хоста для NTP-сервера:
После этого обязательно сохраняем изменения и закрываем файл. Для активации новых настроек следует перезапустить службу NTP:
sudo systemctl restart ntp
Шаг 6: Проверка синхронизации времени
Получить информацию о том, как происходит синхронизация, и происходит ли она вообще, можно командой
ntpq -p
Вывод может быть таким: