X11 forwarding что это
linux-notes.org
Настройка X11 forwarding используя ssh в Unix/Linux
X11 forwarding — это механизм, позволяющий отображать на локальном клиентском компьютере графические интерфейсы X11 программ, запущенных на удаленном Unix/Linux сервере. SSH имеет возможность безопасного туннелирования X11 соединений, так что сеансы X11 forwarding-а шифруются и инкапсулируются. Если вы хотите настроить X11 forwarding через SSH, то данная тема именно для вас.
Установка ПО для настройки X11 forwarding используя ssh в Unix/Linux
Для X11 forwarding-а на удаленном сервере не требуется полная система X11. Однако, серверу необходимо установить xauth. xauth — это утилита, которая поддерживает конфигурации Xauthority, используемые сервером и клиентом для аутентификации сеансов X11. Чтобы установить xauth, выполните следующие действия на удаленном сервере.
Установка xauth в Debian/Ubuntu
И так, выполняем команду:
Переходим к настройке.
Установка xauth в CentOS/RedHat
И так, выполняем команду:
Установка xauth в Fedora
И так, выполняем команду:
Установка xauth для других Unix/Linux ОС
Можно создать docker контейнер и запустить его.
Переходим к настройке.
Настройка X11 forwarding используя ssh в Unix/Linux
И прописываем (приводим к виду):
Так же, можно прописать:
Перезапуск SSH сервера:
Мой файл выглядит следующим образом:
Если используете Vagrant, то внутри его, можно пробросить следующие опции:
Ну и далее запускаем все это дело.
Использование X11 forwarding через ssh в Unix/Linux
На локальном хосте должна быть установлена система с X11, чтобы отображать удаленные программы. Для того чтобы выполнить форвардинг, выполните:
После входа в систему вы можете запускать любую X11 программу на удаленном сервере, как обычно, и ее отображение будет отображаться на локальной клиентской машине.
Можно еще опции, передавать через коммандную строку:
Безопастность при использовании X11 forwarding через ssh
Обычно, не рекомендуется всегда работать с «ForwardX11 yes». Поэтому, если вы хотите использовать свои SSH-соединения с пвыщенной безопасностью, лучше всего сделать следующее:
Вот и все, статья «Настройка X11 forwarding используя ssh в Unix/Linux» завершена.
А поясните про X11 forwarding?
Запущенный, например, gedit выжирает 10 мегабитный канал и дико тормозит. Так и должно быть или Я что-то не правильно настроил?
ssh_config на сервере:
ssh_config на клиенте:
вроде сейчас в моде гонять целиком битмапы. 🙁
Смени тему GTK на что-нибудь попроще.
Из личного опыта (часто доводится пользоваться):
2. У меня все тормоза при отрисовке пропадают, когда отключен какой либо композитинг на соединяющейся машине (т.е. той, за которой я сейчас нахожусь и на дисплее которой будет отрисовываться картинка)
У голого x11-forwarding указатель мыши точнее позиционируется, и нет необходимости рисовать весь рабочий стол удаленной машины для отрисовки морды одной аппликухи (к примеру, тот же скайп с удаленной машины вполне уместно смотрится на моем десктопе).
При канале 2 и более мбит потерь в скорости и отзывчивости не замечено
С другой стороны VNC перерисовывает только изменившиеся участки и может «пропускать кадры», а X11 синхронный, пока одна прорисовка не закончится (всего окна из-за изменения одного пикселя) следующее действие ждет — отсюда и пресловутые тормоза.
Да это чисто в академических интересах, просто удивило, что забивает весь канал и работает еле как.
17 лет назад гонял doom в 256 цветах с «сервака» на Intel на клиентскую машину на Sparc. Тормозов не было.
Да это чисто в академических интересах, просто удивило, что забивает весь канал и работает еле как.
А вот проксирование: кеширование, сжатие графики, рубка картинок на части это уже следующий уровень, который X11 не оговаривает (это не его дело) Если ты хочешь недалеко от идеологии X11 отходить, то нужен (Free)NX. Есть прокси, которые реализуют VNC, RDP.
Со сжатием разницы особо не заметил. Про остальное почитаю, спасибо.
X11 forwarding что это
X Windows System использует клиент-серверную модель. X Server обменивается сообщениями с различными клиентскими программами. Сервер принимает запросы на вывод графики (окон) и отправляет обратно пользовательский ввод (от клавиатуры, мыши или сенсорного экрана).
SSH в режиме X11Forwarding перенаправляет трафик удаленного X Client’a локальному X Server’у. Окно приложения отображается на локальном рабочем столе, пока вся логика выполняется на удаленном компьютере.
Настройка удаленной машины
В некоторых дистрибутивах (например, Gentoo) перенаправление трафика X Window System по сети отключена. Параметр X11Forwarding в файле /etc/ssh/sshd_config управляет этим режимом:
Если режим был отключен, включите его и перезапустите ssh сервер:
Подключение и запуск приложения
Для подключения к удаленному компьютеру выполните команду:
Запуск приложения производится без дополнительный опций и параметров. Например, команда:
запустит файловой менеджер nautilus и покажет его на экране.
Плюсы и минусы
Плюс: Логика приложения выполняется на удаленном компьютере. Ресурсоемкие задачи обрабатываются на другом компьютере.
Плюс: Работа с документами, просмотр видео, прослушивание музыки без необходимости копирования на локальный компьютер.
Плюс: Доступ к ресурсам локальной сети на удаленной машине.
Выводы
Все известные мне Unix системы используют SSH и X Window System. Что в свою очередь стирает расстояния и позволяет решать широкий круг задач.
Сетевые соединения X11
Есть две технологии в ИТ, которые казалось должны были исчезнуть на рубеже прошлого века, но их живучесть и удобство раз за разом отодвигает их уход со сцены. Речь идет об IPv4 и X11. Если первый из них практически во всех аспектах уступает IPv6, то преимущества Wayland, как технологии над X11 очевидны не всем. Wayland вовсе не универсален, как X Windows System, он намного более прост. Это дает ему ряд преимуществ по сравнению с иксами, но в этом же кроются его недостатки.
Если говорить о преимуществах, то это в первую очередь простота реализации и долгожданное избавление пользователей графической среды Linux от таких артефактов перерисовки, как разрывы изображения, a․ k․ a․ tearing. С этим особенно часто сталкиваются обладатели видеокарт NVidia. Хватает и недостатков и противники замены X-сервера напирают на гибкость использования сетевых возможностей в различных сценариях.
As mentioned, X is essentially a networking protocol with graphical displaying capabilities.
▍ Сетевая структура взаимодействий X-сервера
Наиболее распространенным IPC, т․ е․ способом взаимодействия между процессами, X-клиента и X-сервера, являются сокеты. Их роль в предоставлении API связи с использование TCP/IP, а также сокетов домена Unix. Помимо сокетов клиент и сервер для коммуникации могут также использовать иные каналы IPC, например MIT Shared Memory Extension.
Доменные сокеты Unix (от англ. Unix Domain Sockets, UDS) являются POSIX-механизмом IPC, с помощью которого различные процессы ОС могут взаимодействовать друг с другом. Такие сокеты эффективнее локальных TCP/IP соединений, так как не требуют дополнительных байтов в заголовке протокола. Подобно сокетам TCP/IP, доменные сокеты Unix поддерживают надёжную потоковую передачу данных с помощью SOCK_STREAM. Они также могут работать в режиме упорядоченной ( см․ SOCK_SEQPACKET) и неупорядоченной ( см․ SOCK_DGRAM) передачи датаграмм.
Рис. 1 Сетевое взаимодействие между клиентом и сервером X с помощью UDS.
UDS используют файловую систему ОС в качестве адресного пространства имён (например /tmp/my_xapp ), сами сокеты в ней всего лишь inode, а процессы обращаются к сокетам, так же, как к файлу. Однако обмен данными в активном соединении использует не файловую систему, а только буферы памяти ядра.
Рис. 2 Сетевое взаимодействие между клиентом и сервером X поверх TCP/IP.
Количество таких интерфейсов определено константой NUMTRANS в файле X11/Xtrans/Xtrans.c.
Таблица Xtransports[] определена в том же самом файле и содержит 10 элементов, таким образом NUMTRANS ≤ 10.
Проследив цепочку до системного вызова socket() находим такую последовательность транспортных процедур.
▍ Взгляд изнутри трафика между клиентом и сервером X
Запустим простейшую иксовую программу Xclock и проверим как все это работает на практике.
Рис. 3 Установка параметров соединения в сессии X11.
Рис. 4 Сетевой след соединения X11 в WireShark.
То же самое и во всех подробностях можно увидеть в tshark в текстовом формате. Так выглядит клиентский запрос X11 в сторону сервера.
Пакет с ответом со стороны X-сервера совсем не так лаконичен, в нем указаны все необходимые детали для форматирования графического вывода на экран.
▍ Удаленное подключение к X-серверу по ssh
Переходя от теории сетевых взаимодействий X Window System к практике, рассмотрим, как запустить графическое приложение на уделенном X-сервере при подключении по ssh.
/.Xauthority y. Если все нормально, то файл уже создан и проверка показывает на наличие MAGIC COOKIE.
Рис. 5 Собственно xclock, значит удаленные иксы настроены и работают.
Я стараюсь по мере возможности тестировать сеанс Wayland при каждом новом релизе KDE Plasma, несмотря на многочисленные улучшения с каждым разом, на версии kde-apps-21.04.3 работать можно лишь на Plasma-X11. В чем бы не состояли преимущества Wayland, до тех пор пока в терминале зависает команда man, хаотично прыгают элементы ниспадающего меню и блуждает внешний монитор, старый и добрый X Window System остается вне конкуренции. Надеюсь так не будет продолжаться долго.
Проба пера для запуска приложений через X-forwarding на сервере в интернете
Привет, хабр!
Сегодня мы хотели бы поделиться своими наработками и гипотезами относительно применения старых добрых идей к современным тенденциям Web, в частности, Cloud Computing. Вы, наверное, и раньше замечали нехватку некоторой мощности или иных параметров вашего персонального компьютера и уж тем более перед каждым пользователем стоит вопрос о безопасном использовании сети Интернет для своего компьютера и своих же данных. Для пользователей Windows также не дает покоя проблема с вирусами, которые постоянно норовят просочиться на компьютер при посещении веб-сайтов и чтении почты. Предлагаем погрузиться немного в будущее и предоставить некоторый взгляд со стороны на удаленный запуск приложений на веб-сервере через X-forwarding.
Почему мы решили вам это предложить
Вам предоставляется возможность запуска некоторых приложений с удаленного сервера. Цель простая — мы даем вам «поиграться» с приложениями, которые запущены где-то не на вашем компьютере для анализа работоспособности и пригодности использования на постоянной основе.
Необходимый софт
Для того, чтобы войти на наш сервер и у Вас Windows, потребуется Xming (http://sourceforge.net/projects/xming) и OpenSSH для Windows (http://sshwindows.sourceforge.net/). В другом случае (Linux, MacOSX), устанавливать ничего не требуется. Для соединения с сервером по SSH также можно использовать PuTTY. Для ускорения процесса, можно скачать установщики для этих программ в архиве с нашего сервера: http://datapoliten.ru/files/f7/ab/f7aba2ac04b64ba3b40679175e367054/xming-sshwindows.zip. Порядок установки не важен, никаких специальных настроек не требуется.
Процедура входа
С целью предосторожности (мы не хотим пускать кого попало на наш сервер), мы не даем анонимный доступ для запуска приложений. Чтобы получить логин с паролем для входа на сервер, пожалуйста оставьте комментарий к этой теме, либо напишите личное сообщение, мы постараемся выслать Вам пароль в течение нескольких минут. Если Вы не являетесь пользователем Хабра, но у Вас есть знакомые на Хабре, которые могут это подтвердить — мы также выдадим Вам логин с паролем.
Linux или MacOS
В случае, если у Вас Linux или MacOS X, то для входа на наш сервер достаточно ввести следующую команду в консоли (у пользователей MacOS X сервер X11 запустится автоматически):
для запуска удаленного firefox и OpenOffice.org соответственно.
Если Вам потребуется ввод на русском языке в запущенном удаленном приложении (или каком-то другом), может быть достаточно просто переключить системную раскладку на своем компьютере. Если это не помогает, пользователям MacOS X можно посоветовать:
1) зайти в настройки X11.app и поставить в закладке «вход» галочку «следовать системной раскладке клавиатуры»
2) если пункт 1) не помогает, поставить более новую версию X11 с сайта XQuartz: http://xquartz.macosforge.org/trac/wiki (к сожалению, установка требует скачивания порядка 80 Мб и выхода из учетной записи)
Если Вы — пользователь Linux, я, к сожалению, не могу ничем Вам помочь. Возможно, Вы найдете ответ в комментариях уважаемых Хабрапользователей.
Windows
Если вы скачивали всё отдельно, то шаблон для XMing можете также скачать с нашего сервера: http://datapoliten.ru/files/f7/ab/f7aba2ac04b64ba3b40679175e367054/remote-login.xlaunch.
Для переключения раскладки настроена клавиша Caps Lock, по умолчанию раскладка английская.