LTSP превращает обычный Linux-сервер в сервер тонких клиентов: машины без дисков загружаются по сети, получают общий образ системы и работают как обычные рабочие места. В 2026 году актуальна ветка LTSP 23.02, она есть в universe Ubuntu 24.04 и в Debian 12. Такой сценарий удобен для класса, склада или небольшого офиса, где десяток компьютеров нужно обслуживать централизованно.
Как это работает
Клиент запускается по PXE. DHCP сообщает ему адрес TFTP-сервера и имя загрузчика, тот по TFTP получает ядро и initrd, а корневую файловую систему монтирует из squashfs-образа, экспортированного с сервера. Приложения выполняются на самом клиенте, поэтому сервер не обязан быть мощным: он отдаёт файлы и обслуживает вход пользователей.
- Образ системы общий, поэтому обновление софта делается один раз на сервере.
- Данные пользователей хранятся на сервере, а не на локальных дисках.
- Клиенту нужны сеть с поддержкой PXE, минимум 2 ГБ памяти и видеовыход.
- Сервер и клиенты должны находиться в одном сегменте L2 либо иметь корректно настроенный DHCP relay.
Домашние каталоги по умолчанию подключаются через SSHFS. Экспорт /home по NFS возможен, но в документации LTSP он назван небезопасным, поэтому включайте его только осознанно и в доверенной сети.
Подготовка сервера
Ставьте Ubuntu 24.04 LTS или Debian 12 с рабочим столом: LTSP собирает образ из корня сервера, и наличие графической среды обязательно. MATE тестируется авторами лучше остальных. Linux Mint 22 — производная Ubuntu, но перед развёртыванием проверьте сценарий на тестовой машине.
sudo apt update
sudo apt install --install-recommends ltsp ltsp-binaries dnsmasq \
nfs-kernel-server openssh-server squashfs-tools ethtool net-tools
sudo ltsp info
ip -br addr
DNS-служба dnsmasq по умолчанию выключена, поэтому системный resolver можно не трогать. Дайте серверу статический адрес на внутреннем интерфейсе. Внешний интерфейс оставьте для выхода в сеть, внутренний — для клиентов.
Сеть и адресация
Для внутренней сети выберите отдельную подсеть, например 192.168.50.0/24, и не смешивайте её с офисной. Если DHCP уже раздаёт роутер, оставьте адреса ему, а LTSP переведите в режим proxy DHCP: сервер будет сообщать только имя загрузчика. При двух сетевых картах LTSP умеет включать маршрутизацию для клиентов, но NAT без необходимости лучше не добавлять.
- Сервер: статический адрес на внутреннем интерфейсе.
- Клиенты: адреса из той же подсети, шлюз — сервер или роутер.
- Коммутатор: без изоляции клиентских портов, PXE не блокируется.
- Межсетевой экран: разрешите UDP 67, 69 и TCP 2049 только для внутренней сети.
Убедитесь, что во внутреннем сегменте нет второго DHCP-сервера: два ответа на запрос дают случайную загрузку и плавающие ошибки, которые сложно поймать.
Сборка образа и загрузка
Образ собирается из корня сервера и попадает в /srv/ltsp/images. Команда занимает несколько минут и требует свободного места, сравнимого с размером системы.
sudo ltsp image /
sudo ltsp initrd
sudo ltsp dnsmasq
sudo ltsp nfs
sudo ltsp ipxe
Каждая команда делает свою часть: image создаёт squashfs, initrd собирает дополнительный ltsp.img с клиентским кодом и настройками, dnsmasq настраивает DHCP и TFTP, nfs готовит экспорт, ipxe формирует меню загрузки. Проверить результат можно через ltsp info и список файлов в /srv/tftp.
Если в сети уже есть DHCP-сервер, используйте режим proxy DHCP: LTSP будет выдавать только имя загрузчика, а адреса останутся за роутером. Это самый простой вариант с одной сетевой картой, но он требует, чтобы существующий DHCP не мешал загрузке.
Настройка клиентов
Файл /etc/ltsp/ltsp.conf управляет и сервером, и клиентами. После любого изменения нужно пересобрать ltsp.img командой ltsp initrd, иначе клиенты не увидят правки.
sudo install -m 0660 -g sudo \
/usr/share/ltsp/common/ltsp/ltsp.conf /etc/ltsp/ltsp.conf
sudo nano /etc/ltsp/ltsp.conf
Минимальный набор параметров выглядит так:
[server]
DNS_SERVER="192.168.50.1"
SERVER="192.168.50.10"
[3c:07:71:a2:02:e3]
HOSTNAME=pc01
[clients]
LOCAL_SWAP=1
Секция [server] задаёт общие параметры, секция с MAC-адресом — переопределения для конкретной машины, [clients] действует на всех. Так можно выдать постоянные имена, включить локальный swap и запретить лишние службы. Список пользователей и групп тоже попадает в ltsp.img, поэтому после добавления учётной записи повторите ltsp initrd.
Обновление и обслуживание
После установки обновлений на сервере пересоберите образ и перезагрузите клиенты. Клиентские машины при этом не требуют обслуживания вообще.
sudo apt update && sudo apt upgrade
sudo ltsp image /
sudo ltsp initrd
sudo reboot
Держите сервер в чистоте: всё, что установлено в его корень, попадёт в образ. Не складывайте в корень лишние файлы и не ставьте службы, которые не нужны клиентам. Для обновления образа можно использовать отдельный chroot, но для небольшой инсталляции достаточно аккуратного корня.
Диагностика
- Клиент не получает адрес: проверьте journalctl -u dnsmasq и tcpdump на внутреннем интерфейсе по портам 67 и 68.
- Нет загрузчика: убедитесь, что порт 69 слушает dnsmasq, а в /srv/tftp лежат файлы iPXE.
- Ядро загрузилось, но корень не смонтирован: смотрите exportfs -v и доступность NFS на порту 2049.
- Медленный вход: проверьте DNS и доступность сервера по SSHFS, а также время отклика каталога пользователя.
- После правки конфигурации ничего не изменилось: забыли выполнить ltsp initrd.
sudo tcpdump -ni enp3s0 port 67 or port 68 or port 69
sudo exportfs -v
ss -lntup | grep -E ':69|:2049'
sudo journalctl -u dnsmasq -n 100 --no-pager
Ограничения
Тонкие клиенты не любят тяжёлое видео и 3D: всё выполняется на клиентской машине, а образ и данные идут по сети. Гигабитный коммутатор обязателен, а для десяти и более одновременных сессий стоит смотреть в сторону 10GbE или локальных приложений. Клиент без локального диска не имеет swap, поэтому при нехватке памяти процесс может быть убит. Если в машинах остались диски, LOCAL_SWAP=1 разрешит использовать локальный раздел подкачки.
Отдельно продумайте резервное копирование: образ восстанавливается из конфигурации сервера, а вот домашние каталоги пользователей нужно копировать отдельно. И проверьте, что клиентские машины поддерживают загрузку с сети и что в BIOS не включён режим, блокирующий PXE.
Итог
LTSP 23 — зрелый способ централизовать парк недорогих компьютеров: один сервер, общий образ и предсказуемое обновление. Начните с одной тестовой машины, убедитесь, что PXE, DHCP, TFTP и NFS работают вместе, и только потом расширяйте парк. Не забывайте про ltsp initrd после правок, следите за свободным местом и не превращайте сервер в свалку. Тогда тонкие клиенты будут тихо работать годами, а вы — обновлять систему в одном месте.