NTP или Network Time Protocol - это протокол, который используется для синхронизации всех системных часов в сети для использования одного и того же времени. Когда мы используем термин NTP, мы имеем в виду сам протокол, а также клиентские и серверные программы, работающие на компьютерах, объединенных в сеть. NTP входит в традиционный набор протоколов TCP/IP и может быть легко классифицирован как одна из самых старых его частей.
При первоначальной настройке часов требуется шесть обменов в течение 5-10 минут, прежде чем часы будут настроены. Как только часы в сети синхронизированы, клиент(ы) обновляют свои часы с сервером раз в 10 минут. Обычно это делается посредством одного обмена сообщениями (транзакция). Эти транзакции используют порт номер 123 вашей системы.
В этой статье мы опишем пошаговую процедуру, как:
- Установить и настроить NTP-сервер на машине Ubuntu.
- Настроить NTP-клиент для синхронизации времени с сервером.
Установка и настройка NTP-сервера на главном компьютере
Выполните следующие шаги, чтобы установить NTP-сервер на хост-компьютере Ubuntu:
Для установки и настройки NTP мы используем командную строку Ubuntu, Терминал. Вы можете открыть приложение Terminal либо через поиск в программе запуска приложений, либо с помощью сочетания клавиш Ctrl+Alt+T.
Шаг 1: Обновление индекса репозитория
Для того чтобы установить последнюю доступную версию программного обеспечения из интернет-репозиториев, индекс вашего локального репозитория должен соответствовать им. Выполните следующую команду от имени sudo, чтобы обновить индекс локального репозитория:
1 | sudo apt-get update |
Шаг 2: Установите NTP-сервер с помощью apt-get
Для установки демона NTP-сервера из репозиториев APT выполните следующую команду от имени sudo:
1 | sudo apt-get install ntp |
Обратите внимание, что только авторизованный пользователь может добавлять, удалять и настраивать программное обеспечение на Ubuntu.
Система может запросить у вас пароль для sudo, а также предложить вам опцию Y/n для продолжения установки. Введите Y и нажмите Enter; после этого NTP-сервер будет установлен в вашей системе. Однако этот процесс может занять некоторое время в зависимости от скорости вашего Интернета.
Шаг 3: Проверка установки (необязательно)
Вы можете проверить установку NTP, а также проверить номер версии, выполнив следующую команду в терминале:
1 | sntp --version |
Шаг 4: Переключитесь на пул NTP-сервера, ближайший к вашему местоположению
Когда вы устанавливаете NTP-сервер, он в основном настроен на получение правильного времени. Однако вы можете переключить пул серверов на ближайший к вашему местоположению. Для этого нужно внести некоторые изменения в файл /etc/ntp.conf.
Откройте этот файл в редакторе nano с правами sudo, выполнив следующую команду:
1 | sudo nano /etc/ntp.conf |
В этом файле вы сможете увидеть список пулов. Мы выделили этот список на изображении выше. Задача состоит в том, чтобы заменить этот список пулов на пул серверов времени, расположенных ближе всего к вашему местоположению. Проект pol.ntp.org предоставляет надежный NTP-сервис от большого кластера серверов времени. Чтобы выбрать список пулов в соответствии с вашим местоположением, посетите следующую страницу:
https://support.ntp.org/bin/view/Servers/NTPPoolServers
Мы искали список пулов для России:
Страница подскажет нам добавить следующие строки в файл ntp.conf:
1 2 3 4 | server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org |
файл выглядит после добавления в него вышеуказанных строк:
Выйдите из файла, нажав Ctrl+O, а затем Ctrl+X
Шаг 5: Перезапустите сервер NTP
Для того чтобы вышеуказанные изменения вступили в силу, необходимо перезапустить NTP-сервер. Для этого выполните следующую команду от имени sudo:
1 | sudo service ntp restart |
Шаг 6: Убедитесь, что сервер NTP запущен
Теперь проверьте состояние службы NTP с помощью следующей команды:
1 | sudo service ntp status |
Статус Active подтверждает, что ваш NTP сервер запущен и работает.
Шаг 7: Настройте брандмауэр так, чтобы клиент(ы) мог(ли) получить доступ к серверу NTP
Наконец, пришло время настроить UFW-брандмауэр вашей системы таким образом, чтобы входящие соединения могли получить доступ к NTP-серверу через UDP-порт номер 123.
Выполните следующую команду от имени sudo, чтобы открыть порт 123 для входящего трафика:
1 | sudo ufw allow from any to any port 123 proto udp |
Теперь ваша хост-машина Ubuntu настроена для использования в качестве NTP-сервера.
Настройка NTP-клиента для синхронизации времени с NTP-сервером
Теперь давайте настроим нашу клиентскую машину Ubuntu на синхронизацию времени с NTP-сервером.
Шаг 1: Установите ntpdate
Команда ntpdate позволит вам вручную проверить конфигурацию соединения с NTP-сервером. Откройте приложение Terminal на клиентской машине и введите следующую команду от имени sudo:
1 | sudo apt-get install ntpdate |
Шаг 2: Укажите IP и имя хоста NTP-сервера в файле hosts
Чтобы ваш NTP-сервер разрешался по имени хоста на вашей клиентской машине, вам необходимо настроить файл /etc/hosts.
Откройте файл hosts от имени sudo в редакторе nano, введя следующую команду:
1 | sudo nano /etc/hosts |
Теперь добавьте в этот файл IP вашего NTP-сервера и укажите имя хоста следующим образом:
в нашем примере
1 | 192.168.153.141 ntp-server |
Выйдите из файла, нажав Ctrl+X, а затем сохраните его, введя y.
При наличии DNS сервера в вашей сети, данную настройку можно произвести на нем.
Шаг 3: Проверьте, синхронизировано ли время клиентской машины с NTP-сервером
Следующая команда ntpdate позволит вам вручную проверить, синхронизировано ли время между клиентской и серверной системами:
1 | sudo ntpdate ntp-server |
По идее, результат должен показать смещение времени между двумя системами.
Шаг 4: Отключите службу systemd timesyncd на клиенте (если используется)
Поскольку мы хотим, чтобы наш клиент синхронизировал время с NTP-сервером, давайте отключим службу timesyncd на клиентской машине.
Для этого введите следующую команду:
1 | sudo timedatectl set-ntp off |
Шаг 5: Установите NTP на вашем клиенте
Выполните следующую команду от имени sudo, чтобы установить NTP на клиентской машине:
1 | sudo apt-get install ntp |
Шаг 6: Настройте файл /etc/ntp.conf для добавления вашего NTP сервера в качестве нового сервера времени
Теперь мы хотим, чтобы наша клиентская машина использовала наш собственный хост-сервер NTP в качестве сервера времени по умолчанию. Для этого нам нужно отредактировать файл /etc/ntp.conf на клиентской машине.
Выполните следующую команду от имени sudo, чтобы открыть файл в редакторе Nano:
1 | sudo nano /etc/ntp.conf |
Затем добавьте в файл следующую строку, где NTP-server-host - это имя хоста, которое вы указали для вашего NTP-сервера:
1 | server ntp-servert prefer iburst |
Вот как выглядит мой файл после указания сервера времени:
Нажмите Ctrl+x, чтобы выйти из файла, а затем введите y, чтобы сохранить изменения.
Шаг 7: Перезапустите NTP-сервер
Для того чтобы вышеуказанные изменения вступили в силу, необходимо перезапустить службу NTP. Для этого выполните следующую команду от имени sudo:
1 | sudo service ntp restart |
Шаг 8: Просмотр очереди синхронизации времени
Теперь клиентские и серверные машины настроены на синхронизацию времени. Вы можете просмотреть очередь синхронизации времени, выполнив следующую команду:
1 | ntpq -ps |
Вы должны увидеть ntp-server в качестве узла/источника синхронизации времени в очереди.
Итак, это все, что вам нужно было знать об установке и настройке NTP для синхронизации времени на ваших сетевых машинах Ubuntu. Процесс может показаться немного громоздким, но если вы тщательно выполните все вышеперечисленные шаги, один за другим, ваши машины будут синхронизированы в кратчайшие сроки.
Карим Буздар