Тематические термины: NTP, Linux, Ubuntu.
Следить за актуальностью времени на всех узлах локальной сети удобнее с помощью сервера синхронизации времени NTP. В инструкции рассказано об установке и настройке такого сервера на Linux Ubuntu Server 16.04. Данное руководство можно использовать для настройки ntpd на любом другом Linux (например, Debian или CentOS).
Устанавливаем ntp сервер следующей командой:
apt-get install ntp
Разрешаем автозапуск и стартуем сервис:
systemctl enable ntp || update-rc.d ntp defaults
systemctl start ntp || service ntp start
Открываем файл с настройками:
vi /etc/ntp.conf
Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:
pool ru.pool.ntp.org iburstserver ntp2.vniiftri.ru iburst preferpool 0.ubuntu.pool.ntp.org iburstpool 1.ubuntu.pool.ntp.org iburstserver 127.127.1.0
* iburst — отправлять несколько пакетов (повышает точность); ru.pool.ntp.org / 0.ubuntu.pool.ntp.org / 1.ubuntu.pool.ntp.org — адреса серверов, с которыми наш сервер будет сверять время; server — указывает на выполнение синхронизации с сервером, а не пулом серверов; prefer — указывает на предпочитаемый сервер. server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.
Настраиваем безопасность:
restrict default kod notrap nomodify nopeer noqueryrestrict 192.168.0.0 mask 255.255.255.0 nomodify notraprestrict 127.0.0.1restrict ::1
* где:
Настройки по умолчанию могут быть разные для IPv4 и IPv6:
restrict -4 default kod notrap nomodify nopeer noqueryrestrict -6 default kod notrap nomodify nopeer noquery
Перезапускаем сервис:
systemctl restart ntp || service restart ntp
Если используется брандмауэр, добавляем правило:
iptables -I INPUT 1 -p udp –dport 123 -j ACCEPT
или с помощью ufw:
ufw allow in on enp2s0 to any port 123 proto udp
* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.
Настройка файла хранения логов:
logfile /var/log/ntp.log
Проверить состояние получения эталонного времени можно командой:
Мы должны увидеть, примерно, следующее:
remote refid st t when poll reach delay offset jitter============================================================================== ru.pool.ntp.org .POOL. 16 p – 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p – 64 0 0.000 0.000 0.000*91.189.94.4 17.253.34.253 2 u 58 64 377 55.802 3.790 0.412-91.189.91.157 132.246.11.231 2 u 56 64 377 113.456 -1.746 0.334+91.189.89.198 192.53.103.108 2 u 1 64 377 54.595 4.229 0.608+91.189.89.199 17.253.34.253 2 u 61 64 377 54.061 2.637 0.557
Проверить отдачу времени сервером можно введя команду на другом Linux:
ntpdate 192.168.0.15
Правильный ответ имеет следующий вид:
ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec
* время было рассинхронизировано на 0.017657 секунд.
Отобразить текущее время можно командой:
Если после синхронизации время некорректно, настраиваем правильный часовой пояс:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* московское время (GMT+3).
Для клиентов можно выбрать 2 стратегии настройки — с помощью ntp или утилиты ntpdate.
Устанавливаем ntp:
Ubuntu / Debian:
CentOS / Red Hat:
yum install ntp
В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:
server 192.168.0.15
Остальные pool и server удаляем или комментируем.
Перезапускаем NTP:
Утилита командной строки выполняет разовую синхронизацию. Чтобы автоматизировать процесс, добавляем задание в cron:
crontab -e
0 0 * * * /usr/sbin/ntpdate 192.168.0.15
* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.
В командной строке выполняем:
w32tm /config /manualpeerlist:”192.168.0.15,0×8″ /syncfromflags:manual /update
Как правило, данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.
Причина: NTP сокет в системе уже занят, как правило, ntpd.
Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.
Возникает при попытке выполнить команду ntpq -p.
Причина: нет разрешения на обращение к серверу.
Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.
Ошибка появляется при попытке синхронизировать время с другим сервером синхронизации.
Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.
Решение:
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies