Установка и настройка NTP на Ubuntu 18.04

Что вы получите
- Синхронизированные часы на серверах и клиентах внутри сети.
- Централизованный источник времени для логов, cron‑заданий и репликации баз данных.
Требования
- Сервер с Ubuntu 18.04.
- Нерутовый пользователь с правами sudo.
- Статический IP сервера в примере: 192.168.43.229 (замените на ваш).
Установка и настройка NTP‑сервера
По умолчанию пакет ntp доступен в репозитории Ubuntu 18.04. Установите его:
sudo apt-get install ntp -yОтредактируйте конфигурацию:
sudo nano /etc/ntp.confВ файле замените строки пула по умолчанию на пула вашего региона. Пример (Азия):
pool 0.asia.pool.ntp.org iburst
pool 1.asia.pool.ntp.org iburst
pool 2.asia.pool.ntp.org iburst
pool 3.asia.pool.ntp.org iburstСписок пулов и выбор ближайшего к вам — на странице проекта NTP Pool: http://support.ntp.org/bin/view/Servers/NTPPoolServers
Сохраните изменения и перезапустите службу:
sudo systemctl restart ntpПроверьте статус службы:
sudo systemctl status ntpПример вывода (сохраните для отладки):
? ntp.service - Network Time Service
Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-10-05 15:10:14 UTC; 42s ago
Docs: man:ntpd(8)
Main PID: 5587 (ntpd)
Tasks: 2 (limit: 1114)
CGroup: /system.slice/ntp.service
??5587 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 113:116
Oct 05 15:10:15 ubuntu1804 ntpd[5587]: Soliciting pool server 123.108.200.124
Oct 05 15:10:16 ubuntu1804 ntpd[5587]: Soliciting pool server 64:ff9b::7b6c:c87cОбъяснение основных параметров ntp.conf
- pool — пул публичных серверов для опроса.
- iburst — ускоренный старт при первой синхронизации.
- server — фиксированный сервер (используется чаще для клиентов).
Безопасность и доступ
Ограничьте доступ к вашему NTP‑серверу, если он не должен быть публичным. В /etc/ntp.conf добавьте блок restrict:
# Запретить всё по умолчанию
restrict default nomodify nopeer noquery
# Разрешить локальную сеть (пример 192.168.43.0/24)
restrict 192.168.43.0 mask 255.255.255.0 nomodify notrap
# Разрешить локальный хост
restrict 127.0.0.1Если нужна криптографическая аутентификация, рассмотрите использование ntpd с ключами или переход на ntpsec/chrony для улучшенной безопасности.
Настройка NTP‑клиента
- Убедитесь, что имя вашего NTP‑сервера резолвится. Добавьте запись в /etc/hosts:
sudo nano /etc/hostsДобавьте:
192.168.43.229 ntp-server-host- Установите ntpdate и ntp (на клиенте):
sudo apt-get install ntpdate ntp -y- Принудительно синхронизируйте время один раз для ускорения согласования:
sudo ntpdate ntp-server-hostОжидаемый вывод:
5 Oct 20:48:49 ntpdate[6067]: adjust time server ntp-server-host offset 0.049526 sec- Отключите systemd‑timesyncd, чтобы избежать конфликта:
sudo timedatectl set-ntp off- Отредактируйте /etc/ntp.conf, чтобы предпочесть ваш NTP‑сервер:
sudo nano /etc/ntp.confДобавьте строку:
server ntp-server-host prefer iburstПерезапустите службу:
sudo systemctl restart ntp- Проверьте статус синхронизации:
ntpq -pПример вывода и расшифровка колонок:
remote refid st t when poll reach delay offset jitter
==============================================================================
fwdns2.vbctv.in 202.73.57.107 4 u 3 64 1 127.437 -142.63 0.000
alphyn.canonica 131.188.3.220 2 u 2 64 1 276.931 -106.99 0.000
ntp-server-host 106.10.186.201 3 u 1 64 1 0.588 161.386 0.000- remote — удалённый сервер.
- refid — идентификатор опорного источника.
- st — stratum (уровень). Чем меньше, тем ближе к эталону.
- when/poll/reach — времена опроса и доступность.
- delay/offset/jitter — задержка, смещение и нестабильность.
Тестирование и отладка
Проверки, если синхронизация не происходит:
- Проверьте, отвечает ли NTP‑сервер: sudo systemctl status ntp и ntpq -p на сервере.
- Проверьте сетевые правила: UDP порт 123 должен быть открыт (используйте sudo ufw allow from 192.168.43.0/24 to any port 123 proto udp).
- Проверьте, что systemd-timesyncd отключён на клиенте.
- Проверьте /var/log/syslog на предмет ошибок ntpd.
Примеры команд для диагностики:
sudo ufw status
sudo tcpdump -n -i any port 123
journalctl -u ntp -b --no-pagerСоветы и альтернативы
- Если у вас короткие отклонения времени и высокие требования к безопасности, рассмотрите chrony вместо ntp: он лучше работает при нестабильных сетях и после возобновления из сна.
- Для высокобезопасных окружений используйте ntpsec или аппаратные часы (GPS/GNSS) как stratum 0.
- Для контейнеров и виртуальных машин сверяйтесь с хостом — иногда гипервизор управляет временем.
Роль‑ориентированные контрольные списки
Для системного администратора:
- Установить ntp, настроить пул/сервер, перезапустить службу.
- Настроить restrict и правила брандмауэра.
- Настроить мониторинг доступности ntp (simple nagios check или prometheus exporter).
Для инженера сети:
- Проверить доступность UDP 123 между клиентами и сервером.
- Проверить NAT/маршрутизацию, если сервер публичный.
Для DevOps:
- Автоматизировать установку через конфигурационные инструменты (Ansible/Puppet/Chef).
- Добавить тест при развёртывании: ntpq -p и проверка reach/offset.
План отката и реагирования
- Сохраните резервную копию конфигурации:
sudo cp /etc/ntp.conf /etc/ntp.conf.bak-$(date +%F)- Если проблема после изменения конфигурации — восстановите бэкап и перезапустите службу:
sudo mv /etc/ntp.conf.bak-YYYY-MM-DD /etc/ntp.conf
sudo systemctl restart ntp- В крайнем случае, временно отключите ntp и используйте timedatectl set-ntp on/off или синхронизируйте вручную ntpdate.
Фактбокс
- Протокол: NTP (обычно версия 4).
- Порт: UDP 123.
- Stratum: 0 (эталон) — 15 (максимум). Серверы обычно имеют stratum 1–3.
- Ключевые файлы: /etc/ntp.conf, /var/lib/ntp, /etc/hosts.
Критерии приёмки
- Сервер активен: sudo systemctl status ntp -> active (running).
- Клиенты показывают ваш сервер в ntpq -p и имеют адекватный offset (<100 ms для локальной сети).
- UDP 123 доступен для сети клиентов.
Когда NTP не подходит
- В сетях с частыми переходами между сетями и прерывистым доступом лучше chrony.
- Для криптографически защищённой среды рассмотрите дополнительные меры: ntpsec, GNSS‑приёмник.
1‑строчный глоссарий
- NTP — протокол синхронизации времени.
- Stratum — уровень удалённости от эталонного источника времени.
- iburst — опция для быстрого начального опроса сервера.
Короткое объявление (100–200 слов)
Настроен локальный NTP‑сервер на Ubuntu 18.04 для централизованной синхронизации времени в сети. В руководстве описаны шаги по установке пакета ntp, выбору пулов по региону, настройке доступа (restrict) и рекомендациям по безопасности. Для клиентов показано, как отключить systemd‑timesyncd, добавить резолвинг через /etc/hosts, выполнить начальную синхронизацию через ntpdate и назначить ваш сервер как prefer в /etc/ntp.conf. Приведены проверки (ntpq -p), команды для отладки и план отката. Рекомендуется настроить правила UFW для UDP/123 и рассмотреть chrony или ntpsec для специфичных требований безопасности.
Ссылки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента