X2Go — это средство удалённого доступа к графическому рабочему столу и отдельным приложениям, оптимизированное для работы в условиях ограниченной пропускной способности сети. Система использует протоколы, основанные на технологии NX, и обеспечивает передачу графического интерфейса через зашифрованный канал SSH, сочетая механизмы сжатия, кеширования и перенаправления ввода-вывода для снижения задержек и трафика. Архитектура X2Go разделяет клиентскую и серверную части: на сервере запускается демон и сессии X-сервера, а на клиенте — программа, инициирующая подключение и отображающая удалённый рабочий стол.
Проект возник как развитие идей и технологий, связанных с NX и X11 forwarding, с целью предоставить удобный и производительный инструмент для удалённой работы на Unix-подобных системах. X2Go поддерживает несколько типов сессий, включая полноценные рабочие среды и публикацию отдельных окон приложений, а также обеспечивает управление сессиями (подключение и отсоединение без прерывания рабочих процессов). Реализация ориентирована на совместимость с распространёнными дисплейными менеджерами и окружениями рабочего стола.
- Передача графики по SSH — безопасность соединения обеспечивается использованием SSH-туннеля.
- Оптимизация для низкой пропускной способности — применение сжатия, кеширования и протокольных улучшений на основе NX.
- Поддержка отдельных приложений — возможность публикации отдельных окон без полного рабочего стола.
- Сессии с отсоединением/повторным подключением — поддержка «многосессионности» и возобновления сеансов без потери состояния.
- Кроссплатформенные клиенты — клиенты доступны для различных операционных систем, обеспечивая доступ с настольных и портативных устройств.
- Аутентификация и безопасность — использование механизмов SSH для аутентификации и шифрования трафика.
- Поддержка файлового перенаправления — возможности пересылки файлов между клиентом и сервером в рамках сессии.
- Интеграция с локальными дисплейными системами — взаимодействие с X-сервером и популярными окружениями рабочего стола на серверной стороне.
- Масштабируемость и настройка производительности — параметры, позволяющие подбирать компромисс между качеством и использованием полосы пропускания.