Неможливо зробити віддалений робочий стіл за допомогою xrdp


13

У мене є віртуальна машина Ubuntu, на якій мені потрібно зробити віддалений робочий стіл. У мене немає фізичного доступу до цієї машини, і я можу робити лише ssh до машини. Я хотів зробити віддалений робочий стіл і придумав безліч варіантів (vnc, xrdp, opennx). Я використав xrdp і встановив необхідні пакети в машині ubuntu (xrdp та залежно). Тоді я включив віддалений доступ до ubuntu, використовуючи наступний параметр командного рядка.

gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false

Потім я перезапустив xrdp (/etc/init.d/xrdp start). Але коли я намагаюся зробити rdp за допомогою клієнта Windows (mstsc), я отримую таку помилку. Віддалений доступ до сервера не увімкнено.

Як я це вирішую? Ласкаво допоможіть.

Радж

Відповіді:


13

У файл /etc/xrdp/xrdp.ini додайте адресу = 0.0.0.0, яка є типовою адресою xrdp.

Також ви повинні дозволити брандмауеру прослуховувати з'єднання порту 3389, над яким працює xrdp. Для цього виконайте:

sudo ufw allow 3389

Якщо це не працює:

  1. Перезавантажте ПК
  2. Вимкніть брандмауер ( sudo ufw disable) на ПК на сервері та повторіть перевірку (може знадобитися ще один перезапуск).

У випадку, якщо ви пропустили це, я перерахую всю процедуру нижче (яку було болю збирати). У вас все буде добре, якщо дотримуватися крок за кроком (обіцяйте!).


Віддалений робочий стіл між покроковим посібником будь-якої ОС

Я . Windows в / з Windows:

Використовуйте програмне забезпечення Windows Remote Desktop

II . Linux / Unix до / з будь-якого місця

Спочатку виконайте наступне на серверному комп'ютері, до якого ви підключитесь через віддалений робочий стіл:

- Allow other users to view your desktop
- Best to require a password
- service ssh status
- To allow computers to connect with X11 graphics system capabilities as well, you need to 
    install an X11 server on the computer that is trying to connect (client). So
    * for a Windows computer use XMing
    * for a Linux Ubuntu computer use XQuartz

ІІа . Windows до Linux з терміналу з підтримкою графіки

- Launch XMing on Windows client
- Launch Putty
    * Fill in basic options
    * Connection -> SSH -> X11
        -> Enable X11 forwarding
        -> X display location = :0.0
        -> MIT-Magic-Cookie-1
        -> X authority file for local display = point to the Xming.exe executable

IIb . (для кращого) Windows для Linux з повною підтримкою графічного інтерфейсу. Це те, що хоче більшість із вас.

- install xrdp which uses the remote desktop protocol to present a GUI to the user. 
    It can provide a fully functional Linux terminal server, capable of accepting connections 
    from rdesktop, freerdp, and Microsoft's own terminal server / remote desktop clients. 
    xrdp is the daemon that handles RDP remote desktop access from Windows machines to Linux 
- edit the "/etc/xrdp/xrdp.ini" file to include the line:
    address=0.0.0.0
    right under #background=626x72 line. 0.0.0.0 is the local server address of xrdp
- Restart xrdp service
- allow xrdp port (probably 3389) through firewall
- We also need a VNC server. Install tightvncserver on Linux server machine. 
- run tightvncserver (no need to create a view-only password)
- "netstat -lvp | grep vnc" to check out the ports that tightvnc is listening on for 
    connections
- allow the vncserver port from the firewall: sudo ufw allow #
- allow the xrdp server
- Install xfce4 desktop environment an update to xfce, minimalistic faster and lightweight
    sudo apt-get install xfce4
- sudo apt-get install xfce4-terminal : way better than xterm
- sudo apt-get install gnome-icon-theme-full tango-icon-theme : installs icon sets
- Now we modify 2 files to make sure xrdp uses xfce4
    * echo xfce4-session >~/.xsession
    * secondly we modify startup file for xRDP located at /etc/xrdp/startwm.sh
        so it will start xfce4. Replace the last line with 
        startxfce4 
        (before it had something which started with a ., but no matter whatever it is, just 
        replace the last line)
    * restart xrdp service: sudo service xrdp restart
- Now you are ready to log into the computer from client using Remote Desktop (mstsc.exe). 
    Just supply the ipv4 or hostname of the VNC server.

ІІІ . * nix до / від * nix

- ssh -X [preferedUserName]@[targetIpv4Address] : -X flag enales X11 forwarding
- accept security certificates from trusted hosts when prompted

IV . Захист з'єднання (необов'язковий крок - стосується будь-якої конфігурації)

Протоколи VNC & xrdp не захищені, що означає, що вони не зашифровані.

