Главная → Гайды → Raspberry Pi

NTP-сервер на Raspberry Pi для локальной сети

⏰ Точное время сейчас
--:--:--
- UTC+5 • Тюмень
NTP-синхронизация • < 100 мс

Зачем поднимать свой NTP-сервер? Причины: защита от внешних сбоев, снижение latency в локальной сети (1-2 мс вместо 20-50 мс), использование GPS как источника (стратум 1, точность 1-10 мкс). Raspberry Pi 4/5 с chrony отлично справляется, обслуживает до 1000 клиентов без нагрузки.

Стоимость: Raspberry Pi 5 (8GB), 8 000 ₽, модуль GPS NEO-6M, 500 ₽, microSD 32GB, 500 ₽, блок питания, 800 ₽. Итого: ~10 000 ₽. Сравните с коммерческим NTP-сервером stratum 1 (50 000+ ₽).

Что понадобится

Шаг 1. Установите Raspberry Pi OS

Скачайте Raspberry Pi Imager с официального сайта. Запишите образ «Raspberry Pi OS Lite» (без графического интерфейса, 1.2 GB) на microSD.

Шаг 2. Настройте SSH

После записи образа откройте /boot/ssh.txt (если его нет, создайте пустой файл) или используйте Imager → Advanced options для включения SSH.

Шаг 3. Подключитесь по SSH

ssh pi@raspberrypi.local

Пароль по умолчанию: raspberry.

Шаг 4. Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 5. Установите chrony

sudo apt install chrony gpsd gpsd-clients pps-tools

Шаг 6. Подключите GPS (если есть)

Подключите GPS-модуль к GPIO:

Включите UART: sudo raspi-config → Interface Options → Serial Port → Login shell NO, Hardware YES. Перезагрузитесь.

Шаг 7. Настройте gpsd

Отредактируйте /etc/default/gpsd:

START_DAEMON="true"
USBAUTO="true"
DEVICES="/dev/ttyAMA0"
GPSD_OPTIONS="-n -G"

Шаг 8. Настройте chrony с GPS

Отредактируйте /etc/chrony/chrony.conf:

pool ru.pool.ntp.org iburst maxsources 4
makestep 1.0 3
rtcsync
logdir /var/log/chrony
log measurements statistics tracking

# GPS как источник стратум 1
refclock SHM 0 offset 0.0 delay 0.2 refid GPS precision 1e-3
refclock PPS /dev/pps0 refid PPS precision 1e-9

allow 192.168.0.0/16
local stratum 1

Шаг 9. Запустите chrony

sudo systemctl enable --now gpsd chrony
sudo systemctl status chrony

Шаг 10. Проверьте точность

chronyc tracking
chronyc sources -v
chronyc sourcestats -v

В выводе tracking найдите Reference ID, должен быть GPS (или PPS). Stratum, 1. Offset, в микросекундах.

Шаг 11. Настройте клиентов

На Windows 11:

w32tm /config /manualpeerlist:"192.168.1.100" /syncfromflags:manual
net stop w32time && net start w32time
w32tm /resync

На macOS:

sudo sntp -sS 192.168.1.100

На Linux:

sudo apt install chrony
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
sudo nano /etc/chrony/chrony.conf
# Добавьте: server 192.168.1.100 iburst prefer
sudo systemctl restart chrony

Точность и стабильность

Stratum 1 с GPS: 1-10 микросекунд, отклонение меньше 1 ppm.
Stratum 2 с пулом: 1-10 миллисекунд, отклонение меньше 100 ppm.
Без NTP: 1-10 секунд в сутки, отклонение 10-100 ppm.

Для домашнего использования стратум 1, overkill. Достаточно стратум 2 (Raspberry Pi + ru.pool.ntp.org + chrony).

Связанные гайды

Павел — тюменский блогер о времени
Павел — тюменский блогер
Точное время, жизнь Тюмени, полезные лайфхаки

Уже 7 900+ человек следят за моими обновлениями

Присоединяйся — бесплатно. Точное время, интересные факты о Тюмени и никакого спама.

Подписаться ВКонтакте Читать на Дзен

🔔 Новые посты — сразу в ленте. Отписаться можно в один клик.