Терминальный сервер linux для windows

Ламповый Linux-like терминал в Windows

Вступление (лирическое)

Для меня, автоматизатора-линуксоида, использвание Windows на основной рабочей станции первое время было просто болью и страданием. Но с этим я ничего поделать не мог: корпоративные стандарты и софт, кторый работает только на Windows. В попытке найти золотую середину, я прошёл три стадии. Сначала я только изредка переключался на винду по необходимости. Затем виртуалка на virtualbox-е с X-server-ом. После этого захотелось хоть чуть-чуть того консольного комфорта, который был на линуксе (я использовал Terminator в качестве основного терминала).

После яростного гугления и установки всех эмуляторов терминала под Windows, которые только удалось найти, оказалось, что нет ни одного хоть немного подходящего мне. А хотелось, чтобы вёл себя терминал максимально приближенно к линуксовым вариантам. Например, естественно нужны табы, сплит, выделение текста с прокруткой (когда нужно выделить больше чем один экран), копирование текста в буфер сразу при выделении и т.д.

В итоге я получил «комбайн» как на скриншоте ниже. О том, как это настроить, можно узнать, заглянув под кат.

До того, как получить результат, я даже всерьёз задумался о своём велосипеде (портирование, написание своего). Но лень и здравый смысл взяли свое…

В процессе поиска хорошего терминала, я наткнулся на хабра-топик: Альтернативный терминал для Windows. ConEmu — приложение действительно классное, но оно не для тех, кто долгое время использовал линукс-терминалы. Затем я наткнулся на Mintty (был установлен вместе с Cygwin). Программка отличная, ведёт себя максимально близко к таким терминалам как Gnome-terminal и Terminator, но нет табов.

Оказалось, что вышеупомянутый ConEmu умеет запускать GUI-приложения внутри своих табов! И тут искра надежды начала разгораться… Но хватит лирики, пора приступить к делу!

Установка нужных программ

Настройка

В ConEmu идём в Settings->Tasks и, нажимая плюсик, добавляем нужные таски как на скриншоте:

В нашем случае это:

Имя таска Команда
cygwin C:\Cygwin\bin\mintty.exe
ssh_local C:\Cygwin\bin\mintty.exe D:\Work\VMssh.bat
cmd cmd
powershell powershell

Осторожно! Адский CMD!

Вызывает скрипт старта виртуалки, VMNAME заменить на нужное.

Проверяет запущена ли виртуалка и если нет, то запускает её. Таким образом, мне не нужно помнить запущена ли виртуалка, запускать отдельно VirtualBox и делать дополнительные клики.

Немного «свистелок»

Общая рабочая папка (файлы доступны на винде и на виртуалке) — нужно настроить в VirualBox-e следующим образом:

Также нужно прописать в fstab на виртуалке, чтобы автоматиечски монтировалось при старте.

Заключение

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

Для тех, кому не нужны GUI-табы и кто использует tmux, есть статья моего коллеги примерно на ту же больную тему: habrahabr.ru/post/196128.

Особая благодарность хабраюзеру Maximus5 за отличный Windows терминал ConEmu!

Источник

Терминальный офис: Linux vs Windows — holy war: Part I

Преамбула: Есть типичные офис, на 15 локальных пользователей + 5 удалённых, круг задач прост: 1С + Офис + Интернет + Почта + Печать. Задача сделать устойчивое и недорогое (т.к. Кризис на дворе) решение.

Собственно решений-то всего 2: Терминальный сервер на Windows || Терминальный сервер на Linux. Standalone PC мы не рассматриваем, т.к. это не решение, а гемморой сплошной.

Сразу определимся с железом для терминального сервера: CPU 2 Quad Xeon 5405, 6Gb RAM, RAID 1 SATA 1 Tb (знаю, что плохо, но на SAS денег нет, тем боллее, что БД это отдельный сервер). Почему такое железо — задача хорошо параллелиться, чем больше ядер, тем лучше. Памяти 20 юзеров * 200-250 Мб (1С и офис её любят) + система. Договоримя, что и настройка/поддержка Windows и Linux — стоит одинаково

Читайте также:  Windows 64 run 32 bit applications

