?

Log in

No account? Create an account

Дистанционно запустить Linux X приложение на Windows

« previous entry | next entry »
26, фев. 2008 | 09:07 pm

И так, задача - дистанционно залогиниться на Linux машине (с внешним айпи) и запустить на ней X (графическое) приложение Linux, работая при этом в  Windows (внешний айпишник не нужен, просто доступ в инет)
Ну, бывает что обычной командной строки через Putty SSH не хватает и нужно поработать удаленно с какой-либо графической програмкой... Скажем, поставить в DC++ на скачку фильмец или еще чего...
Если набрать в командной строке
linuxdcpp
в ответ получим что-то вроде
Error! Unable to open display
Как же с этим справиться?

Самый простой вариант (на мой взгляд):
1. Создание необходимых учетных записей на Linux машине
2. Установка (если не установлено ранее) и настройка SSHd
3. Установка на Windows пакета программ Cygwin, включая Cygwin/X
4. Запуск X сервера на Windows с требуемыми параметрами
5. Логин на удаленной Linux машине через ssh (с помощью того же Cygwin или Putty)
6. Собственно запуск приложения и работа в нем))

BONUS: То-же, но если оба компа под Linux

Теперь подробности:
Я работаю в Ubuntu 7.10 и Windows XP SP2, поэтому все что пишу дальше относится в первую очередь к ним.

1. Создание необходимых учетных записей на Linux машине
Ну, думаю ничего сложного в этом нет. Создаем юзера с реальными домашним каталогом и командной оболочкой, через которого будем логиниться по ssh. Тут ничего сложного нет.
man useradd
вам в помощь
Например
sudo useradd -d /home/{имя юзера} -m -s /bin/bash {имя юзера} ; passwd {имя юзера}
После этой команды вас попросят ввести пароль для новой учетной записи.

2. Установка (если не установлено ранее) и настройка SSHd
Устанавливаем SSHd (если нет)
apt-get install sshd
в конфигурационном файле /etc/ssh/sshd_config настраиваем права доступа (можно оставить по умолчанию) и разрешаем трансляцию X сессии, для этого нужно исправить соотв. строчку на
X11Forwarding yes


и перезапустить сервер sshd:
sudo /etc/init.d/ssh restart

3. Установка на Windows пакета программ Cygwin, включая Cygwin/X
Скачиваем файлик http://cygwin.com/setup.exe (это аналог менеджера пакетов Linux), запускаем:
















Пакеты:
Минимум загрузки для работы X сервера и ssh:
отметить сверху радиобатон Keep вместо Curr
Затем отметить для установки (раздел/пакет):
Net/OpenSSH
Shells/bash
Shells/ash
X11/xorg-x11-base

Остальные необходимые пакеты(зависимости) установятся автоматически
Загрузится порядка 36Мб пакетов









Оптимально по юзабилити (если хотите юзать не только X-сервер)
оставить радиобатон Curr
Затем отметить для установки:
Net/OpenSSH
X11/xorg-x11-base

Остальные необходимые пакеты(зависимости) установятся автоматически
Загрузится порядка 53Мб пакетов, зато получите практически полноценный linux))

Если предпочитаете (и не зря) использовать putty, то устанавливать Net/OpenSSH не нужно
Да в принципе можно и командную оболочку Shells/bash, Shells/ash не устанавливать, я не пробовал.


Потом все это дело скачается:




Установится





4. Запуск X сервера на Windows с требуемыми параметрами
переходим в папочку
C:\cygwin\usr\X11R6\bin
находим там файлик startxwin.bat делаем, для того, чтобы можно было переключать раскладку в X-окнах так:
ищем строку
%RUN% XWin -multiwindow -clipboard -silent-dup-error
и преобразуем её к виду
%RUN% XWin -multiwindow -clipboard -silent-dup-error -xkblayout "us,ru" -xkbvariant ",winkeys" -xkboptions "grp:ctrl_shift_toggle"
И запускаем этот файл!
Видим такое:




Запускается X - графическая консоль и в трее появляется значок X
В принципе теперь уже можно запускать локально X-приложения.

5. Логин на удаленной Linux машине через ssh
5.1 С помощью Cygwin SSH
В появившейся консоли вводим
ssh -Y {имя юзера}@{адрес Linux сервера}
после принятия ключа сервера и ввода пароля попадаем в консоль удаленного сервера.




Теперь можно запускать X-приложения на Linux с отображением окон программ на нашем Windows компьютере!




5.2 С помощью Putty














Такое получится, если запустить
Nautilus&
и в нем пооткрывать окон и т.п.




BONUS: То-же, но если оба компа под Linux

Выполняем пункты 1-2 на Linux сервере, затем на Linux клиенте выполняем пункты 5-6

  Не забываем, что в пункте 5 в консоли вводим
ssh -Y {имя юзера}@{адрес Linux сервера}
Опция -Y разрешает работу графических приложений под SSH
---------------------------------------------------
На всякий случай предупреждаю: переключить запущенное приложение с одного X-сервера на другой невозможно! Т.е. если вы запустили приложение по SSH, то и работать с ним сможете по SSH, чтобы продолжить с ним работу на самом сервере непосредственно (или перевести в "фоновый" режим), приложение придется выключить и запустить уже на сервере заново

Советую почитать http://ru.wikipedia.org/wiki/X_Window_System

Ну, собственно все!
Удачных экспериментов! )))

Ссылка | Оставить комментарий |

Comments {14}

ОГРОМНОЕ СПАСИБО!!!!

from: anonymous
date: 27, июн. 2008 02:42 pm (UTC)
Ссылка

Наконец-то я прочитала такую точную и ПОЛНУЮ инструкцию на русском КАК!!!
УРА!!!!! Спасибо большое. Вот если бы про весь Linux так писали, то много народу уже бы на него перешло. А то как откроешь инструкции...завянешь.

Ответить | Ветвь дискуссии

pi_es

Re: ОГРОМНОЕ СПАСИБО!!!!

from: pi_es
date: 27, июн. 2008 05:42 pm (UTC)
Ссылка

Да не за что)))
/кстати, инструкция то в основном для windows, поэтому скриншотов дофига, линуксовые мануалы покороче обычно бывают т.к. там в основном настройки через командную строку/

Ответить | Уровень выше | Ветвь дискуссии

Хорошая инструкция =)

from: anonymous
date: 14, июл. 2008 05:15 pm (UTC)
Ссылка

Спасибо за столь развернутое хау-ту!

Ответить | Ветвь дискуссии

(без темы)

from: ext_127484
date: 13, окт. 2008 05:47 pm (UTC)
Ссылка

Возможно в настройках Putty в X display location придется указать ":0" без кавычек. Подобная настройка возможна с использованием Xming, на мой взгляд более простоя, что описано в статье (http://debback.blogspot.com/2008/03/linux-windows-xming-ssh.html) блога Debian. А для того, чтобы писать по русски с зажатым правым Alt я использовал -xkboptions "grp:ctrl_shift_toggle,grp_led:scroll,grp:switch"

Ответить | Ветвь дискуссии

Отрантский

(без темы)

from: sandro_wizard
date: 17, мар. 2009 06:09 am (UTC)
Ссылка

Хорошая инструкция. Но пару вопросов осталось.
Можно ли как-то встроенный файловый менеджер запустить? Я бы погуглил, да внятный запрос не могу сформулировать. Вообще, у меня линух машина в двух шагах стоит - можно ли предложить что-то типа Радмина для управления ей, чтобы не вставать? Потому что то, что я не вижу экрана, жутко напрягает.

Ответить | Ветвь дискуссии

pi_es

(без темы)

from: pi_es
date: 17, мар. 2009 10:10 am (UTC)
Ссылка

Вариант
nautilus &
устроит? (ведь там же Gnome?)

А вообще, если просто нужно как Radmin то используйте VNC

Ответить | Уровень выше | Ветвь дискуссии

Отрантский

(без темы)

from: sandro_wizard
date: 17, мар. 2009 10:37 am (UTC)
Ссылка

для Vnc что-то сложно найти линукс сервер - ведь я насколько понимаю, если я сижу с виндовой машины, то надо сервер поставить на машину с линуксом, а клиент - ко мне на вин?
И кстати, почему то после вот етой инструкции - nautilus & - у меня отобразился не только файл-менеджер, но и рабочий стол, правда, без верхнего меню. Ага, гном.

Ответить | Уровень выше | Ветвь дискуссии

pi_es

(без темы)

from: pi_es
date: 17, мар. 2009 11:01 am (UTC)
Ссылка

Да, VNC сервер на линукс, клиент - на виндоус.

Где взять VNC сервер? xD
Если у вас убунту (а мож и в остальных так-же) то Система-Параметры-Удаленный рабочий стол - там и настраиваете VNC сервер))) Т.е. устанавливать ниче не надо в общем-то.. он уже есть
Клиент для виндовс... не знаю, не пользовался, но наверняка много есть

Чтобы появилась панель инструментов попробуйте
gnome-panel &

Ответить | Уровень выше | Ветвь дискуссии

vnc server под linux - проблема? 0_o

from: mrmontolio
date: 9, апр. 2009 06:44 am (UTC)
Ссылка

Мда.. про vnc под linux что-то вы не то сказали ))

Вот программы стандартного репозитория Debian


trilliput@localhost:/home$ aptitude search vnc
p directvnc - VNC client using the framebuffer as displa
p gtkvncviewer - Small GTK+ tool to connect to VNC servers
i gvncviewer - VNC viewer using gtk-vnc
i A libgtk-vnc-1.0-0 - A VNC viewer widget for GTK+ (runtime libr
p libgtk-vnc-1.0-0-dbg - A VNC viewer widget for GTK+ (runtime libr
p libgtk-vnc-1.0-dev - A VNC viewer widget for GTK+ (development
p libsvncpp-dev - Subversion C++ library (development files)
p libsvncpp1 - Subversion C++ shared library
p libvncserver-dev - API to write one's own vnc server - develo
p libvncserver0 - API to write one's own vnc server
p libvncserver0-dbg - debugging symbols for libvncserver
p linuxvnc - VNC server to allow remote access to a tty
p mozilla-gtk-vnc - A VNC viewer widget for GTK+ (mozilla plug
p python-gtk-vnc - A VNC viewer widget for GTK+ (Python bindi
v python2.5-gtk-vnc -
p pyvnc2swf - запись с экрана в SWF
p tightvnc-java - TightVNC java applet and command line prog
p tightvncserver - virtual network computing server software
p tkvnc - Displays a list of (defined) machines to s
p vnc-java - VNC java applet and command line program
v vnc-server -
v vnc-viewer -
p vnc4server - Virtual network computing server software
p vncsnapshot - A utility that takes JPEG snapshots from V
v vncviewer -
p x11vnc - VNC server to allow remote access to an ex
p x2vnc - A dual-screen hack - link an MS-Windows an
i xtightvncviewer - virtual network computing client software
p xvnc4viewer - Virtual network computing client software


Также сущствует realVNC (www.realvnc.com), который мне очень приглянулся в качестве windows решения.

Если хочется чтобы и клиент и сервер были от одного производителя, то могу порекомендовать tightVNC (www.tightvnc.com), как видно он есть в репозитории Debian. Но его сервер под винду мне не очень понравился, тогда как клиент в принципе нормальный...

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: anonymous
date: 5, май. 2009 10:01 am (UTC)
Ссылка

а почему не использовать вот это - http://connectivity.hummingbird.com/products/nc/exceed/index.html без каких то либо натроек и шаманства с бубном!

Ответить | Ветвь дискуссии

pi_es

(без темы)

from: pi_es
date: 5, май. 2009 10:13 am (UTC)
Ссылка

Он ведь платный... Нет?
Да и скачать его так не дают - надо регистрироваться

Ответить | Уровень выше | Ветвь дискуссии

Симпатичный сайт! Все полезно сделано.

from: anonymous
date: 10, апр. 2011 08:41 am (UTC)
Ссылка

Прочитал на сайте (проблемы компьютера ) положительные отзывы о вашем ресурсе. Даже не поверил, а теперь убедился лично. Оказывается, меня не обманули.

Интересный сайт! Все качественно сделано.

Ответить | Ветвь дискуссии

(без темы)

from: anonymous
date: 23, июн. 2011 05:10 am (UTC)
Ссылка

Мужику повезло, на последнем скрине замечены отличные сиськи, но это так лирическое отступление.
В текущей версии Cygwin (1.7.x) не нашел xorg-x11-base, выделил пункт X-start остальное накатилось по зависимостям.

Ответить | Ветвь дискуссии

pi_es

(без темы)

from: pi_es
date: 23, июн. 2011 08:37 am (UTC)
Ссылка

Спасибо за поправку. Инструкция уже старенькая.

А с сиськами так и было задумано, чтоб разбавить атмосферу))

Ответить | Уровень выше | Ветвь дискуссии