Терминальный сервер, сервер терминалов (англ. terminal server ) — сервер, предоставляющий клиентам вычислительные ресурсы (процессорное время, память, дисковое пространство) для решения задач. Технически терминальный сервер представляет собой очень мощный компьютер (либо кластер), соединенный по сети с терминальными клиентами — которые, как правило, представляют собой маломощные или устаревшие рабочие станции, либо специализированные решения для доступа к терминальному серверу. Терминальный сервер служит для удалённого обслуживания пользователя с предоставлением рабочего стола.
Содержание
Процесс работы [ править | править код ]
Терминальный клиент после установления связи с терминальным сервером пересылает на последний вводимые данные (нажатия клавиш, перемещения мыши) и, возможно, предоставляет доступ к локальным ресурсам (например, принтер, дисковые ресурсы, устройство чтения смарт-карт, локальные порты (COM/LPT)). Терминальный сервер предоставляет среду для работы (терминальная сессия), в которой исполняются приложения пользователя. Результат работы сервера передается на клиента, как правило, это изображение для монитора и звук (при его наличии).
Преимущества терминального сервера
- Снижение временных расходов на администрирование
- Повышение безопасности — снижение риска инсайдерских взломов
- Снижение затрат на программное и аппаратное обеспечения
- Снижение расхода электроэнергии
Недостатки
- Концентрация всей функциональности в рамках одного (нескольких) серверов — выход из строя любого элемента между приложением и клиентами (сервер, коммутаторы, СКС) приводит к простою многих пользователей.
- Усиливаются негативные последствия ошибок конфигурации и работы ПО (последствия ошибок сказываются не на отдельных пользователях, а на всех пользователях сервера сразу же)
- Проблемы с лицензированием (некоторое ПО не предусматривает ситуации работы нескольких пользователей на одном компьютере или требует использования более дорогих версий).
Проблемы лицензирования [ править | править код ]
В условиях использования свободнораспространяемого ПО (такого, как X Window System) проблема лицензирования не возникает. Для ПО, предусматривающего в лицензионном соглашении ограничение на количество копий/пользователей, возникают затруднения.
В условиях терминального сервера могут использоваться следующие модели лицензирования:
- Per seat (per device — на рабочее место) — для каждого устройства (тонкого клиента или рабочей станции) требуется отдельная лицензия, вне зависимости от количества пользователей. Подобная схема используется при лицензировании Terminal Services в составе Windows Server.
- Per user (на пользователя) — для каждого пользователя (вне зависимости от числа одновременно работающих пользователей) требуется отдельная лицензия.
- Per connection (конкурентная лицензия) — для каждого соединения требуется отдельная лицензия, при этом количество пользователей/рабочих мест не играет роли — важно количество одновременно обслуживаемых пользователей. Такую систему лицензирования использует Citrix Metaframe. В этом случае существует пул лицензий, каждое новое соединение забирает одну лицензию из пула. Лицензия возвращается в пул при окончании соединения.
Во многих крупных пакетах ПО предусматривается особый сервис — сервер лицензий (приложение, занимающееся учётом, выдачей и приёмом лицензий). В условиях крупных сетей рекомендуется выделение под сервер лицензий отдельного компьютера (или нескольких — для резервирования).
Терминальный сервер — это популярное в корпоративной среде решение для доставки приложений на компьютеры пользователей, тонкие клиенты или мобильные устройства. Для пользователя все происходит прозрачно, у него на рабочем столе появляется ярлык, например, 1С предприятия, он может открыть приложение и работать в нем как обычно. Но на самом деле приложение у него на компьютере не инсталлировано. Запуск приложения происходит на терминальном сервере, а пользователю на экран монитора транслируется только изображение. В обратном направлении, от пользователя на сервер, передаются движения мыши и нажатие клавиш.
В случае с 1С и других клиент-серверных программ, это действительно помогает добиться ускорения работы, ведь весь сетевой трафик между серверной и клиентской частью не покидает пределы ЦОД. Еще из плюсов можно отметить централизованное управление, обновление, возможность быстро организовать работу новых пользователей без установки ПО на их компьютеры. В результате, сотрудники из центрального офиса и региональных отделений получают одинаково качественный доступ к корпоративным ресурсам.
В этой статье, в том числе, с экономической точки зрения будут рассмотрены различные варианты применения технологии терминального доступа в корпоративной ИТ инфраструктуре. Будет произведено сравнение стоимости и функциональных возможностей популярных продуктов от Citrix, Microsoft и VMware.
Попробуем ответить на очень важные вопросы: «В каком случае выгодно, заменить стандартные рабочие станции на тонкие клиенты?»; «Почему рабочее место на технологии Citrix стоит на 200$ больше, чем на Microsoft?»
Терминальный сервер привыкли недооценивать, принято считать, что он годится только для доставки отдельных приложений и не способен полностью заменить собой персональные компьютеры. На основании своего опыта и общей практики можно с уверенностью сказать, что терминальные службы часто используют для ПОЛНОГО перевода пользователей на работу в удаленных сессиях, ведь практически все современное программное обеспечение поддерживает работу в терминальном режиме.
Основная функциональная возможность, которую предоставляет терминальный сервер — это удаленный доступ к Widows приложениям, установленным и опубликованным на сервере(ах). У пользователя на устройстве должен быть установлен только программа-клиент, которая умеет подключаться к терминальному серверу. Самый простой
пример, программа, которая встроена в любой Windows — это «Подключение к удаленному рабочему столу».
Доступ может быть предоставлен либо ко всему рабочему столу, либо к определенному приложению, которое откроется в, так называемом, бесшовном окне. В первом случае на экране пользователя запустится терминальная сессия и закроет собой текущий рабочий стол. Во втором случае, в отдельном окне запустится программа и пользователь даже не поймет, что данная программа запущена не на его компьютере, а на сервере. В России чаще всего публикуют программу 1С предприятие, чтобы пользователи могли подключаться и работать из центрального офиса, а самое главное, из удаленных филиалов.
Итак, перечислим задачи, которые решает терминальный доступ:
- улучшение работы клиент-серверных приложений (например 1С) за счет их запуска их в ЦОД. Для этого есть специальный термин — «близость к данным», чем лучше связь между клиентской частью программы и серверной, тем быстрее выполняются задачи.
- перевод пользователей с ПК на тонкие клиенты. Вместо компьютера с данными пользователю устанавливается миниатюрное устройство, которое позволяет подключаться к терминальной сессии. Тонкий клиент не требует обслуживания, не шумит, не греется, потребляет мало электричества. Позволяет свести к минимуму техническую поддержку на рабочих местах.
- экономия трафика в WAN сетях, и как следствие, уменьшение ширины и стоимости канала. В случае с терминальным доступом трафик, который раньше проходил между клиентскими станциями и серверами заменяется на трафик передачи изображения удаленного экрана.
- централизованное управление лицензиями и ПО, позволяет привести все категории рабочих мест к унифицированному виду. Один администратор может управлять тысячами рабочих мест. Ферма терминальных серверов позволяет оперативно доставлять необходимые корпоративные приложения, централизованно устанавливать обновления, управление данными сотрудников.
- для пользователя: увеличивается скорость работы с корпоративными программами, повышается стабильность работы, уменьшаются случаи обращения в службу технической поддержки.
- для администратора: переход к системе терминального доступа позволяет автоматизировать множество рутинных задач системного администратора, связанных с разворачиванием, обновлением и обслуживанием рабочих мест пользователей. Но для получения всех вышеперечисленных плюсов критично не сделать ошибок во время выбора, настройки и эксплуатации терминальной фермы. Часто встречаются случаи, когда неправильное администрирование даже самого простого терминального сервера превращает работу администратора и пользователей в кошмар.
Задумывались ли вы, зачем такие компании, как Citrix, VMware, Dell и еще около 200 других, выпускают свои реализации терминальных серверов? Есть же классический терминальный сервер от Microsoft — службы MS RDS, почему бы не использовать его?
Основная задача производителей — улучшить существующий у Microsoft RDS функционал терминальных служб и дополнить его новыми, нужными возможностями, востребованными на корпоративном рынке.
Основа любого современного терминального сервера — это всегда Windows server 2008 или 2012, именно в этих операционных системах устанавливаются службы удаленных рабочих столов. Именно для этой основы сторонние производители разрабатывают свои «надстройки», позволяют получить дополнительный функционал, которого просто нет в изначальном терминальном сервере от Microsoft. Давайте разберемся, что чаще всего дополняют и заменяют в классическом терминальном сервере.
- брокер подключений — самое слабое место Microsoft в крупных инсталляциях. Практически полное отсутствие каких-либо настроек у встроенного в Windows сервер Connection Broker делает его мало пригодным для корпоративного сегмента, ведь если вы не можете им управлять, вы не сможете решить поставленные задачи.
- заменяют протокол передачи данных, — один из главный факторов при выборе решения терминального доступа. Именно возможностями протокола определяются дальнейшие сценарии использования решения. Для одного заказчика решающим будет умение работать на узких нестабильных каналах передачи данных, для другого качество отображения контента Flash и мультимедиа, для третьего возможность использования специфического периферийного оборудования и т.д.
- администрирование, — понятие всеобъемлющее. Сюда можно отнести все операции, которые выполняет обслуживающий ИТ персонал, от первоначальной инсталляции продукта до миграции на его новые версии. Отказоустойчивость, масштабирование, процесс обновления опубликованных приложений, оказание технической поддержки терминальным пользователям, мониторинг состояния системы терминального доступа, резервное копирование и скорость восстановления в случае серьезных аварий и, конечно, удобство использования всего вышеперечисленного. Возможность обратиться к вендору с техническим вопросом в рамках технической поддержки и быстро получить решение. И чем больше пользователей работает в терминальных сессиях, тем критичнее становятся, на первый взгляд, мелочи.
Рассмотрим варианты лицензирования серверов терминалов от разных производителей. Как правило, все программные продукты терминального доступа на базе Microsoft лицензируются, примерно, одинаково. Обязательным условием является покупка лицензии MS RDS CAL, которая дает возможность активировать терминальные службы в Windows server 2008/2012.
Классический Microsoft RDS
Для полноценной работы классического терминального сервера Microsoft достаточно покупки RDS CAL за 70$. Стоимость лицензии RDS CAL бывает двух видов, — на пользователя (чуть дороже) и на устройство (чуть дешевле). Разница в цене небольшая, поэтому для простоты расчетов примем стоимость за 70$
Citrix XenApp/XenDesktop
Для правильного лицензирования фермы терминальных серверов Citrix нужно купить и лицензию MS RDS CAL и лицензию одной из редакций XenDesktop или XenApp. Все перечисленные в таблице лицензии Citrix позволяют использовать терминальные фермы, но через XenDesktop дополнительно можно создавать VDI виртуальные машины. Помимо редакции (Advanced, Enterprise, Platinum), лицензии разделяются на
- Конкурентные (C0ncurrent) — считаются только текущие существующие сессии пользователей. Например, у вас 1000 пользователей, но работают одновременно только 700. В случае с конкурентными лицензиями нужно заплатить только за 700 шт. Именно поэтому стоимость конкурентных лицензий выше, чем на пользователя/устройство.
- User/Device — лицензия закрепляется на выбор или за пользователем (учетной записью в домене), или за устройством. В случае «User» под одной учетной записью можно подключаться к терминальному серверу с разных устройств. В случае с «Device» за одним рабочим местом могут работать поочередно разные пользователи, например, посменная работа в call center
VMware Horizon View
VMware Horizon на сегодняшний день позволяет делать не только виртуализацию рабочих мест VDI, но и терминальный доступ на базе Windows server 2008/2012. Существует всего два вида лицензий где добавлен функционал создания терминальных ферм — Advanced и Enterprise. Также существует разделение на конкурентные подключения (Concurrent) и подключения, привязанные к учетной записи пользователя (Named User).

