Torserv linux как настроить

Обновлено: 05.07.2024

Но если у вас телевизор на андроиде или тв приставка с минимальным объёмом оперативной памяти, рассмотрим вариант установки Сервера на то устройство где оперативной памяти хватит для работы сервера.

Рассмотрим мобильный телефон на андроиде как Внешнее устройство.

Проделываем всё тоже самое как описано тут на мобильном телефоне или планшете, устройство должно быть подключено по 5ггц wi-fi даже если у вас тариф 100Мб, конечно есть роутеры и устройства работающие на 2.4ггц в режиме N и выдают по wi-fi до-от 80Мб но лучше 5ггц

И так, установили всё на телефоне (планшете) идём дальше, на устройстве на котором будете смотреть торренты (тв приставка, телевизор) устанавливаем только Клиент 1.1.86 нажимаем на логотип Торрсерве и пишем ip адрес вашего телефона узнать ip адрес телефона можно зайдя на телефоне в Клиент и нажать так же Логотип Torrserve и в самом вверху будет ip адрес вашего телефона в вашей локальной сети, после того как написали ip адрес телефона произойдёт соединение Клиента с Сервером. Всё.

Логотип Torrserve Ваш ip, поиск запущенного сервера

Телефон включён, сервер работает, а вы смотрите торренты на телевизоре или тв приставке.

Если сервер не отвечает или во время просмотра вылетает, на телефоне в Клиенте нажимаем Выход и заново запускаем Клиент, таким образом мы перезапустим Сервер.

Установка Сервера на компьютер (Linux, Windows, MacOS) скачиваем с github проекта TorrServer-windows-amd64.exe 1.1.77 запускаем его и видим Start web server далее на Андроид устройстве в Клиенте проделываем тоже самое что и с Сервером на телефоне, пишем ip адрес компьютера (компьютеры у всех разные и в зависимости какая у вас в нём начинка на ту отдачу от компьютера и рассчитывайте)