Щоб захистити з'єднання, відредагуйте файл /etc/xrdp/xrdp.ini так, щоб адреса стала 127.0.0.1. Це буде localhost адреса ssh-сервера. Шифрування SSH буде використовуватися під тунелем трафіку vnc.

- sudo service xrdp restart
- sudo service ssh restart
- pkill Xtightvnc
- tightvncserver
- putty -> Connection -> SSH -> Tunnels 
    * Source port: 5555
    * Destination: localhost:3389

Якщо вищезазначене не працює:

  1. Можливо, вам доведеться перезапустити обидва комп'ютери,
  2. Вимкніть брандмауер ( sudo ufw disable) на ПК на сервері та повторіть перевірку (може знадобитися ще один перезапуск).
  3. Якщо вище не працює, ви зіпсували систему, встановивши конфліктні пакети. На цьому вам потрібно виконати усунення несправностей вручну (дуже малоймовірно, що ви досягнете цього кроку, якщо правильно дотримуватись інструкцій).

Джерела та кредит:


Якщо ви працюєте з Ubuntu 18.04.2 або Ubuntu 18.04.3, встановлення xorgxrdp-hwe-18.04 може вирішити вашу проблему (вона вирішила мою). Дивіться це повідомлення в блозі: c-nergy.be/blog/?p=13972
jhin

4

Я, зокрема, не знайомий з xrdp, але перше, що я перевірив би - це перевірити, чи використовує його порт а) прослуховування з'єднань і б) відкритий зовнішній світ. Порт за замовчуванням для RDP - 3389 .

Перший досить легко перевірити; просто запустіть це в терміналі на машині, до якої ви намагаєтесь підключитися (зміни 3389, якщо xrdp слухає на іншому порту):

netstat -an | grep "LISTEN " | grep ":3389"

Якщо ви знайдете щось подібне до наведеного нижче, щось принаймні (сподіваємось xrdp) прослуховує для з'єднань:

tcp        0      0 127.0.1.1:3389            0.0.0.0:*               LISTEN

Якщо ви не отримаєте жодного результату, спробуйте (повторно) запустити xrdp або перевірте, чи є у вас правильний порт.

Далі вам потрібно переконатися, що машина доступна до Інтернету на цьому порту, що передбачає дві речі: переконатися, що брандмауер на самій машині не блокує з'єднання з цим портом і переконайтесь, що будь-який мережевий пристрій ( тобто маршрутизатор) між комп'ютером, до якого ви намагаєтеся підключитися, та Інтернетом, не блокує з'єднання. PortForward.com може допомогти з останнім; перший залежить від того, який брандмауер встановлений на вашій машині, якщо такий є.

Сподіваюся, це допомагає!


1
Нижче наведено висновок netstat .. Я перевірю другу частину і дозволю вам knwo .. tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
user1667630

Добре, добре, це означає, що xrdp прослуховує з'єднання. Ви сказали, що ви можете отримати доступ до віртуальної машини лише на порту 22, однак саме тому RDP-клієнт не може підключитися. Яке програмне забезпечення віртуальної машини ви використовуєте?
stevenmirabito

Вибачте ... чи можете ви скажіть, що ви маєте на увазі під "програмним забезпеченням віртуальної машини" ... В ubuntu я щойно встановив xrdp ..
user1667630,

Ви сказали у своєму ОП: Під I have a virtual machine (ubuntu) to which i need to do remote desktop.яким програмним забезпеченням працює віртуальна машина (VirtualBox, VMware, Virtuozzo, Xen, OpenVZ тощо)? Це машина на вашому локальному комп’ютері чи це VPS десь розміщений?
stevenmirabito

вибачте ... так .. це VPS десь розміщений !! В основному він використовує рішення Apache Software Foundation .. Віртуальна комп'ютерна лабораторія !!
користувач1667630

2

Нарешті я змусив це працювати для мене; налаштування: старший ноутбук, на якому працює ubuntu 13.10, працює стандартна єдність; Я встановив док-станцію для каїру (що робить його набагато кориснішим для мене); досі не використовується до лівої панелі додатка;

Було б непогано мати можливість використовувати свою систему win7, щоб перейти на цю ubuntu 13.10, тому я провів пару годин сьогодні вранці на дослідження. Ось що я зробив:

sudo apt-get update
sudo apt-get install xrdp

або ви можете використовувати програмний центр ubuntu для встановлення.

Здалося, що установка пройшла нормально, і виявилося, що служба xrdp була запущена.

З мого вікна win7 я відкрив вікно rdp і використав IP-адресу ноутбука, щоб увійти; відкрилося вікно, але просто стандартний екран x11 windows (візерунок хрестоподібного люка з курсором x); ніяких посилань, піктограм чи меню не можна використовувати.

Більше досліджень Google. Я встановив запасний сеанс gnome:

$ sudo apt-get install gnome-session-fallback
$ echo "gnome-session --session=gnome-fallback" > ~/.xsession

Це не спрацювало; У мене той самий порожній екран, але я знайшов іншу URL-адресу, яка запропонувала інший сеанс Windows mgr, як XFCE, тому я встановив робочий стіл xubuntu:

$ sudo apt-get install xubuntu-desktop
$ echo "xfce4-session" > ~/.xsession

Не забудьте провести sudo /etc/init.d/xrdp restartвсі зміни.

Це спрацювало. Спочатку, при першому запуску сеансу rdp, у мене був такий же порожній екран, але через 10 секунд (можливо, через те, що я використовую VDI win7 на роботі з віддаленого місця) з'явився робочий стіл xfce xubuntu; не такий приємний, як гном, але дуже корисний.

Сподіваюся, ця інформація буде корисною, оскільки я не зміг отримати початкові спроби працювати на мене.

Дейв


1

Ласкаво просимо до спільноти Ubuntu.

Перш за все, перевірте налаштування мережі Windows Virtual Machine у ​​віртуальній скриньці. Виберіть Bridge Connection у мережевих налаштуваннях. Перевірте, чи дозволяється RDP проходити через брандмауер клієнта Windows.


Привіт .. я вмію робити ssh. Скажіть, будь ласка, як перевірити, чи дозволено RDP проходити через брандмауер
user1667630

Так, відкрийте параметри брандмауера у клієнті Windows, ви отримаєте список програм та служб, які можна пропускати, Знайдіть RDP, натисніть на редагувати, Увімкнути та застосувати.
Кетан Патель

Це вже було ввімкнено !! Я перевірив це. Чи є інший спосіб отримати інтерфейс ubuntu. Ще одна проблема полягає в тому, що в ubuntu увімкнено лише порт 22
користувач1667630

Вимкніть брандмауер Ubuntu за допомогою зупинки iptables командної служби
Ketan Patel

1
sudo ufw disable 

то спробуйте увійти в систему за допомогою клієнтського програмного забезпечення rdp .. Я зараз налаштовую це для 12.04 Linux vps, тому я підключився, але не бачив на робочому столі лише вікно команди.

Привіт, приятелю, ти сказав, що ти підключився, і все, що ти бачиш, - це вікно терміналу, я не знаю, що твоє повне налаштування, але ось, моє, я сподіваюся, що це допоможе.

Переконайтеся , що ваш Vncserver запущений, vncserver :1 поруч nanoв ~/.vnc/xstartupце приносить вам в бункер !! файл bla bla, де ви бачите останній рядок ( & -x-window-manager), дод & /etc/X11/Xsession &

Тепер увійдіть у цей файл /etc/xrdp/startwm.shі будьте впевнені в тому, ваш останній рядок

. /etc/X11/Xsession

після цього перезапустіть vncserver, зробивши це.

vncserver -kill :1 

потім перезапустіть

vncserver :1

До речі, мені довелося встановити більше, ніж просто Xrdp, і я зробив ще кілька команд для відступу назад, якщо Xrdp не вдався, все здається мені добре в хвилину, дайте йому переконатися і даєте знати, що готувати чи ні. Удачі. Ps .. його ламкість чудова, коли вона працює, залишайся з нею.


0

Якщо через брандмауер дозволений лише порт 22, і вам не вистачає контролю над мережевим шляхом, ви, можливо, захочете використовувати тунель ssh для тунелювання обраного порту на віддаленому полі до вашої локальної системи.

Якщо ви робите це з поля Linux / Unix, подивіться прапор -L для ssh:

ssh -L 3390:127.0.0.1:3389 -l remote_user remote_host

де перший 3390 - номер локального порту, а другий 3389 - номер віддаленого порту; тоді ви підключите RDC до 127.0.0.1:3390 для підключення. Зауважте, що тунель прив’язаний до сеансу ssh - якщо ви закриєте цей сеанс ssh, тунель також закриється, і ваше з'єднання з віддаленим робочим столом впаде. Переконайтеся, що ви використовуєте невикористаний порт для локальної сторони.

Якщо ви підключаєтесь до системи Windows, використовуйте шпаклівку та ввімкніть параметри тунелювання ssh для вашого сеансу (подивіться на з'єднання-> SSH-> Тунелі в параметрах конфігурації сеансу.)

Після встановлення тунелю ви можете використовувати обраний клієнт RDP для підключення. Кілька інших відповідей стосуються цієї частини налаштування (особисто я завершився після пропозиції xfce4-сесії.)


0

Запустіть команди в терміналі:

sudo apt-get install xrdp
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install ubuntu-mate-core ubuntu-mate-desktop


echo mate-session >~/.xsession
sudo service xrdp restart
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.