Приветствую вас, дорогие друзья! Разговорились мы тут как то с Андреем на тему запуска клиент-серверных приложений для Windows (Консультант, Гарант и т.д.) на сервере с установленной Ubuntu 12.04. Закавыка состояла в том, что на сервере был установлен wine, но не была установлена графическая среда.
Без графической среды wine запускать windows-экзешники отказывался напрочь. Андрей высказался, что, дескать, это можно обойти, перенаправив всю графику на другой компьютер (с windows или linux), и запуская с этого другого компа требуемое приложение через ssh (в консоли).
Ну, естественно, я решил это дело попробовать. В качестве "подопытных" используются Ubuntu server 12.04 и WinXP. Трансляция изображения и звука идет на WinXP.
Часть 1, графическая
Для начала нужно поправить конфиги ssh в Ubuntu server. Принципиальны три параметра:
Параметр "ListenAddress". Разрешает подключение только тем ip-адресам, которые указаны в параметре. Если в этом параметре еще не прописан ip-адрес вашей WinXP машины, то пропишите его. Понятно, что адресов может быть несколько. Например:
Далее, раскомментируем (если они закомментированы) и приводим следующие строчки в соответствии с примером:
На этом с правкой конфигов ssh закончено. Делаем рестарт сервиса:
Проверяем определена или нет глобальная переменная DISPLAY. Для этого набираем в консоли команду:
Если переменная не установлена, поочередно вводим следующие команды:
Теперь настраиваем ssh клиент для Windows. Одно из лучших решений - консольный Putty.
Качаем с этого сайта последний (по состоянию на декабрь 2012 года) набор бинарников Putty (см. ссылки в конце материала).
В секции "Сеанс", проверяем, чтобы чекбокс был установлен на параметре SSH. В строке "Имя хоста (или IP-адрес" пишем IP-адрес (в моем примере - ip-шник Ubuntu сервера)).
В разделе "Соединение" находим подраздел "SSH", а в нём - блок "X11". В настройках этого блока ставим галку напротив параметра: "Включить переадресацию X11".
В пустую строчку параметра "Отображение дисплея X" вписываем следующее: localhost:0.0
После этого обязательно сохраняем параметры сеанса (вводим произвольное имя в строчку "Сохранённые сеансы" и нажимаем кнопку "Сохранить").
В следующий раз после запуска Putty нужно просто дважды щелкнуть мышью по имени сохраненного сеанса и, вуаля - произойдет запуск сеанса со всеми внесенными нами ранее настройками.
И, напоследок, качаем и устанавливаем программу Xming для отрисовки передаваемой в WinXP графики (см. ссылки в конце материала).
Устанавливаем программу с настройками по умолчанию. Настраивать какие-либо параметры не нужно. Просто запускаем программу. После запуска она свернется в трей.
Теперь, если вы, сидя за windows-машиной, запускаете через ssh в консоли Ubuntu любое приложение, использующее X-сервер, то на мониторе windows-машины всплывёт обычное окно, в котором отобразится графическая морда запущенного вами приложения. В этом окне вы можете делать всё что угодно. Писать тексты, смотреть фильмы, слушать музыку. Правда, перед тем, как смотреть фильмы и слушать музыку, нам нужно настроить передачу звука.
Часть 2, звуковая
Для передачи звука воспользуемся аудио подсистемой PulseAudio, установленной соответственно и в Ubuntu, и в WinXP.
И если в Ubuntu, скорее всего PulseAudio уже установлен, то для WinXP надо будет скачать соответствующий порт (см. ссылки в конце материала).
В WinXP распакуйте скачанный архив на какой-нибудь логический диск, в папку с произвольным именем, например на диск "С", в папку "PulseAudio". Создайте (или скачайте и забросьте в эту папку уже готовый (см. ссылки в конце материала)) в этой папке файл default.pa со следующим содержимым:
Запустите файл pulseaudio.exe. Добавьте pulseaudio.exe в список исключений брэндмауэра Windows или разрешите входящие соединения на порт 4713. На этом - с настройками в WinXp закончено.
В Ubuntu включаем запуск PulseAudio как системный сервис, отредактировав файл /etc/default/pulseaudio:
Так же нужно активировать модуль, чтобы принимать звук по сети, добавив следующую строку в /etc/pulse/system.pa:
В файле /etc/pulse/client.conf добавьте следующую строку:
В приведенном выше примере указан IP-адрес WinXP.
На этом все настройки закончены. Теперь при запуске через ssh в консоли Ubuntu любого приложения, "выдающего" звук в Ubuntu, вы услышите этот же самый звук в WinXP.
Ссылки
При компиляции этой статьи были использованы следующие материалы (большое спасибо авторам за их труд):
http://blog.kansoftware.ru/?p=239;
http://ky6uk.org/peredacha-zvuka-po-seti-pri-pomoshhi-pulseaudio;
http://www.opennet.ru/tips/info/2299.shtml