Если Сервер на компьютере не запускается и спамит что-то типа error accepting connection нужно дать разрешение на работу в сети (или выключить Антивирус или Брандмауэр.

Запускаем терминал или подключаемся по ssh.

Для х64 системы:

  1. Создаём каталог OPT и открывает его (если каталог opt уже есть не чего страшного, просто выдаст Файл существует)

sudo mkdir /opt/ ; cd /opt/

2. Создаём в каталоге OPT папку torrserver

sudo mkdir torrserver

3. Заходим в папку torrserver

cd torrserver/

4. Копируем ссылку отсюда и вставляем её после sudo wget

5. Делаем исполняемой

sudo chmod +x TorrServer-linux-amd64

6. sudo systemctl edit --full --force torrserver.service

ExecStart = /opt/torrserver/TorrServer-linux-amd64 -d /opt/torrserver/ -p 8090

7. sudo systemctl daemon-reload

8. Запустите сервис systemd и добавьте его в автозагрузку:

sudo systemctl start torrserver

sudo systemctl enable torrserver


1. останавливаем сервис

sudo systemctl stop torrserver.service

2. убиваем сервис

pkill -f torrserver

3. проверяем что он выгружен из памяти

ps -ef | grep torrserver

4. удаляем старую версию

cd /opt/torrserver

sudo rm TorrServer-linux-amd64

5. скачиваем новую версию

6. делаем исполняемой

sudo chmod +x TorrServer-linux-amd64

7. запускаем службу

sudo systemctl start torrserver.service

1. качаете файл отсюда файл должен загрузится в папку Downloads

2. открываете терминал и пишите там:

cd Downloads/

chmod +x TorrServer-darwin-amd64.dms

./TorrServer-darwin-amd64.dms

3. Получаете запущенный сервер:

Start web server, version: 1.0.37

5. добавляете ссылку на нужный торрент-файл в браузере или можно с мобильного устройства в клиенте прописать ip вашего ноута и добавлять торренты.

6. profit (взято отсюда проверить не на чем)


Все действия от root или SU

Подключаемся по ssh к нашему nas (роутеру) с помощью PuTTY по ip устройства Login: root Password: от входа на устройство

Или через терминал ssh -p 22 root@192.168.88.1 (тут надо вводить ваш ip)

У меня на NAS Entware просто включается в APP Central (Asustor)

0. Устанавливаете Entware на ваше устройство:

1. opkg update 2. opkg upgrade

1. Скачиваете, переименовываете и помещаете бинарный файл TorrServer (для вашей архитектуры):

2. Создаёте папку /opt/etc/torrserver:

mkdir /opt/etc/torrserver

3. Создаёте скрипт автозапуска:

nano /opt/etc/init.d/S55torrserver

Если nano не установлен, устанавливаем opkg install nano

ARGS="-d /opt/etc/torrserver -p 8090"

4. Даёте права на исполнение:

chmod +x /opt/etc/init.d/S55torrserver

chmod +x /opt/sbin/torrserver

5. Запускаете TorrServеr через скрипт:

/opt/etc/init.d/S55torrserver start

Так же командами:

/opt/etc/init.d/S55torrserver stop (останавливает сервер)

/opt/etc/init.d/S55torrserver restart (перезапускает сервер)

/opt/etc/init.d/S55torrserver check (проверка работы сервера dead - сервер не работает, alive - сервер работает)


Окно PuTTY


Команды запуска, остановки, проверки.

Спасибо pashinsky за инструкцию по Entware пост тут

Допустим у нас есть старый тв бокс или другая железка с 1-м гигом или 2-мя гигабайтами оперативной памяти то скорей всего можно установить на неё CoreELEC, скачать можно от сюда

Включаем ssh если выключен, задаём свой пароль (по умолчанию Логин -root Пароль - coreelec), далее нам понадобится две программы для подключение по ssh. 1. PuTTY 2. WinSCP и крайняя версия СЕРВЕРА качать linux-arm64

Запускаем WinSCP предварительно включив показ скрытых файлов в WinScp: Параметры - Настройки - Панели - Показывать скрытые файлы


Жмём Новое соединение и вводим ip адрес устройства на котором установлен CoreELEC


после нажатия Войти вводим root и свой пароль если его меняли

В последнее время выходят статьи, как смотреть торренты на телевизоре. Читаю и понимаю что тема не раскрыта полностью, люди предлагают сделать максимум усилий, для необходимого минимума.

Что нужно при домашнем просмотре фильмов и как это происходит у меня. Включаю телевизор, нажимаю кнопку на пульте, говорю название фильма, выбираю качество торрента, смотрю. Или смотрю новинки на главном экране, выбираю торрент, смотрю.

Для этого нужна приставка на андроиде АТВ(на аосп тоже подойдет). Туда ставим клиент TorrServe, в нем ставим сервер TorrServer. Устанавливаем программу, которая будет давать описание фильмов и торрентов NUM и все.

Хороший интернет и роутер очень не помешают для больших фильмов от 50 гигов.

Главный экран АТВ

Главный экран АТВ

TorrServe и TorrServer

Тут появляется одна проблема, что приставки на андроид, чувствуют себя телефонами и начинают экономить батарею. То есть закрывать все процессы в фоне, которые по их мнению слишком много едят ресурсов. Видимо корни китайских андроидов дают о себе знать.

На слабых устройствах нужно ставить меньше кэша, но нужна скорость. На более мощных можно больше установить кэш.

Сервер ставится в клиенте на андроиде, но можно установить сервер на линукс системах, даже на VPS. Что и делают люди у которых нет андроида и пк, но есть телевизор на тайзен или вебос.

У меня сервер стоит на приставке H96 max x3 с armbian на борту. Там стоят все мои программы, которые необходимы мне для работы и просмотра. Мини сервер на арм за дешево, специально брал самый дешевый и так сказать мощный.

Для просмотра использую Amazon FireTV Stick 4K, по цене качеству, очень хорошо подошел. Пульт сказка, маленький и удобный, кнопки не щелкают, голос распознаёт на отлично, телик сам находит с помощью приставки. Цена по распродаже 25$, а картинка лучше, чем на amlogic приставках.

Роутер у меня микротик hap ac2, всю нагрузку выдерживает. Фильмы могу смотреть по битрейту ближе к 100mbit/s, это 70-100 гигабайт. Но в основном смотрю 5-30гб

Торрент смотреть есть где, а как их искать и чтоб удобно было?

Все началось с того что Юрий Юрьев сделал НЦР. На Хабре была статья об этом. Там был революционный поиск и сортировка торрентов.

Если вкратце, то ищутся хорошие торренты за месяц и сортируются по последнему добавленному в хорошем качестве. На тот момент у нас была группа единомышленников, и НЦР не понравилась нам своим интерфейсом, а многие просили версию для телефонов. Автора просили сделать программу более дружелюбную и более привычную к андроиду. Но автор отказывался. Мы решили делать по его задумке, но более универсальную и привычную. Собрались с программистами, один парень сделал клиент по своему подобию из своих наработок. Другой парень собрал и переделал с гитхаба парсер от Юрия, в итоге он его полностью переделал, я помогал исправлять баги и добавлять новые функции. В итоге все хотели сделать быстро, а мне было интересно сделать универсально, потому я особо не участвовал и решил сделать свое поделие - NUM. В итоге парни сделали программу за месяц и потом потихоньку исправляли баги и дорабатывали функционал.

По задумке программа должна была использовать интерфейс Андроид ТВ. Поиск должен был идти на главном экране, только описание фильма и список торрентов. Каналы для вывода новинок по немного упрощенному алгоритму от Юры.

Описание фильма в NUM Еще описание Трейлеры Актеры Список торрентов

Но все это вышло в полноценный поиск и свой интерфейс, с подборками из других сайтов и поиском торрентов по рутор и torlook. В начале делал программу один, потом ко мне присоединился парень (Цыник, спасибо за помощь), он весь интерфейс и сварганил, а я по большей части функционал и парсер сделал.

Итого

Чтобы наслаждаться фильмами, не нужно создавать комбайн из непонятного кода или запихивать ПК под телевизор, который своим шумом будет сдувать весь звук.

Можно купить хорошую приставку, мой выбор Ugoos AM6, поставить туда TorrServe и другие программы которые выдают торренты и наслаждаться, а приставку можно за сам телевизор засунуть.

Для бюджетного варианта, пойдет любая приставка с процессором Amlogic X3 и 1000mbit lan. Но там свои глюки, хотя скорее всего её можно прошить на ugoos.

VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.

На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.


Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории ( apt install nginx ). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.


Или просто вводим IP-адрес сервера в браузере:


Если мы ещё не скопировали на сервер файлы своего сайта, то будет показана стандартная заглавная страница Nginx.


Примечание. Если пользователь не имеет рутовых прав, то для выполнения каждой команды он должен получить рутовые привилегии с помощью команды sudo .


В случае запуска от имени root, команда такая:


Запуск после остановки:


Остановка и повторный запуск (перезапуск):


Если вы просто внесли некие изменения в конфигурацию, Nginx может перегрузиться без потери текущих соединений. Это делается следующей командой:


По умолчанию, Nginx сконфигурирован на автоматический запуск при загрузке сервера. Такое поведение можно изменить следующей командой:


Снова включить автозапуск Nginx при загрузке сервера:


По умолчанию в Nginx сконфигурирован один набор правил server blocks для одного домена. Предполагается, что на вашем сервере размещается только один сайт. По умолчанию он должен располагаться в директории /var/www/html .

Предположим, что вы хотите создать в Nginx несколько наборов правил server blocks для нескольких сайтов или переместить файлы текущего сайта в другую директорию /var/www/your_domain .

Это делается следующими командами.

Сначала создаём нужную директорию на сервере.


Затем назначаем владельца этой директории с помощью переменной $USER , которая должна соответствовать текущему пользователю:


Размещаем в указанной директории главную страничку index.html .

Потом нужно создать соответствующий набор правил для Nginx. В любом текстовом редакторе создаём файл /etc/nginx/sites-available/your_domain и копируем туда конфигурацию из файла по умолчанию, только с изменённым адресом и доменом:


В конце концов, активируем эту конфигурацию, прописав симлинк к новому конфигурационному файлу в директории sites-enabled , которую Nginx считывает при загрузке:

Какие вопросы чаще всего возникают у пользователей при управлении Linux-сервером? Какие инструменты можно порекомендовать даже не очень опытным администраторам?

Установка супервизора

Supervisor — это система клиент/сервер, при помощи которой администратор контролирует процессы на сервере. Инструмент создает процессы в виде подпроцессов от своего имени.

Установка supervisord в Debian или Ubuntu предельно простая:


После этого демон супервизора уже запущен и будет запускаться при каждой загрузке системы.

Новые программы передаются в супервизор через конфигурационные файлы в директории /etc/supervisor/conf.d . Например, для скрипта long.sh конфигурационный файл может выглядеть следующим образом:


Соответственно, скрипт будет автоматически запускаться при каждой загрузке системы и автоматически перезапускаться в случае выхода. Это значение может быть 'false' (не перезапускаться) или 'unexpected' (перезапускаться только в случае выхода с неожиданным кодом ошибки, по умолчанию, с любым кодом, кроме 0 или 2).

Две последние строчки — адреса журналов. Это минимальный шаблон конфигурации для программы в супервизоре.

После создания файла конфигурации для конкретной программы запускаем две команды, чтобы супервизор перечитал и применил новые конфигурации:

На этом этапе наша программа или скрипт уже должны запуститься, что можно проверить по логам.

В утилите supervisorctl есть интерактивный режим, в котором она запускается без аргументов:


В этом режиме supervisorctl изначально выводит статус и время работы всех программ под управлением супервизора, а потом свю командную строку. Там можно ввести help — и увидеть список доступных команд:


Как видим, можно запускать, останавливать и перезапускать программы из командной строки с помощью команд start, stop и restart.

Выход из супервизорпа осуществляется по Ctrl-C или командой quit:

Анализ свободного места на диске

Стандартная утилита для просмотра информации о смонтированных разделах — это df . Она выводит список подключенных устройств и информацию о занятом месте.


Параметр -h активирует режим читаемого человеком вывода (то есть в мегабайтах или гигабайтах):


Информация о конкретной директории (например, /home):


Информация о разделах с заданной файловой системой:

Поиск файлов командой find

Поиск по названию файла:


Поиск по названию без учёта регистра:


«Обратный» поиск файлов, которые не соответствуют указанному шаблону:


Поиск по типу файла


Некоторые из распространённых дескрипторов::

  • f — обычный файл
  • d — директория
  • l — символическая ссылка
  • c — файлы устройств посимвольного ввода-вывода
  • b — файлы устройств блочного ввода-вывода


Есть фильтр по размеру и времени доступа/изменения. Например, вот команда для поиска всех файлов менее 50 байт:


Поиск всех файлов более 700 мегабайт:


Для поиска по времени доступа, модификации или изменения метаинформации файла используются параметры '-atime', '-mtime' и '-ctime' с символами плюса и минуса для указания диапазона больше и меньше указанного, соответственно.

Поиск файлов, которые были модифицированы менее суток назад:


Файлы с временем доступа более трёх суток назад:


Файлы, которые изменялись за последнюю минуту:


Файлы, которые новее указанного файла:


Доступен поиск по владельцу ('-user', '-group') и по файлам с конкретными разрешениями ('-perm'). На всех найденных файлах можно сразу провести какое-нибудь действие ('-exec').

Тестирование TCP и UDP-соединений

В комплекте Linux идёт большое количество полезных утилит. Некоторые системные администраторы способны выполнять большинство задач, пользуясь только встроенным инструментарием, без установки дополнительных программ. Настоящий швейцарский нож среди встроенных инструментов Linux — сетевая утилита netcat . Общий синтаксис:


Эта команда инициирует TCP-соединение на заданный хост по указанному порту. Если вместо TCP нужно протестировать UDP-соединение, то указываем опцию -u :


В большинстве систем можно писать как netcat , так и nc .

Сканирование портов

Одно из типичных применений netcat — сканирование портов, опция -z означает сканирование вместо установления соединения. Используем её вместе с опцией -v для выдачи более детальной информации при сканировании портов с 1 до 1000:


Выдача будет выглядеть примерно так:


Впрочем, для этой задачи имеется более продвинутая, специализированная программа nmap . Устанавливаем её:


Эта утилита выдаёт более подробную информацию о портах. Реестр известных портов /usr/share/nmap/nmap-services содержит более 20 тысяч строк, в том числе дополнительные поля, такие как средняя частота открытия конкретного порта на серверах в интернете (третья колонка):

Некоторые команды требует длительного времени для выполнения.

Сканирование операционной системы на хосте:


Сканирование диапазона хостов от xxx.xxx.xxx.xxx до yyy.yyy.yyy.yyy:


Сканирование сетевого диапазона с поиском доступных сервисов:


Сканирование конкретного порта:


Сканирование всех открытых портов TCP и UDP:


Изучение версий ПО, работающего на хосте:


Есть много других команд, параметров и вариантов использования nmap. Сканирование портов своего VDS-сервера позволяет определить потенциальные векторы атак и уязвимости, поскольку злоумышленник начнёт свои действия именно со сканирования.

С помощью ключа -l можно поставить на прослушивание конкретный порт на сервере:


На другой машине мы указываем подключиться к машине по данному порту:

Таким способом можно даже передать файл. Для этого команду прослушивания направляем сразу в файл:


Аналогично можно передавать самые разные вещи, например, содержимое директорий, заархивированное на лету в tarball :

Добавление и удаление пользователей

Для добавления, удаления пользователей и выдачи им привилегий sudo нужно для начала подключиться к серверу как root:


После этого добавляем пользователя:


Изначально у него нет никаких привилегий. Но если это основной пользователь системы, то мы можем назначить ему административные привилегии, чтобы он мог выполнять рутинные задачи по обслуживанию и поддержке сервера.

Для назначения административных привилегий нужно добавить пользователя в группу sudo. Пользователям из этой группы разрешено запускать команду sudo с повышением своих привилегий до административных.


Вместо user1 указываем имя пользователя, которого добавили ранее. Теперь он сможет запускать любые команды через sudo :


Имея такие права, этот пользователь может удалять других пользователей:


Опция --remove-home удаляет также и домашнюю директорию пользователя.

Сам root имеет право выполнить команду deluser без sudo .

Конечно, здесь далеко не полный список полезных инструментов для управления VDS-сервером. Но эти вопросы часто возникают у начинающих системных администраторов, которые подняли свой первый сервер, поставили ОС и начинают разбираться в мире Linux-администрирования.


Сейчас я расскажу вам о том, как можно сэкономить немалое количество времени и денег на вашей IT-инфраструктуре.
Как централизованно админить большое количество linux рабочих станций не разводя при этом хаос в вашей экосистеме.
И так, что же такое LTSP?

LTSP — Это терминальное решение на Linux.
Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера.

В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свежеустановленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс.

У LTSP есть несколько режимов работы:

Для того, чтобы понять в чем различие для начала нам нужно разобраться как LTSP работает.

Допустим, у вас есть сервер и множество компьютеров (терминальных станций), которые вы раздаете пользователям, чтобы те за ними работали. Терминальные станции эти почти ничем не отличаются от обычных компьютеров, за исключением того, что их размеры обычно достаточно малы, для работы им не нужен жесткий диск и, кроме того, они могут быть довольно слабыми и дешевыми, на работе пользователей это не отражается (в режиме тонкого клиента). Стоит отметить, что в роли терминальной станции может выступать любой компьютер, который умеет загружаться по сети.

Как я уже сказал, на терминальных станциях вполне может и не быть жесткого диска, а соответственно никакой операционной системы на них не установленно, вся загрузка происходит c LTSP-сервера прямо по сети.
На терминальном сервере у вас установлена система, в ней же и хранятся все данные пользователей, конфиги, и ПО.
Когда пользователь включает свой компьютер, у него загружается операционная система с терминально сервера, он может в нее войти, поработать, отключиться. При этом все данные всегда остаются на терминальном сервере.

Теперь о режимах работы:

  • тонкий клиент — Приложения выполняются на терминальном сервере и просто выводятся на дисплей терминального клиента.
  • толстый клиент — Приложения выполняются непосредственно на терминальном клиенте, а сервер просто предоставляет доступ к пользовательским файлам и программам.

Итак, какой же режим нам выбрать? — все зависит от того, что вы хотите получить. Вы можете немного сэкономить используя на клиентах слабые станции вкупе с мощным сервером в режиме тонких клиентов. Или разгрузить терминальный сервер и локальную сеть, купив терминальные станции помощнее, переложив ответсвенность за выполнение программ на клиентов, заставив их, тем самым, работать в режиме толстого клиента.

Кроме того, режимы можно комбинировать и некоторые приложения можно заставлять работать иначе, чем все остальные. Например запускать "тяжелый" браузер с flash локально на клиентах, а офисные приложения запускать на самом сервере.

Давайте рассмотрим какие же плюсы мы имеем по сравнению со стандартными принципами построения ит инфраструктуры:

  • Централизованное управление — У вас есть одна единая конфигурация, которой вы управляете из одного места.
  • Резервирование и бэкапирование — Все пользовательские данные у вас хранятся на одном сервере, а соотвественно настроив резервирование этого сервера, вы никогда не потеряете пользовательские данные.
  • Экономия на компьютерах — Бездисковые терминальные станции стоят заметно дешевле, чем полноценные компьютеры.
  • Быстрое развертывание — Вам больше не нужно устанавливать ОС. Прикупив очередную пачку терминалов их можно смело втыкать в сеть, они сразу подтянут операционку с сервера и они будут полностью готовы к работе. Точно так же нерабочий терминал можно быстро заменить другим.
  • Независимость от рабочего места — Пользователи могут работать под своей учетной записью независимо с любого компьютера в сети, всегда будет подгружаться именно их личный профиль.
  • OpenSource — Прежде всего, LTSP — это открытый и свободный проект. Вам не надо покупать лицензии для его использования. Кроме того, вы всегда можете посмотреть исходники, в основе которых лежат обычные bash-скрипты.
  • Требуется непрерывное подключение LAN — терминальные станции грузятся и работают по сети, поэтому требуется стабильное проводное подключение к сети.
  • Зависимость от сервера — понятное дело, без сервера все терминальные клиенты становятся бесполезными и превращяются в тыкву.

Первое, что мы должны знать, это компоненты из которых состоит сервер:

  • DHCP-сервер — используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux. Вы так же можете использовать ваш собственный DHCP-сервер.
  • TFTP-сервер — отдает по tftp-протоколу загрузчик, ядро и главный конфиг lts.conf .
  • NBD-сервер — используется ядром для загрузки базовой системы по сети. Так же, при желании, может быть заменен на NFS
  • SSH-сервер — используется для авторизации пользователей и передачи их домашних каталогов на терминальные станции.

Во вторых разберемся в том как он работает:

Когда вы установите на ваш сервер пакет ltsp-server-standalone , вы, к полностью настроенным сервисам, получите еще несколько ltsp-скриптов:

  • ltsp-build-client — собирает для нас образ системы, который мы будем отдавать на клиентские машины.
  • ltsp-chroot — chroot'ит нас в клиентскую систему, например для установки дополнительных пакетов и изменения конфигов.
  • ltsp-config — генерит дефолтные конфиги для LTSP.
  • ltsp-info — выводит информацию о текущей установке.
  • ltsp-update-image — обновляет nbd-образ базовой системы.
  • ltsp-update-kernels — копирует ядро и загрузчик из клиентского образа, в директорию tftp-сервера
  • ltsp-update-sshkeys — добавляет ssh publickey вашего сервера, в known_hosts клиентского образа.

Их то мы и будем использовать для настройки нашего окружения.

Так же предельно важно понимать как устроена загрузка по сети, процесс загрузки выглядит примерно следующим образом:

  • Рабочая станция включается и опрашивает DHCP-сервер, как ей грузиться дальше:
    А точнее происходит запрос двух опций: next server — адрес TFTP-сервера и boot file — путь к загрузчику.
  • DHCP-сервер, выдает ответ с адресом сервера и путем к pxelinux.
  • Рабочая станция загружает загрузчик pxelinux по TFTP
  • pxelinux загружает ядро.
    В конфиге pxelinux в опциях ядра указанно откуда грузить основную систему по NBD
  • Когда ядро запускается, оно маунтит с сервера nbd-образ в корень системы и загружает процесс init, который в свою очередь и загружает все остальное обычным способом.
  • Так же в этот момент ltsp-читает главный конфиг lts.conf с сервера и запускает LDM, после чего пользователь видит приглашение к вводу логина и пароля.

LDM — это логон менеджер LXDE, который отвечает за авторизацию пользователей и начальный запуск окружения.

image

Когда пользователь логинится проиходит следующее:

  • В случае тонкого клиента, LDM заходит с введенным логином и паролем на ваш сервер по SSH,, если успешно, загружает окружение с сервера простым пробросом X'ов.
  • В случае толстого клиента, LDM пытается подключиться с введенным логином и паролем к вашему серверу, если успешно, то маунтит домашний каталог пользователя с сервера на клиент посредством sshfs, затем запускает окружение.

Если вам нужна более подробная информация о загрузке Linux по сети, рекомендую обратиться к циклу статей Roshalsky, вот ссылка на первую.

Я опишу установку LTSP в режиме толстого клиента, как наиболее сложную и интересную.
Настройка в режиме тонкого клиента мало чем будет оличаться, за исключением того, что необходимое ПО вам придется устанавливать не в chroot, а в основную систему, и после этого вам не нужно будет пересобирать nbd-образ.

Маленькая оговорочка, для сервера лучше брать дистрибутивы посвежее, т.к. LTSP находится среди стандартных пакетов и обновляется вместе с дистрибутивом. Для гостевой ос лучше брать проверненную Ubuntu 14.04 LTS, т.к. если брать дистрибутив посвежее, потом начнутся проблемы, то загрузчик не станавливается, из-за переименования пакетов, то еще что.

UPD: Проверенно, с последней Ubuntu 16.04 LTS таких проблем не возникает.

Итак, приступим. Сначала устанавливаем ltsp-server-standalone :

Теперь с помощью ltsp-build-client мы установим клиентскую систему. LTSP поддерживает различные DE, но больше всего мне понравилось как работает LXDE. В отличии от Unity он потребляет совсем мало ресурсов и так-как работает на голых иксах, он почти полностью конфигурируется с помощью переменных среды, это очень удобно, так-как их можно указать в главном конфиге lts.conf.

Все эти опции можно указать в конфиге /etc/ltsp/ltsp-build-client.conf , что бы не прописывать их вручную:

В случае если опция не указана, будет использоваться тот же дистрибутив и/или архитектура, что и на серверной системе.

После запуска комманды, у вас в полностью автоматическом режиме, с помощью debootstrap , развернется система в каталог /opt/ltsp/i386 .

Эта же система и будет использоваться в дальнейшем всеми командами LTSP, в нее будет устанавливаться дополнительное ПО, из нее будут генериться загрузчик с ядром и nbd-образ системы. В принципе, ее, так же можно отдавать по nfs при должной настройке загрузчика.
После установки LTSP автоматически сгенерит из нее nbd-образ. Этот образ и будут загружить наши клиенты.

Для того, чтобы внести какие-нибудь изменения в гостевую ОС, например устанавливать дополнительное ПО, используется команда ltsp-chroot .
Если вы хотите что-то поменять или добавить в гостевую систему, выполните ltsp-choot и вы окажетесь внутри нее.
Затем произведите нужные вам действия, и выйдите командой exit.
Чтобы изменения применились, нужно перегенерить nbd-образ командой ltsp-update-image

DHCP-сервер:

Но, так как я предполагаю, что у вас уже есть DHCP-сервер, предлагаю настроить его.

Теперь вам нужно добавить к вашему dhcp-серверу 2 опции:

Как это сделать, смотрите инструкции к вашему DHCP-серверу.
Вот, например инструкция как это сделать на оборудовании Mikrotik.

Установка ПО

Давайте же войдем в нашу гостевую систему:

Теперь установим vim:

Поддержку русского языка:

Последнюю версию Remmina:

Браузер Chromium c плагином PepperFlash (свежий flash от google)

Кстати, PepperFlash можно установить и запустить без Chromium, в Firefox:

  • Чтобы администратор мог удаленно подключиться к сессии пользователя установим x11vnc:

Еще в Ubuntu 16.04 есть некая проблема, если не настроить xscreensaver, то через определенное время клиент покажет черный экран, из которого никак не выйти. Исправим это:

Установим xscreenasver, если он еще не установлен:

Если вы намерены блокировать экран с вводом пароля, не забудьте добавить следующую строку в ваш конфиг lts.conf:

Не забываем выйти из chroot и обновить наш nbd-образ:

Создание пользователей

Обычных пользователей терминального сервера можно создать стандартным способом:

Или через GUI если он установлен у вас на сервере

Также при желании можно создать локального администратора в клиентском образе:

Конфиг lts.conf

Вот мы и подобрались к самому главному конфигу
Находится он по адресу /var/lib/tftpboot/ltsp/i386/lts.conf и представляет ссобой нечто иное как описание глобальных переменных.

Конфиг поделен на секции, в секции Default описываются настройки общие для всех клиентов:

Также можно добавить секции для отдельных клиентов, на основе hostname, IP или MAC-адреса:

Вообще полный список опций вы можете найти на этой странице, или в

К тому же, благодаря свободной лицензии все это достается вам абсолютно бесплатно.

LTSP можно использовать как в учебных заведениях, так и в обычных офисах, как для удаленного подключения к Windows, так и просто для обычной работы.

UPD: widestream в комментариях отписал, что успешно использует похожую схему для создания рендер-фермы.

Не секрет, что в нынешние времена для большинства сотрудников, сейчас, будет достаточно лишь браузера с базовым набором офисных програм на рабочем месте.

Читайте также: