Достаточно давно я наткнулся на крайне интересную вещь — x2go.
По сути своей, это очередной способ поиметь себе remote desktop с linux-машины. Вот только в этот раз — способ достаточно шустрый, быстрый, работающий. А в нашем случае полезно ещё и то, что он туннелирует из коробки весь трафик через ssh.
В игры поиграть не получится, само собой, но вот Youtube я через него вполне себе смотрел )
Из приятных вкусностей — передача звука, принтеров, ресайз окна (если не используется родной системный X-сервер), наличие толкового клиента под windows, авторизация по ssh-ключам, возможность отключиться от сессии и оставить там всё запущенным. Традиционно, под виндой работает не всё (в частности, не удалось пошарить каталог и принтер), но в целом впечатления положительные. Можно комфортно работать на удаленном сервере в Голландии с машины в России.
Зачем это нужно, рассказывать, думаю, не нужно. Скажем так, для запуска Firefox с ботом для браузерной игры. Или для оплаты кредитками из недоверенной сети.
Собственно, покупаем любую виртуалку/делаем её сами в нормальной стране. Помним, что для нормальной работы Firefox/Iceweasel нужно от гигабайта RAM (иначе оно по OOM падать будет). Логинимся на неё по ssh, начинаем развлекаться.
Мануал актуален для текущих версий Ubuntu/Debian (debian 7+, ubuntu 12.04+) — соответственно, нужна виртуалка с ними. На OpenVZ из-за модуля ядра работать не будет, скорее всего.
Для начала создадим пользователя, под которым мы в дальнейшем будем использовать x2go:
По ходу дела у нас спросят 2 раза пароль, вводим какой-нибудь достаточно сложный. Остальное можно оставлять пустым.
Далее мы зашифруем домашний каталог пользователя. Ставим нужный софт:
Подгружаем модуль ядра для шифрования:
Чтобы он загружался при загрузке системы в файл /etc/modules нужно добавить строку:
Шифруем домашний каталог пользователя:
Проверяем, что оно зашифровалось:
Access-Your-Private-Data.desktop README.txt
Логинимся нашим пользователем по ssh, проверяем, что он может корректно работать со своим домашним каталогом:
Если всё работает нормально, то запускаем команду:
В ответ вам выдадут ключ, при помощи которого можно будет восстановить зашифрованные данные, если забудете основной пароль. Мне, в общем-то, ни разу не пригодилась =) Но если вы её решите записать — сделайте это на бумажку, которую будете хранить дома в столе без всяких комментариев на ней.
Помните, что файлы в домашнем каталоге будут доступны для чтения всем пользователям (особенно, руту), когда ваш пользователь залогинен в системе. Поэтому, если у вас есть причина шифровать домашний каталог — то делайте это всё же на виртуалке, к которой никто не имеет доступа кроме вас. К тому же, если вы положите в зашифрованный домашний каталог файлы (например, сайта), а потом выйдете из системы — то эти файлы перестанут быть доступны.
Ну, собственно, можно начинать ставить x2go. Сначала настраиваем сервер. Для начала напишу про Debian Wheezy. Создаём файл /etc/apt/sources.list.d/x2go.list с таким содержимым:
Добавляем ключ репозитория в систему:
Для убунты. Добавляем ppa x2go в систему:
Ставим нужный софт для запуска удаленного рабочего стола. Я буду ставить xfce (он вполне неплохо работает удаленно), если у вас много экспы — ставьте что угодно. Главное, не Unity и не KDE (тормозит-с, ибо им видюха полноценная нужна).
Для убунту лучше сразу сделать так:
Ещё раз повторюсь, что ставить всё это на сервер, где крутится ещё что-то крайне не рекомендуется. Покушает много места и памяти.
В общем-то, сервер на этом готов. Ну можно поставить туда ещё firefox/iceweasel, если уже нет. Или jabber-клиент. Или skype-клиент (правда, голосом общаться не получится, наверное). Дальше ставим/настраиваем клиент.
Для винды нужно просто пойти сюда и ткнуть там ссылку «mswin», потом поставить клиент.
Для убунты 12.04+ и Debian 7+ можно воспользоваться командой (это уже на десктопе, если кто не понял):
Правда, из репозиториев приезжает достаточно старая версия (хотя и работающая), поэтому я рекомендую повторить на десктопе те же шаги, которые вы делали на сервере (создать файл /etc/apt/sources.list.d/x2go.list и так далее), только ставить один x2goclient, а не x2goserver.
Так же нужно знать, что на linux-ах x2goclient приносит за собой и запускает openssh-server. Он нужен для работы x2go-клиента, но ему не нужно слушать внешние интерфейсы (а в таком случае ssh-сервер будет недоступен всем остальным, кроме вас). Поэтому, перевесим его на localhost:
Теперь можно смело запускать x2go-клиент. В нём топаем в менюшку Session -> New Session.
Меняем значок на клевую картинку, создаём сессию для подключения.
В поле Host пишем ip-адрес или dns-имя нашего сервера.
В поле Пользователь — имя пользователя, которого мы создавали (и которому шифровали папку).
SSH порт — 22 стандартный, если меняли — сами знаете, что написать)
Если вы знаете про ssh-ключи, то я сильно рекомендую использовать для авторизации в x2go именно ключи (впрочем, пароль там сохранить негде, так что его не сопрут. Разве что кейлоггерами).
Тип сессии — XFCE, если вы ставили xfce. Если что-то другое — сами выберите нужное ;)
Далее переходим во вкладку Соединение. Там выбираем ADSL, метод сжатия 16m-jpeg, Качество — 9.
Во вкладке «Установки» выключаем звук и принтер (звук на арендованных виртуалках работать не будет, скорее всего), если они не нужны.
Экспорт каталогов — по вкусу.
Усё, жмем подключиться, вводим пароль от пользователя/ключа, наслаждаемся. Если просто закрыть окно x2go — то сессия останется висеть в фоне. Если явно нажать выход в XFCE — то сессия завершится. Только не забывайте, что если вы не завершите сессию, то файлы в домашнем каталоге останутся незашифрованными для рута.
После первого логина в XFCE нужно добавить несколько апплетов на панель (пкм по панели -> Panel -> add new item). Нужно добавить Actions buttons (чтобы можно было делать logout), и Keyboard layouts. В настройках последнего нужно будет настроить клавиши для переключения раскладки и добавить вторую раскладку, если нужна.
Ещё полезная фича для хомяков — запуск отдельного приложения по x2go. Выбираем тип сессии «Приложение», Команду/исполняемый файл и логинимся. Такие приложения выглядят под убунтой достаточно нативно (особенно если настроить внешний вид на стороне сервера), вот только при запуске браузера таким способом у меня иксы упали =) Остальное запустилось нормально.
Оно работает шустрее чем, скажем, x11vnc?
Да, конечно.
Иначе зачем мне бы про неё писать)
Попробуем-с тогда. А то x11vnc не очень шустрый, достал уже :)
Давай) Отпишись потом сюды, как оно тебе.
Ну и качество покрути, если медленно будет.
С freenx по скорости не сравнивали? Судя по сообщению на сайте технологии похожие.
А это и есть примерно одно и то же, только X2Go с человеческим лицом сделан. Ну и ключи меня покорили у него, конечно.
Есть правда разница в районе того, что во FreeNX с 2008-го года никто ничего не коммитил, а технологию ещё пилить и пилить.
Ок, надо глянуть будет. Меня в принципе freenx устраивает по скорости, все равно проблема комфортной удаленки упирается в отсутсвие нормальной 3d акселерации на kvm виртуализации, поэтому java приложения и тот же хром подтормаживают
xpra есть еще — вроде бы аналог, с простыми командами.
https://wiki.archlinux.org/index.php/Xpra
Вот только очень медленная и глючная эта xpra, пробовал я её)
Автор стать напиши на почту на пожалуйста
Ато не понимаю, как запустить отдельно программу и как запустить и можно ли одновременно делать несколько сессий с одного ПК ? И почему в windows client не варианта xfce ?
Это говно требует бэкконекта на клиенте. А у меня нет прав на запуск серверов на клиенте. Почему нельзя обойтись одним исходящим соединением?
Ну не нравится, не используйте, в чём проблема?
Использую x2go уже несколько месяцев. Впечатления положительные. Однако, как выяснилось, сессии x2go не очень надежные. Они могут «замораживаться», «прерываться» и «выключаться» без видимых на то причин.
Поэтому, чтобы обезопасить себя от внезапных падений, я открываю некоторые программы в сессии xpra.
Это позволяет избежать нежелательного закрытия программ и присоединять их заново к сессии x2go.
Этот путь имеет свои недостатки. Два недостатка:
— буфер обмена, при использовании java-приложений работает некорректно (http://xpra.org/trac/ticket/735 — смотреть последние комментарии).
— xpra работает медленно. Это вызывает некоторое неудобство при использование приложений которые запущены в сессии xpra.
При использовании java-приложений в сессии x2go — наблюдается эффекты неправильного рендеринга графического интерфейса этих приложений (серые блоки, частичная прорисовка, отсутствие букв в словах). Так же, из-за использования java-приложений, сессия x2go имеет привычку «замораживаться» и не всегда она восстанавливается. На дню — раз 10-15 сессия падает, зависает и по-разному бывает, иногда сразу восстанавливается иногда не может соединится с x2go-сервером.
Вот список баг-репортов на эту тему:
https://www.mail-archive.com/x2go-dev@lists.x2go.org/msg01205.html
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=653
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=655
ps: Если кто-то сталкивался с подобной проблемой и знает как её решить, пожалуйста, дайте знать!
Смежный баг-репорт на тему проблем x2go и java-приложений:
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=291
В самом конце Vysserk3 рекомендует вписать такую строку в конфиг запуска eclipse (насколько я понял идет речь о проблеме x2go и eclipse):
-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
Может это и есть решение? Кто ни будь понимает что это? Как эту строчку перенести на другие java-приложения (В моем случае: PHPStorm)
Странно, я x2go использую, чтобы по ipmi-ям шастать, вроде всё нормально.
Да у меня тоже нормально, если не включать java-приложение, а именно PHPStorm. Может что-то в vmoptions поменять?
Сейчас попробовал обновить phpstorm. Может это что-то даст.
Всем привет. Использую x2go с awesome wm, при подключении к сессии не работает клавиша win, кто с таким сталкивался?
Что значит «не работает»?
Биндинги-то правильные?
Правильный способ диагностики — запустить xev, навести мышу в новое окошко и потыкать winkey. Нужно посмотреть — передаётся ли xev-у keycode. Если не передаётся — проблема, вероятно, с настройкой модели клавиатуры (у меня вон валяется на столе без winkey) или действительно с самим x2go.
Если передаётся — то нужно разбираться с биндингами.
2inkvizitor68sl, в awesome данная клавиша является основной в хоткеях. Проверяю по твоему способу, предварительно запустил setxkbmap -print -verbose 10 на локальном X, выдал модель клавиатуры pc104, указал ее в настройках сессии (проверил в x2go выдает ее).
Дальше запускаю xev на локальном X, на данной клавише keykode 133, когда в x2go keykode 115 , глупый вопрос, но дальше как-быть? Спасибо.
pc105/ru модель клавиатуры попробуйте
115 — это > или <
Добавлю еще ссылку на баг-репорт, связанный с проблемами x2go и java-приложениями jetbrains (Intellij IDEA, PhpStorm)
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=645
Установил x2go на хubuntu-desktop 14.04
возникла следующая проблема при подключении клиентом, пропадает раскладка клавиатуры, т.е. английская есть, а русской нет. кто-нибудь сталкивался, как решили?
Вопрос: как установить x2go на телеприставку Aura HD?
Вопрос — нахуа =)
В целом — там древний линукс, пробовать собрать make-ом и поставить.
«Девайса» подключена к многодюймовому телеку. Во время рекламы посмотреть что происходит на отдаленном компе — самое оно
Итак, подробную инструкцию по сборке и установке x2go на Aura HD качаем с…
;)
> Во время рекламы посмотреть что происходит на отдаленном компе
Кажется, ты статью читал через зопу. x2go больше про виртуальные Х-ы, а не про то, что происходит на экране.
> по сборке и установке x2go на Aura HD качаем с…
Что-то мне лень, тем более что я её в глаза не видел и попробовать не смогу.
Зря…
Обращение ко всем другим читателям и участникам обсуждения. Если кто-нибудь знает или хотя бы представляет себе реальное решение задачи, пришлите, пожалуйста — с удовольствием ознакомлюсь.
Заранее благодарен.
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=112
не поправили