С терминальным сервером под виндовс — всё понятно, вариантов там нет (citrix не предлагать, см. преамбулу). Вопрос только в стоимости, т.к. памяти нам нужно много, то standart edition x32 не подходит, придётся брать на 64 бита. По стоимости получается около:

* 26.000 руб. за Windows Server R2 Standart x64 2003 с 5-ю CAL лицензиями
* 17.000 руб. за 15 клиентских лицензий (CAL, хорошую вещь калом не назовут)
* 70.000 руб. за 20 лицензий для терминального сервера (TS User CAL)

ИТОГО: только за ОС и возможность доступа к голому серверу, без всякого софта — 113.000 руб., значительно больше стоимости самого сервера.

Стоимость Linux = стоимости болванки на которую он записан, но клиентская часть 1С не работает под Linux, надо ставить WINE@Etersoft Network за 5600 руб.

ИТОГО: ОС и софт для запуска бизнес приложений 5600 руб.

Пару слов об WINE@Etersoft… Это не эмулятор виндовс, но предоствляет WinAPI для приложений. Раньше считал “кривым поделием”, но ребята показали завидный прогресс и действительно ОНО работает, то есть позволяет запускать ряд приложений. Проверено на себе.

Но выбор терминальных технологий под *NIX шире чем под Windows, надо выбирать:

* X Window System — классика жанра. Для тех, кто не знаком с терминалогией: X Server — это там, где рисуется картинка, т.е. клиент, а X Client — это там где выполняется приложение, т.е. сервер. Для домашнего ПК, и сервер и клиент работают на одной машине, но ничто не мешает им работать на разных как и было изначально заложено в концепцию X Window System. Преимущества данного решение: минимальные настройки сервера и клиента, всё уже есть в практически любом дистрибутиве. Минусы: не сохраняет сессию пользователя в случае умирания клиентской машины/обрыва связи; любит широкую полосу, через интернет не комфортно работать — только в локальной сети.
* X Window + Nomad. В OpenSuSE 11.1 появилась вкусная фишка Nomad, которая является прокси для X11, и позволяет сохранять сессии и гонять удалённо тяжёлые приложения, типа эффекты рабочего стола compiz. Более того, Nomad позволяет соединяться к X-сам стандартным виндовым rdp-клиентом.
* VNC — и сервер и клиент могут работать как на Linux, так и на Windows, хорош для удалённого управления, как замена RAdmin, но отрисовка экрана довольно медленная, а это будет раздражать пользователей. Но не требователен к полосе.
* NX Nomachine — сильно модифицированный X-протокол, который с одной стороны позволяет работать на тонких линиях, а с другой позволяет сохранять сессию на сервере. Очень похоже на X+Nomad. При этом авторизация клиента на сервере происходит по ssh. Для работы нужен специальный клиент. Открытая и бесплатная версия сервера называется FreeNX.
* XRDP — открытая версия RDP для Linux, клиент или rdesktop или стандартный виндовый клиент. Использует на стороне сервера VNC как бэкенд.

И всё вышеперечисленное — бесплатно!

О настройке собственно терминального сервера под Linux и клиентов для него, во второй части.

з.ы. перенёс в Linux для всех
з.з.ы. отхабракатил

Источник

Сервер терминалов для 1С по протоколу RDP на linux: рекомендации по настройке с учетом опыта реальной эксплуатации

В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации.

Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp — xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.

Небольшое, но важное отступление

В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами).

Читайте также:  Ответы doors для windows

В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) — статья на хабре, статья на infostart.

Использование бекэнда X11Rdp несет в себе несколько минусов:

  • Достаточно долгое время сборки
  • Сложно решить проблему с переключением языков. После переподключения к сеансу переключение языков может перестать работать. Автор регестрировал проблему на сайте разработчиков — гарантированное решение было найдено автором только для бекенда xorgxrdp правкой исходно кода (далее этот метод используется в статье)
  • Скорость отрисовки может оказаться недостаточно быстрой для комфортной работы пользователей

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

В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.

Рекомендации по установке операционной системы

Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ.

Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней.

При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:

  • 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
  • 5 Гбайт: точка монтирования /var
  • 5 Гбайт: точка монтирования /tmp