*В таблице указаны рекомендуемые Цены, на которые распространяется хорошая скидка, кроме Microsoft.
Инструкция разбита на 6 шагов. Первых 3 представляют стандартные действия для настройки терминального сервера. Остальные являются профессиональными советами, которые помогут создать надежную и профессиональную инфраструктуру для сервера терминалов.
В качестве операционной системы используется Windows Server 2012 R2 / 2016.
Шаг 1. Выбор оборудования и подготовка сервера к работе
Выбор оборудования
Выбирая оборудование для данного типа серверов, необходимо опираться на требования приложений, которые будут запускаться пользователями и количество последних. Например, если устанавливается терминальный сервер для программы 1С, а количество одновременно работающих сотрудников равно 20, получим следующие характеристики (приблизительно):
- Процессор от Xeon E5.
- Памяти не менее 28 Гб (по 1 Гб на каждого пользователя + 4 для операционной системы + 4 запас — это чуть меньше 20%).
- Дисковую систему лучше построить на базе дисков SAS. Объем необходимо учесть индивидуально, так как это зависит от характера задач и методов их решения.
Также предлагаю для чтения статью Как выбрать сервер.
Подготовка сервера
Прежде чем начать установку операционной системы выполните следующее:
- Настройте отказоустойчивый RAID-массив (уровни 1, 5, 6 или 10, а также их комбинации). Данная настройка выполняется во встроенной утилите контроллера. Для ее запуска следуйте подсказкам на экране во время загрузки сервера.
- Подключите сервер к источнику бесперебойного питания (ИБП). Проверьте, что он работает. Отключите подачу питания на ИБП и убедитесь, что сервер продолжает работать.
Шаг 2. Установка Windows Server и базовая настройка системы
Установка системы
Во время установки системы важно учесть только один нюанс — дисковую систему необходимо разбить на два логических раздела. Первый (малый, 70 – 120 Гб) выделить для системных файлов, второй — под пользовательские данные.
На это есть две основные причины:
- Системный диск малого размера быстрее работает и обслуживается (проверка, дефрагментация, антивирусное сканирование и так далее)
- Пользователи не должны иметь возможность хранить свою информацию на системном разделе. В противно случае, возможно переполнение диска и, как результат, медленная и нестабильная работа сервера.
Базовая настройка Windows Server
- Проверяем правильность настройки времени и часового пояса;
- Задаем понятное имя для сервера и, при необходимости, вводим его в домен;
- Настраиваем статический IP-адрес;
- Если сервер не подключен напрямую к сети Интернет, стоит отключить брандмауэр;
- Для удаленного администрирования, включаем удаленный рабочий стол;
- Устанавливаем все обновления системы.
Шаг 3. Установка и настройка терминального сервера
Подготовка системы
Начиная с Windows 2012 терминальный сервер должен работать в среде Active Directory.
Если в вашей IT-среде есть контроллер домена, просто присоединяем к нему наш сервер. В противном случае, устанавливаем на наш сервер роль контроллера.
Установка роли и компонентов
В панели быстрого запуска открываем Диспетчер серверов:

