Для удобства управления нашим сервером сделаем доступ к его графическому интерфейсу. По умолчанию в Ubuntu уже есть VNC сервер, его надо только включить.
Делается это в Preferences->Remote Desktop
В окне настроек достаточно поставить нужные галочки и ввести пароль (можно не вводить, но мне так спокойней)
После этого можно уже коннектиться к нашему серверу используя, например, TightVNC.
Вводим пароль
И получаем доступ к нашему рабочему столу
Подключение идет по порту 5900, если Вы не настраивали что-то другое.
Но есть некоторые проблемы. Во первых, не работает переключение раскладок, косяки со шрифтами, сворачиванию всех окон, например при нажатии D и возможно что-то еще. Лечить это симптоматически очень непросто и как правило помогает не всем. Так что перейдем к установке RDP, к которому можно зацепиться стандартным виндовым клиентом. В нем решено большинство проблем, описанных выше.
Установка xRDP на Ubuntu
И так, первое, что нужно сделать – установить xrdp из репозиториев.
sudo apt-get install xrdp
И запустить его
sudo /etc/init.d/xrdp start
Все можно соединяться обычным RDP-клиентом из-под Windows. Скринов не будет т.к. мы сразу перейдем к фиксу возникших багов, а они, вероятнее всего есть. Т.е. можно соединиться, но опять же нельзя поменять раскладку, d – сворачивает все окна, сессия VNC после выхода не отключается и подключиться к ней с нова возможности нету и т.п., а все потому, что коннектимся мы все равно как xVNC.
Добавляем X11rdp к xRDP
Следующим шагом будет установка нового xRDP – X11RDP. Для этого надо скачать его исходные коды и скомпилировать их самостоятельно. Для этого установим все необходимые пакеты
sudo apt-get install subversion gcc libice-dev pkg-config zlib1g-dev cvs autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev xfonts-base
И теперь перейдем к скачиванию и сборке X11RDP (каталог Install в нашей домашней директории мы создали при установке proxy-сервера)
cd ~/Install
mkdir X11rdp
cd X11rdp
svn co svn://server1.xrdp.org/srv/svn/repos/main/x11rdp_xorg71
mkdir /usr/local/X11rdp
cd x11rdp_xorg71
sh buildx.sh /usr/local/X11rdp
Теперь сделаем символьные ссылки для xRDP
ln -s /usr/local/X11rdp/bin/X11rdp /usr/local/bin ln -s /usr/share/fonts/X11 /usr/local/X11rdp/lib/X11/fonts
Теперь добавим X11rdp в конфиги xRDP, чтобы у нас появился новый тип коннекта. Исправляем /etc/xrdp/xrdp.ini
Добавляем новую секцию
[xrdp0] name=sesman-X11rdp lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1
Но, к сожалению “из коробки” это не заработало, т.к. версия xrdp в репозитории Ubuntu не самая свежая, а вот версия X11rdp новая и между собой они дружат плохо. Т.е. Вы можете попробовать соединиться, используя новый метод
Но пока получите только цветные полосы на экране.
Так что теперь мы как “взрослые” юниксоиды пойдем и соберем свой собственный XRDP с блэкджеком и … с переключением раскладки и нормальными сессиями.
Компиляция XRDP из репозитория GIT
Для начала установим GIT
sudo apt-get install git libssl-dev libpam0g-dev
Теперь УДАЛИМ xrdp. Не удивляйтесь, сейчас мы соберем его по новой, от старого XRDP останутся только юзер, группа и скрипты автозапуска.
sudo apt-get remove xrdp
Т.к. мы не указывали опцию –purge, то все, что нам нужно остается в системе
Перейдем к скачиванию и компиляции самого “свежего” xRDP
cd ~/Install
mkdir xrdp
cd xrdp
git clone https://github.com/FreeRDP/xrdp.git xrdp.git
Скрестили пальцы и начали
cd xrdp.git git checkout 4cd0c118c273730043cc77b749537dedc7051571 ./bootstrap ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var make
Ждем, довольно долго, компиляции и устанавливаем xRDP в правильное место, где ему и положено быть
sudo make install
Займемся RSA ключами, необходимыми для создания шифрованных сессий
sudo su - mkdir /usr/share/doc/xrdp mv /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/ chmod 600 /usr/share/doc/xrdp/rsakeys.ini chown xrdp:xrdp /usr/share/doc/xrdp/rsakeys.ini
Все так же, оставаясь под root (после sudo su –)
cd /etc/xrdp
mv startwm.sh startwm.sh.BACKUP
ln -s /etc/X11/Xsession /etc/xrdp/startwm.sh
Теперь завершим инсталляцию изменением фала настроек /etc/init.d/xrdp (я правил используя внутренний редактор MC), в зависимости, от того, что у Вас сейчас в этом файле добавьте/измените строки, чтобы они выглядели так:
PIDDIR=/var/run
SESMAN_START=yes
Т.к. мы все еще под root – запускаем xRDP
/etc/init.d/xrdp start
Проверяем, что он запустился
ps ax | grep rdp
И если все хорошо, и в выводе ps присутсвуют строки с нашим сервером, то выхоим из аккаунта root
exit
Ну и пробуем соединиться
(порт 5901, это только у меня так, т.к. я коннекчусь к домашнему серверу через SSh-туннель и стандартный порт 3389 проброшен на 5901)
Раньше приходилось еще указывать ограничение цветности 16 бит (делается в опциях клиента, но сейчас все работает и с 32 бит у меня)
Теперь можно поудалять все накаченные исходники, если есть желание. Но и без этого мы получили полнофункциональный RDP доступ к нашему рабочему столу Ubuntu
Круто, спасибо!!!
Пожалуйста! Надеюсь было полезно.
Супер! Столько всего перелопатил за неделю… Эта статья наконец привела к желаемому – раскладка и все остальное заработало! СПАСИБО!!!
Рад, что помогло 🙂 Сам с этим намучался.
Появился еще вопрос на эту тему. Попробую по порядку.
На машине стоит Минт14. Интерфейс – корица. Удаленный стол получается Гном. Это не беда – корицу выбрал исключительно из за ее похожести на гнома.
Беда в другом. Удаленный стол не подхватывает локаль! Что то поковырял (не запомнил что делал) – меню стало русским. Создал еще пользователя – опять удаленно английская локаль… С Линуксом знаком с начала года, так что даже не знаю куда себя отнести – к полным чайникам или уже немного продвинувшимся….
Только что сам же и решил проблему. Расскажу как – вдруг кому то поможет.
Чтобы полусить русскую локаль на удаленном столе надо, создав пользователя, выбрать английский язык! Потом снова русский. Почему то стоящий по умолчанию русский система принимает за английский. Надо обязательно явно задавать нужную локаль.
Еще раз спасибо – только благодаря этому сайту я запустил свой первый линукс-сервер…
Я всегда стараюсь оставить локаль английскую и просто добавить язык для раскладки, а то переводы пунктов меню иногда вводят в ступор.
Oracle Linux 6.4_86_64 Так все хорошо начиналось…
после 5 минут вывода на экран команда
sh buildx.sh /usr/local/X11rdp
выплюнула
….
checking for gzopen in -lz… no
configure: error: *** zlib is required
error xfont
и что с этим делать?
Oracle Linux 6.4_86_64 Так все хорошо начиналось…
yum install subversion gcc libice-dev pkg-config zlib1g-dev cvs autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev xfonts-base
выплюнула
….
Package subversion-1.6.11-9.el6_4.x86_64 already installed and latest version
Package gcc-4.4.7-3.el6.x86_64 already installed and latest version
No package libice-dev available.
No package pkg-config available.
No package zlib1g-dev available.
Package cvs-1.11.23-15.el6.x86_64 already installed and latest version
Package autoconf-2.63-5.1.el6.noarch already installed and latest version
Package libtool-2.2.6-15.5.el6.x86_64 already installed and latest version
No package libssl-dev available.
No package libpam0g-dev available.
No package libx11-dev available.
No package libxfixes-dev available.
No package xfonts-base available.
Nothing to do
и что с этим делать?
Попытка найти подобный пакет …
[root@ves7 x11rdp_xorg71]# yum search zlib
Loaded plugins: refresh-packagekit, security
============================== N/S Matched: zlib ===============================
jzlib.x86_64 : JZlib re-implementation of zlib in pure Java
ghc-zlib.x86_64 : Haskell compression and decompression library
jzlib-demo.x86_64 : Examples for jzlib
jzlib-javadoc.x86_64 : Javadoc for jzlib
mingw32-zlib.noarch : MinGW Windows zlib compression library
mingw32-zlib-static.noarch : Static libraries for mingw32-zlib development.
perl-Compress-Raw-Zlib.x86_64 : Low-Level Interface to the zlib compression
: library
perl-Compress-Zlib.x86_64 : A module providing Perl interfaces to the zlib
: compression library
perl-IO-Zlib.x86_64 : Perl IO:: style interface to Compress::Zlib
perl-POE-Filter-Zlib.noarch : POE filter wrapped around Compress::Zlib
zlib.i686 : The zlib compression and decompression library
zlib.x86_64 : The zlib compression and decompression library
zlib-devel.i686 : Header files and libraries for Zlib development
zlib-devel.x86_64 : Header files and libraries for Zlib development
zlib-static.x86_64 : Static libraries for Zlib development
zlibrary-devel.i686 : Development files for zlibrary
zlibrary-devel.x86_64 : Development files for zlibrary
zlibrary-ui-gtk.x86_64 : GTK+ interface module for ZLibrary
zlibrary-ui-qt.x86_64 : Qt4 interface module for ZLibrary
ghc-zlib-devel.x86_64 : Haskell compression and decompression library
: development files
perl-IO-Compress-Zlib.x86_64 : Perl interface to allow reading and writing of
: gzip and zip data
python-gzipstream.noarch : Streaming zlib (gzip) support for python
zlibrary.i686 : Cross-platform GUI library
zlibrary.x86_64 : Cross-platform GUI library
Name and summary matches only, use “search all” for everything.
подвела черту под мечтой….
Товарищи, у меня стоит kubuntu 13.04 замандило поставить юнити… после установки юнити когда цепляюсь по rdp запускается рабочий стол юнити причем с кучей косяков. Удалил юнити, его нет ни в выборе при логине и пакетов его нет вроди как нигде уже, но все равно при коннекте по rdp грузится не KDE а юнити, точнее уже не юнити а пустой рабочий стол.
Скажите возожно в настройках xrdp где-то надо поменять чтобы грузилось вновь KDE?
На сколько я помню – там в конфиге XRDP есть строчки про менеджера оконного:
/etc/xrdp/xrdp.ini
и там же можно вытсавить дефолтный
Решилось так
echo “/usr/bin/startkde” > ~/.xsession
sudo gedit /etec/xrdp/startwm.sh
#. /etc/X11/Xsession
. /home//.xsession
sudo /etc/init.d/xrdp restart
Спасибо
Мне для xfce достаточно было сделать:
ln -s /usr/bin/xfce-session ~/.xsession
Не переключается раскладка в сессии. Совсем. И ничем не могу победить такое поведение.
Если логиниться не по rdp, а напрямую у компа, все нормально. Значок раскладки клавиатуры висит в трее.
как только по rdp – даже значка раскладки нет.
перерыл кучу информации в инете и тишина.
как победить????
Ubuntu Linux 13.04
забыл дополнить. пакеты все взяты из репозитория.
уже из исходников пересобрал даже 🙂
не помогло 🙁
А именно XRDP стоит? Из репозитория?
оттуда, ага.
в общем, я плюнул (надоело рыть интернеты) и стал использовать связку putty + xming.
и запускаю любое графическое приложение откуда хочу.
Тоже вариант )) Я делал XRDP, навреное даже, из чистого интереса. Но все завелось, так и оставил. Ну иудобно, что с рабочего компа штатными средставми до домашнег осервера хожу
если вдруг! появится информация как победить эту беду ))) буду ждать комментария здесь )
Вот про эту беду я и писал выше. Надо создать пользователя, выбрав аглицкий язык. Выбрать до задания пароля. Затем задать пароль.Войти вновь созданным юзером и создать русскую локаль. Затем снова админом и вернуть русский язык юзеру. Кажется так, но уже мог и подзабыть…
Вопрос: А мультиюзерность поддерживается? т.е. жена непосредственно за компом, а я по RDP.
Вообще созадется нвоая сессия на каждое подключение. Так что сможете.
Спасибо. 🙂
Все сделал как написанно, но вот не задача верхнюю панель Gnome не отображает (юнити тоже) ну и верхнюю панель наутилуса с крестиком. [img]http://judges.cwars.ru/img/images/2013101800.png[/img] подскажите куда рыть.
А случайно всякие Compiz и прочие красивости не включены?
Ну и есть вот такая бага Bug #846407 – зыучит она как раз xrdp is not able to transmitt unity desktop correct – different clients
Вроде как он не починен, но в багтреке предлагают какие-т оварианты решения – https://bugs.launchpad.net/ubuntu/+source/xrdp/+bug/846407
Спасибо, попробую. Compiz отключен, в общем разные варианты пробовал.
Почитатйте трекер. Может что-то поможет. Сам то я с эти не столкнулся, так что и личного опыта в борьбе с такой напастью нету
Чтобы пофиксить проблемы с русской локалью, надо в startwm.sh добавить строки в начало файла:
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
в этом файле уже есть эти строки. Ubuntu Linux 14.04 LTS
startwm.sh [—-] 0 L:[ 1+ 6 7/ 9] *(97 / 118b) 0010 0x00A [*][X]
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
. /etc/X11/Xsession
При проблемах с подключением к старым сессиям можно попробовать это: http://habrahabr.ru/post/189074/
Собирал на Ubuntu 14.04 не завелось, точнее виндовый RDP не конектится
Тоже сделал как написано в Kubuntu 14.04 с винды не подключается клиент
Тоже попробовал собрать на Ubuntu 14.04 – серый экран и все. Гном не грузится что ли…
Спасибо автору за статью! Хорошо всё описал) Могу добавить пару слов от себя. Наша фирма не использует майкросовтовский сервер, мы обошлись более бюджетным-Thinstuff XP/VS Terminal Server . Это полноценный терминальный сервер, но стоит гораздо дешевле. Зачем же тогда переплачивать? И вот и я думаю, что не зачем. Вот сайт, может кому и понадобится http://thinstuf.ru/
Мучаюсь уже целую неделю почти. /По этой инструкции не получается.. уже перепробывал несколько разных образов юбунту. на разных был разный эффект от проделанных манипуляций, но не заработало как надо.. Автор.. подскажи на каком точно дистрибутиве это проделывал…
Sorry for late replay – был в путешествии ))
Вот что ставил: http://nord-tramper.ru/delaem-svoj-sobstvenny-j-server-na-ubuntu-us/
Чаще всего приводит к серому экрану.. на версии ubuntu 12.04 lts серый экран ушел.. но стал доступен только голый рабочий стол безо всяких меню и доступа к терминалу.. можно даже папки и файлы создавать……. помоги