Данное разбиение — это предпочтение автора с учетом удобства эксплуатации. В любом случае, при планировании дискового пространства необходимо учитывать возможную нагрузку на файловую систему. При использовании файловых баз данных желательно использовать SSD диск(и).

Для сервера необходимо установить статический IP-адрес.

Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:

При активированном firewall открываем порт 22:

Установка и настройка сервера xrdp with xorgxrdp backend

На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу.

Устанавливаем необходимые зависимости:

Создаем каталог для загрузки дистрибутивов:

Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:

Устанавливаем xrdp в систему:

Скачиваем дистрибутив xorg-xrdp бекенда:

Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок. Корректность проверяется созданием сессии — 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию — заново еще раз проверяем.

В терминале присваиваем значения временных переменных:

Делаем замену кода в исходном файле:

Компилируем и устанавливаем в систему xorg-xrdp бекэнд:

Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки [X11rdp] и [Xorg], чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий.

При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе [Globals] меняем значение переменной port=3389 на требуемый.

При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):

После настроек перезапускаем службу

Теперь можете подключиться к серверу через стандартного клиента с windows либо с linux любым клиентом, который поддерживает протокол rdp.

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

После установки желательно проверить, что нормально работает буфер обмена с кириллическими символами в обе стороны. Также можно убедиться, что работает копирование файлов через буфер обмена с русскими символами (это одни из основных проблем, которые были устранены в последних сборках сервера xrdp и которые раньше мешали нормально использовать в рабочей среде сервер терминалов на базе xrdp).

Установка клиента 1С: Предприятие версии 8.3.9

В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows.

Устанавливаем дополнительные компоненты, необходимые для корректной работы:

Читайте также:  Как увеличить количество подключений windows

Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:

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

Если используется сетевой hasp-ключ, то пропишем параметры поиска:

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

Корректная настройка с временными файлами, создаваемыми платформой 1С

В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет — выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл.

Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp.

Редактируем общесистемную маску. Правим файл:

в нем меняем значение на:

Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу).

Меняем права на папку tmp

Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix.

Вариант решения подобной проблемы применительно 1С описан в статье.

Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0

Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии — после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки!

Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);» на «Кат = Новый Файл(ПутьДляВыгрузки);» в «Обработка.ОбщиеОбъектыРегламентированнойОтчетности.Форма.НастройкаПараметровСохраненияРегламентированногоОтчета.Форма.Модуль». К сожалению, для таких изменений придется конфигурацию снимать с поддержки.

Рекомендации по организации обмена файлами и печати с удаленных офисов

В случае, если с сервером работа ведется только в рамках локальной сети, проблем никаких нет — samba работает хорошо.

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

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

Для печати на удаленные принтеры удобно использовать схему построения виртуальной частной сети, в этом случае решается проблема даже с теми удаленными точками, на которых нет фиксированного IP-адреса. Доступ к принтеру будет доступен по IP-адресу внутри VPN-сети. Как вариант, предлагаю использовать NeoRouter Free. Настройка данного продукта выходит за рамки данной статьи.

Возможные альтернативы

К сожалению, стабильно работающих бесплатных альтернатив на текущий момент я не вижу. Был достаточно успешный опыт использования связки OpenSuse 11.2+FreeNX (от etersoft) + WineEtersoft (купленный) для работы с конфигурациями на базе платформ 8.1, но на текущий момент такая связка для новых установок потеряла актуальность — не все пакеты можно найти для установки, на более свежих версиях ОС Linux и конфигурациях 1С скорость отрисовки ужасная.

Было достаточно много времени потрачено на тестирование других продуктов типа x2Go, но там также есть много НО: при подключении со свежих версий ОС типа Windows 8, Windows 10 есть артефакты при отрисовке изображения и т.п. В общем, если для административных функций альтернативные решения еще как-то подходят, то для реальной работы с решениями фирмы 1С не очень.

Заключение

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

В целом же при желании сэкономить на лицензиях Windows можно обойтись и решениями на базе LINUX, тем более в последнее время разработка XRDP идет ударными темпами. В марте этого года планируется выпуск версии 0.9.2 — это следует из опубликованных Release notes.

Источник

Оцените статью