Выбор RDP клиента для Linux

Одно из первых и самых проблемных вопросов при внедрении Linux в офисе, это 1С и другие службы, которые без Windows практически не могут. Что касается 1С, то есть варианты настройки и под Linux и под wine и много других способов. Но есть и извращения, когда 1C работает с базой GT.M (если кто не слышал почитайте кошмары на ночь). В таком варианте базы данных, способов запустить 1С из под Ubuntu не нашлось, и поэтому пришлось оставить бухгалтерию в терминалах Windows.

А вот клиента терминального RDP подключения мы сегодня рассмотрим.

Скажу сразу, что выбор был большой, рассматривались различные варианты, но в финал вышли двое.

Remmina VS Rdesktop

Важные особенности задачи для обоих кандидатов: проброс usb портов для сканера штрих-кодов, для принтера чеков, проброс принтеров в целом, и возможность пробрасывать usb-ключи, а так же общий буфер обмена, и меньше "возни" для конечного пользователя. То есть нажал на кнопку, и Мария Ивановна, которой уже "немного за 30", работает в терминале с 1С, при этом ей ничего не нужно выбирать.

Remmina
Remmina

Remmina - очень удобный инструмент для любителей окон. Своя GUI (графическая оболочка), настройка "галочками". Большой список возможных подключений (RDP, VNC, SSH и т.д.). Есть и одно, на мой взгляд, самое важное преимущество remmin'ы - это свободное масштабирование окна подключения, чего к сожалению нет rdesktop.

Масштабирование окна терминального подключения
Масштабирование окна терминального подключения

Так же в Remmine хорошо организованная GUI, что не мало важно для Linux программ. То есть это и список сохранённых удаленных подключений, фильтры списков, и многое другое.

Из минусов работы с remmina выделить можно парочку проблем. В процессе тестирование Remmina (в разных графических оболочках) постоянно закрывалась по непонятным причинам. Никаких логов об этом не было, вообще ничего не удавалось найти. "Хлопалась" просто так, произвольно, в любой момент времени. Проработает 2 часа, 4 часа, 1 день - а потом оп и "хлоп" - Remmin'ы нет. Однажды удалось найти одно из причин следствия такого поведения. При запуске remmina из терминала, работоспособность последней оказалась стабильнее. Однако рано радовались, это лишь так показалось.

Вторая сугубо личная особенность сложности работы remmin'ы - это её скованность. То есть, если нужно будет что-то ещё при решении сложных задач (подключить LPT-порт к примеру), то remmina ограниченна возможностями, которые вложил в неё автор. В следующих статьях я подробно это объясню.

Rdesktop в своей красе оказался более стабильный, по сей день (год+) не было не единого произвольного закрытия программы, даже с техническими "извращениями".

Зато в работе с rdesktop необходимы не малые усилия и знания. Для пользователей с разными мониторами, разрешениями экрана, кол-вами мониторов на одном ПК и не умеющими нажимать сочетания клавиш ctr+alt+enter, пришлось писать дополнительные скрипты для подключения.

Скрипт определял текущий монитор (на котором запускается RDP подключение), разрешение экрана, отнимал небольшое кол-во пикселей сверху/снизу для панели задач в xfce, определял принтер по умолчанию для проброса, и запускал окно для покдлючения к виртуальным средам, которое в принципе нравилось пользователям.

Скрипт подключение на rdesktop (может кому пригодится)

#!/usr/bin/env bash
OFFSET_RE="\+([-0-9]+)\+([-0-9]+)"
# Вычисление текущего монитора на котором запускается скрипт подключения
eval "$(xdotool getmouselocation --shell)"
monitor_index=0
while read name width height xoff yoff
do
if [ "${X}" -ge "$xoff" \
-a "${Y}" -ge "$yoff" \
-a "${X}" -lt "$(($xoff+$width))" \
-a "${Y}" -lt "$(($yoff+$height))" ]
then
monitor=$name
break
fi
((monitor_index++))
done < <(xrandr | grep -w connected |
sed -r "s/^([^ ]*).*\b([-0-9]+)x([-0-9]+)$OFFSET_RE.*$/\1 \2 \3 \4 \5/" |
sort -nk4,5)
# Ну и соответственно сигналить при ошибках
if [ ! -z "$monitor" ]
then
ws=$(xrandr | grep $monitor -C 5 | grep '*' | awk '{print $1}' | cut -d 'x' -f1) # Создаем окно по размеру экрана
hs=$(xrandr | grep $monitor -C 5 | grep '*' | awk '{print $1}' | cut -d 'x' -f2)
defprn="$(lpstat -d|cut -d':' -f2|xargs)" # Выбираем принтер по умолчанию
# Подключаемся
rdesktop -u $USER -r scard -r printer:"$defprn" -g $ws\x$(($hs-50)) -T "Терминал" -z -r clipboard:PRIMARYCLIPBOARD 192.168.0.1
exit 0
else
echo "Ошибка, обратитесь в службу технической поддержки" >&2
exit 1
fi

В общем выбор остался за Rdesktop, но это лично моё мнение, и надеюсь remmina будет развиваться. Кстати, последняя очень хороший инструмент для дома, для "блондинок" или домохозяек.

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