Содержание
LFNet (LFN) - тонкий клиент RDP и PXE сервер
Например есть локальная сеть с большим количеством менеджеров и бухгалтеров, работающих в 1c, MS office и браузере
- Типовое решение : слабый файл-сервер с общей базой 1с + клиенты на windows
- Клиенты для локального запуска этого софта должны быть мощными и соответственно дорогими
- Клиентские компьютеры надо обслуживать (менять HDD, лечить вирусы и т.п.)
- 1с с доступом к базе по сети сильно тормозит
-
- ТС - не требуют особого обслуживания. Достаточно иметь запасные
- TS - чем больше TC тем выгоднее будет PXE решение. Обслуживание TS можно отдать на удаленный аутсорсинг.
- Т.к. обращение к базе 1с локальное - 1с работает быстрее чем по сети
- Наличие TS позволяет работать удаленно (из дома)
Таким образом PXE будет дешевле, удобнее, проще и быстрее. Подойдет для :
- учебного класса
- общежития
- многодетной семьи
Альтернативы LFN
-
- Платный
- Нельзя добавить нужный вам софт
- Избыточно сложен для обозначенной вначале задачи
- Thinstation. Нужно собирать самому. Образ получается побольше. Старое ядро
-
- Размер больше LFN.
- В porteus v.5 pxe сервер не работает
- Kiosk в России не работает
- Загрузка в 2 этапа : сначала ядро и initrd , потом модули по nfs
- http://openthinclient.org/ Требует регистрацию
- https://www.iventoy.com - только сервер. Загружает только iso. >20 клиентов требует покупку лицензии
- https://wiki.libreelec.tv/configuration/network-boot Только мультимедиа контент
- https://tonk.ru/ - Программное обеспечение продаётся только в составе оборудования. Оборудование от 14тр. Для LFN подойдет любой пк с 1гб RAM
Особенности RDP
Достоинства
- Клиенты есть под все устройства и операционные системы
- Маленькая ресурсоемкость TC и малая загрузка канала связи
- Из-за маленького трафика TS может находиться не в локальной сети (LAN), а в интернет
Недостатки
- Для настройки на TS Microsoft Windows Terminal Server потребуется серверная версия Windows и специалист или
- RDP не годится для просмотра видео, игр. Динамичное изображение на весь экран будет покадровым
- Некоторый софт (например AutoCAD) проблематично установить на TS
Компоненты LFN01
LFN выпускается в виде гибридного iso (EFI+MBR) выбором загрузки клиента или сервера PXE.
- Cобран на базе Debian 10 x86_64.
- Состоит только из ядра и одного или нескольких initrd. Т.е. всего 1 PXE этап загрузки. Все максимально упрощено
- Размер iso около 100Мб (72M initrd-lfn01-2311.zst ; 540K initrd-lfn01s-2311.xz ; 4,8M vmlinuz-6.0.0-pf2-pts+_64)
- Ядро 6.0.0. Перекомпилено с удалением лишних компонентов (wifi и пр.)
- Сервер PXE : dnsmasq (DHCP+TFTP)
- TC : openbox + tint2 + xfreerdp 2.11.2 (перекомпилен с урезанием ненужных зависимостей. Т.е. без gtk, qt, что дало возможность уменьшить размер
TS не входит в состав LFN.
Развертывание LFN
- Достаточно иметь самый простой свич 100BASE-T или даже 10
- Для выхода в интернет потребуется роутер или компьютер (ПК) с двумя сетевыми интерфейсами, выполняющий его роль.
- Таким ПК может служить TS или PXE сервер LFN (пока этот функционал не реализован)
- На роутере необходимо сконфигурить LAN : 192.168.0.1/255.255.255.0 и NAT
- Необходимо выключить все DHCP в этой подсети. Например на роутере
- Запуск PXE сервера 192.168.0.2. Варианты:
- На одном из TC загрузить с флэшки (CD или любого носителя) LFN server.
- Этот же TC может одновременно являться и клиентом (т.е. на нем может работать пользователь). В этом случае этот TC нельзя выключать и перезагружать. В этом случае загрузить пункт «сервер PXE + клиент»
- Запустить LFN server на виртуалке на любом ПК в LAN
- Если в сети есть ПК с Linux - запустить на нем dnsmasq с /etc/dnsmasq.conf из iso LFN, файл lfn*/initrd-lfn*s-*.xz
- Распаковать lfn*/initrd-lfn*s-*.xz можно скриптом lfn*/initrd.sh
- На всех TC включить в BIOS PXE-boot. Достаточно 1Гб RAM и любого CPU, без HDD
- Звук пробрасывается с TS на TC.
- Подключенные на TC флэшки и т.п. - пробрасываются на TS
- Возможно использовать на TC несколько мониторов
- TS устанавливается самостоятельно. В LFN ему присвоен 192.168.0.3:3389
- TS может находиться в этой LAN или в интернет (виртуалка на хостинге или в другом офисе). В этом случае нужно на роутере сделать портмэппинг 192.168.0.3:3389 на адрес в интернет
- Принтеры должны быть подключены к TS
Свой конфиг dnsmasq для каждого MAC адреса
Для закрепления ip или запуска другой системы (с другими параметрами) нужно создать отдельный конфигурационный файл для каждого MAC-адреса в dnsmasq:
- Убедитесь, что в основном файле конфигурации dnsmasq (/etc/dnsmasq.conf) есть строка conf-dir=/etc/dnsmasq.d, которая указывает dnsmasq использовать все файлы конфигурации в указанном каталоге.
- Создайте каталог, в котором будут храниться ваши конфигурационные файлы. Например, /etc/dnsmasq.d/mac_configs/.
- В этом каталоге создайте файлы конфигурации для каждого MAC-адреса. Имена файлов должны быть в формате 01:23:45:67:89:ab, где 01:23:45:67:89:ab - это MAC-адрес устройства.
- В каждом файле конфигурации, укажите настройки, которые вы хотите применить для соответствующего MAC-адреса. Например, вы можете указать IP-адрес или имя хоста, которое должно быть связано с этим MAC-адресом.
Пример файла конфигурации для MAC-адреса 01:23:45:67:89:ab:
# /etc/dnsmasq.d/mac_configs/01:23:45:67:89:ab dhcp-host=01:23:45:67:89:ab,192.168.1.100 #привязка ip tftp-root=/opt/dnsmasq/01:23:45:67:89:ab #другая система dhcp-option-force=209,01:23:45:67:89:ab/syslinux.cfg #другие параметры загрузки
Если есть клиенты по wifi
Т.к. в LFN вырезано все для wifi - оптимально загружать с флэшки какой-либо линукс с поддержкой wifi и RDP клиентом (например remmina)
Если есть ARM клиенты (твбокс)
- ТВбокс в качестве клиента даст еще большую экономию
- Т.к. для ARM с PXE иногда сложнее - проще загружать клиента с его внутреннего носителя
Тест LFN в Virtualbox
- Создать 2 виртуалки с 1 сетевой картой типа «Внутренняя сеть»
- На первой загрузить LFN сервер с iso.
- На второй нажать F12 + l
Горячие клавиши LFN
- win+t : терминал. Есть su, mc, htop и прочие основные консольные утилиты
- ctrl+shift+enter : переход из полноэкранного удаленного рабочего стола (по умолчанию) в оконный режим
Внесение изменений в LFN
Может потребоваться для изменения ip , внешнего вида и т.п. Все изменения делаются под любым Linux на Linux файловой системе (на fat, ntfs нельзя)
- Пересборка initrd делается скриптом initrd.sh , который лежит рядом с ними
- Пересборка iso :
- Разборка в директорию iso : sudo mkdir tmp iso && sudo mount lfn*.iso tmp && sudo cp -R tmp iso
- Сборка скриптом iso-make-hybrid.sh в корне iso
Сервер initrd-lfn*s.xz
- Монтирование iso : /etc/rc.local
- Меню PXE : opt/lfts/syslinux.cfg
Клиент initrd-lfn*.zst
- TS ip : /usr/local/bin/tl-rdp-cli
- Кнопки запуска TS : /etc/xdg/tint2/tint2rc
- Обои : /usr/local/share/backgrounds/tg-1600×900.png
- Автостарт : /home/live/.config/openbox/autostart
Сборка дополнительного софта
Делать можно в любом дистрибутиве с pfs-util (все LF*)
- Распаковать : lfn01/initrd.sh initrd-lfn01-2311.zst
- Скопировать в директорию lfn01 из репозитория LFD10 apt-d10-sf04.pfs
- sudo chroot2pfs -o soft –mlist initrd-lfn01-2311,apt-d10-sf04.pfs -command bash
- apt update && apt install нужный_вам_софт
- Полученную директорию soft копируем в lfn01/initrd-lfn01-2311
- Запаковать: lfn01/initrd.sh initrd-lfn01-2311 zst