====== LFNet (LFN) - тонкий клиент RDP и PXE сервер ====== Например есть локальная сеть с большим количеством менеджеров и бухгалтеров, работающих в 1c, MS office и браузере -Типовое решение : слабый файл-сервер с общей базой 1с + клиенты на windows *Клиенты для локального запуска этого софта должны быть мощными и соответственно дорогими *Клиентские компьютеры надо обслуживать (менять HDD, лечить вирусы и т.п.) *1с с доступом к базе по сети сильно тормозит -[[wpru>PXE]] : мощный [[wpru>Терминальный_сервер]] (TS) + [[wpru>Remote Desktop Protocol]] (RDP) слабые клиенты (TC) *TC - старые ПК (достаточно 1Гб [[wpru>RAM]] и любого CPU) без HDD или вообще [[https://forum.puppyrus.org/index.php?topic=19836.0|твбоксы]] *ТС - не требуют особого обслуживания. Достаточно иметь запасные *TS - чем больше TC тем выгоднее будет PXE решение. Обслуживание TS можно отдать на удаленный [[wpru>аутсорсинг]]. *Т.к. обращение к базе 1с локальное - 1с работает быстрее чем по сети *Наличие TS позволяет работать удаленно (из дома) Таким образом PXE будет дешевле, удобнее, проще и быстрее. Подойдет для : *учебного класса *общежития *многодетной семьи ===== Альтернативы LFN ===== *[[https://forum.puppyrus.org/index.php?topic=24174.msg187461#msg187461|WTware]] *Платный *Нельзя добавить нужный вам софт *Избыточно сложен для обозначенной вначале задачи *[[wpru>Thinstation]]. Нужно собирать самому. Образ получается побольше. Старое ядро *http://www.porteus.org/tutorials/48-pxe/134-an-introduction-to-pxe-booting.html *Размер больше 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 ====== [[wpru>Remote_Desktop_Protocol]] ===== Достоинства ===== *Клиенты есть под все устройства и операционные системы *Маленькая ресурсоемкость TC и малая загрузка канала связи *Из-за маленького трафика TS может находиться не в локальной сети (LAN), а в интернет ===== Недостатки ===== *Для настройки на TS Microsoft Windows Terminal Server потребуется серверная версия Windows и специалист [[https://it-advisor.ru/thin/122-win10term.html|или]] *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 : [[https://it-advisor.ru/thin/103-dnsmasq.html|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. *[[puppyrus/grub|Создание загрузочного носителя с LFN]] *Этот же TC может одновременно являться и клиентом (т.е. на нем может работать пользователь). В этом случае этот TC нельзя выключать и перезагружать. В этом случае загрузить пункт "сервер PXE + клиент" -Запустить LFN server на виртуалке на любом ПК в LAN -Если в сети есть ПК с Linux - запустить на нем dnsmasq с /etc/dnsmasq.conf из iso LFN, файл lfn*/initrd-lfn*s-*.xz *Распаковать lfn*/initrd-lfn*s-*.xz можно скриптом [[https://forum.puppyrus.org/index.php?topic=24161.0|lfn*/initrd.sh]] -Если в сети есть ПК с Windows (например TS) - [[https://it-advisor.ru/thin/127-tftpd64-dhcp-tftp.html|настроить]] [[https://pjo2.github.io/tftpd64/|Tftpd64]] -[[https://it-advisor.ru/thin/125-pxe-mikrotik.html|На некоторых роутерах есть PXE]] -На всех TC [[https://uchet-jkh.ru/i/pxe-boot-v-biose-cto-eto-i-kak-ispolzovat/|включить в BIOS PXE-boot]]. Достаточно 1Гб [[wpru>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 клиенты (твбокс) ===== *[[https://forum.puppyrus.org/index.php?topic=19836.msg148982#msg148982|ТВбокс в качестве клиента]] даст еще большую экономию *Т.к. для 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 *ip : [[https://wiki.debian.org/ru/NetworkConfiguration|/etc/network/interfaces]] *Меню 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-1600x900.png *Автостарт : /home/live/.config/openbox/autostart ===== Сборка дополнительного софта===== Делать можно в любом дистрибутиве с [[puppyrus/pr218/pfs4#chroot2pfs|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 ===== Обсуждение ===== https://forum.puppyrus.org/index.php?topic=24165.msg187370#msg187370