Remmina в Debian 9

Есть очень удобный клиент удаленного подключения для ОС Linux – remmina. Удобен он тем, что позволяет сохранять подключения по ssh, RDP, VNC etc со всеми настройками и открывать их одним кликом:

Но в Debian 9 с этой программой небольшая проблемка. В stable ветке её просто напросто нет в репозитории, а в testing она работает не правильно из-за другой версии библиотеки vte3, которую поменять нельзя, т. к. это поломает гном… 🙂
Но выход есть всегда. И он описан на гитхабе [1].
UPD: лучше ставить из экспериментальной ветки Debian, читайте ниже.
Вначале устанавливаем Snap:
aptitude install snapd
Далее устанавливаем саму remmina (–edge говорит, что нужно установить последнюю версию, которая нам и нужна, без этого префикса установится та же, что и в testing Debian и которая не работает):
snap install remmina –edge
Также можно добавить некоторые расширения:
snap connect remmina:avahi-observe :avahi-observe
snap connect remmina:cups-control :cups-control 
snap connect remmina:mount-observe :mount-observe
Теперь нужно как-то по удобнее запускать remmina ибо по-умолчанию она в gnome shell не интегрируется. Для этого копируем remmina.desktop:
aptitude install locate
updatedb
locate remmina.desktop
cp /snap/remmina/161/meta/gui/remmina.desktop /usr/share/applications/

Также необходимо отредактировать этот файл, прописав там правильный путь к бинарнику:
Exec=/snap/bin/remmina
Вообще структура каталогов для snap в Debian выглядит следующим образом:
/snap/
├── bin (здесь лежат бинарники программ, установленных через snap)
├── core (базовые файлы snap)
└── remmina (а это папка с файлами приложения, в данном случае установлена только remmina, а если будут еще приложения – они будут здесь также)
Перезаходим в gnome shell – теперь remmina должна появиться в Activities.
UPD:
Как показала практика, remmina из snap глючит. Версия 1.2.х есть только в ветке experimental и чтобы её установить идем на страницу пакета. Здесь внизу в секции Download выбираем нужную архитектуру и копируеи ссылку на зеркало, например – amd64http://ftp.us.debian.org/debian/pool/main/r/remmina/remmina_1.2.0-rcgit.20-1_amd64.deb
Заходим в консоль, загружаем пакет по скопированной ссылке и устанавливаем его:
wget http://ftp.us.debian.org/debian/pool/main/r/remmina/remmina_1.2.0-rcgit.20-1_amd64.deb
dpkg -i remmina_1.2.0-rcgit.20-1_amd64.deb
Будет ругаться на неудовлетворенные зависимости примерно так:
Selecting previously unselected package remmina.
(Reading database … 157173 files and directories currently installed.)
Preparing to unpack remmina_1.2.0-rcgit.20-1_amd64.deb …
Unpacking remmina (1.2.0-rcgit.20-1) …
dpkg: dependency problems prevent configuration of remmina:
remmina depends on libssh-4 (>= 0.6.1); however:
Package libssh-4 is not installed.
remmina depends on remmina-common (= 1.2.0-rcgit.20-1); however:
Package remmina-common is not installed.
dpkg: error processing package remmina (–install):
dependency problems – leaving unconfigured
Processing triggers for gnome-menus (3.13.3-9) …
Processing triggers for desktop-file-utils (0.23-2) …
Processing triggers for mime-support (3.60) …
Processing triggers for man-db (2.7.6.1-2) …
Errors were encountered while processing:
remmina
В моём случае не хватало двух пакетов: libssh-4 и remmina-common. Ищем указанные пакеты на сайте пакета remmina experimental в секции Other Packages Related to remmina и помеченные dep, загружаем их описанным выше образом через wget и устанавливаем с помощью dpkg. Также можно установить плагины для rdp и vnc – они есть там в списке.
Радуемся нормальной реммине.

  1. https://github.com/FreeRDP/Remmina/wiki
  2. https://snapcraft.io/docs/snaps/structure
  3. https://packages.debian.org/en/experimental/remmina

Динамический порт (Ephemeral port)

Динамический порт, или Эфемерный порт — временный порт, открываемый соединением межсетевого протокола транспортного уровня (IP) из определённого диапазона программного стека TCP/IP.
Т. е. это локальный порт, присваемый TCP-соединению операционной системой. Например, вы подключаетесь по ssh к удаленной машине на порт 22. Это удаленный порт, а для обмена данными нужен еще локальный порт, который присваивается ОС автоматически, причем случайным образом из определенного диапазона. Этот диапазон можно узнать в ОС Linux посмотрев файл:
cat /proc/sys/net/ipv4/ip_local_port_range
Изменить этот диапазон можно командой (например, нам нужен диапазон 49152..65535):
echo “49152 65535” > /proc/sys/net/ipv4/ip_local_port_range