Кликаем Управление — Добавить роли и компоненты:

Нажимаем Далее до «Выбор типа установки». Оставляем Установка ролей и компонентов и нажимаем Далее дважды:

В окне «Выбор ролей сервера» выбираем Службы удаленных рабочих столов:

Кликаем Далее, пока не появится окно «Выбор служб ролей» и выбираем следующие:
- Лицензирование удаленных рабочих столов
- Узел сеансов удаленных рабочих столов

* при появлении запроса на установку дополнительных компонентов соглашаемся.
При необходимости, также выставляем остальные галочки:
- Веб-доступ — возможность выбора терминальных приложений в браузере
- Посредник подключений — для кластера терминальных серверов посредник контролирует нагрузку каждой ноды и распределяет ее.
- Узел виртуализации — для виртуализации приложений и запуска их через терминал.
- Шлюз — центральный сервер для проверки подлинности подключения и шифрования трафика. Позволяет настроить RDP внутри HTTPS.
Нажимаем Далее и в следующем окне Установить. Дожидаемся окончания процесса установки и перезагружаем сервер.
Установка служб удаленных рабочих столов
После перезагрузки открываем Диспетчер серверов и нажимаем Управление — Добавить роли и компоненты:

В окне «Выбор типа установки» выбираем Установка служб удаленных рабочих столов и нажимаем Далее:

В окне «Выбор типа развертывания» выбираем Быстрый запуск и нажимаем Далее:

В «Выбор сценария развертывания» — Развертывание рабочих столов на основе сеансов — Далее:

Еще раз Далее — при необходимости, ставим галочку «Автоматически перезапускать конечный сервер, если это потребуется» и кликаем по Развернуть.
Настройка лицензирования удаленных рабочих столов
Для корректной работы сервера, необходимо настроить службу лицензирования. Для этого открываем диспетчер серверов и кликаем по Средства — Terminal Services — Диспетчер лицензирования удаленных рабочих столов:

В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Активировать сервер:

В открывшемся окне дважды кликаем Далее — заполняем форму — Далее — Далее — Снимаем галочку «Запустить мастер установки лицензий» — Готово.
Снова открываем диспетчер серверов и переходим в «Службы удаленных рабочих столов»:

В «Обзоре развертывания» кликаем по Задачи — Изменить свойства развертывания:

В открывшемся окне переходим в Лицензирование — Выбираем тип лицензий — прописываем имя сервера лицензирования (в данном случае локальный сервер) и наживаем Добавить:

Применяем настройки, нажав OK.
Добавление лицензий
Открываем диспетчер серверов и кликаем по Средства — Terminal Services — Диспетчер лицензирования удаленных рабочих столов:

В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Установить лицензии:

В открывшемся окне нажимаем Далее — выбираем программу, по которой куплены лицензии, например, Enterprise Agreement — Далее — вводим номер соглашения и данные лицензии — выбираем версию продукта, тип лицензии и их количество — Далее — Готово.
Проверить статус лицензирования можно в диспетчере серверов: Средства — Terminal Services — Средство диагностики лицензирования удаленных рабочих столов.
Шаг 4. Тюнинг терминального сервера
Ограничение сессий
По умолчанию, пользователи удаленных рабочих столов могут находиться в системе в активном состоянии без ограничения. Это может привести к зависаниям или проблемам при повторном подключении. Для решения возможных проблем установите ограничения на терминальные сессии.
Анализатор соответствия рекомендациям
Для некоторых серверных ролей Windows (в частности, терминальных) существует база успешных конфигураций. Придерживаясь советам данной базы можно повысить надежность и стабильность системы.
Для сервера удаленных рабочих столов, как правило, необходимо выполнить следующие рекомендации:
1. Файл Srv.sys должен быть настроен на запуск по требованию.
В командной строке от имени администратора вводим:
sc config srv start= demand
2. Создание коротких имен файлов должно быть отключено.
В командной строке от имени администратора вводим:
fsutil 8dot3name set 1
Теневые копии
Если подразумевается хранение ценной информации на терминальном сервере, стоит настроить возможность восстановления предыдущих версий файлов.
Как настроить и пользоваться данной возможностью, читайте подробнее в инструкции Как включить и настроить теневые копии.
Ошибка 36888 (Source: schannel)
В журнале Windows может появляться ошибка «Возникло следующее неустранимое предупреждение: 10. Внутреннее состояние ошибки: 1203.» от источника Schannel и кодом 36888. Ее причину, однозначно, определить мне не удалось. Во многих информационных источниках пишут, что это давно известная проблема и списывают на ошибку самой операционной системы.
Точного решения найти не удалось, но можно отключить ведение лога для Schannel. Для этого в редакторе реестра находим ветку HKLMSYSTEMCurrentControlSetControlSecurityProvidersSchannel — в ней параметр EventLogging и меняем его значение на 0. Команда для редактирования реестра:
reg add "HKLMSYSTEMCurrentControlSetControlSecurityProvidersSchannel" /v EventLogging /t REG_DWORD /d 0 /f
* данную команду необходимо выполнить из командной строки, запущенной от администратора.
Шаг 5. Настройка средств обслуживания
Основные средства, помогающие полноценно обслуживать сервер — мониторинг и резервное копирование.
Резервное копирование
Для терминального сервера необходимо резервировать все рабочие каталоги пользователей. Если на самом сервере организована общий каталог для обмена и хранения важной информации, копируем и его. Лучшим решением будет ежедневное копирование новых данных, и с определенной периодичностью (например, раз в месяц), создание полного архива.
Мониторинг
- Сетевую доступность сервера;
- Свободное дисковое пространство.
Шаг 6. Тестирование
Тестирование состоит из 3-х основных действий:
- Проверить журналы Windows и убедиться в отсутствие ошибок. В случае их обнаружения, необходимо устранить все проблемы.
- Выполнить действия анализатора соответствий рекомендациям.
- Провести живой тест работы сервиса с компьютера пользователя.
Особый порт для подключения
По умолчанию, для подключения к терминальному серверу по RDP используется порт 3389. Если необходимо, чтобы сервер слушал на другом порту, открываем реестр, и переходим в ветку:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
Находим ключ PortNumber и задаем ему значение в десятично представлении, равное нужному номеру порта:

Также можно применить команду:
reg add "HKLMSystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber /t REG_DWORD /d 3388 /f
* где 3388 — номер порта, на котором будет принимать запросы терминальный сервер.




