Як налаштувати xrdp сеанс, який повторно використовує існуючий сеанс?


57

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


У моєму конфігурації XRDP (за винятком того, що я запускаю Unity на робочих сесіях та Unity2D для віддалених сеансів), вхід у систему як користувач автоматично забирає свої старі сеанси. Чи кожен користувач отримує новий сеанс щоразу, коли підключається?
agc93

Найкраще пояснення / рішення, яке я знайшов в Інтернеті, можна знайти в цьому місці c-nergy.be/blog/?p=2879 Спробуйте, я сподіваюся, що ця інформація допоможе
gyest

Відповіді:


46

У мене була ця сама проблема, і я просто знайшов просте рішення. Я спочатку тільки що встановив xrdp, використовуючи стандартну процедуру:

apt-get install xrdp

Після цього все про ваш файл xrdp.ini, який знаходиться тут:

/etc/xrdp/xrdp.ini

Щоб відкрити та відредагувати файл конфігурації xrdp, використовуйте:

sudo nano /etc/xrdp/xrdp.ini

за замовчуванням перший сценарій обробки сеансу xrdp виглядає так:

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

Важливий рядок полягає в тому port=-1, що xrdp завжди шукає вільний порт для підключення. Якщо ви встановите тут фіксований порт, xrdp завжди повернеться та підключиться до одного і того ж сеансу. Я змінив свою, щоб вона виглядала так:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912

Ось це, я думаю , ви могли б піти з просто змінюючи port=-1до port=5912. Мій xrdp завжди підключається до існуючого сеансу, завжди використовуючи той самий порт.


2
Це рішення добре працює для мене, але я повинен зазначити, що кожен, хто підключається до тієї ж машини, отримає той самий сеанс, навіть якщо хтось інший увійшов у цей сеанс.
VeeTheSecond

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

4
Вийшов той самий випуск .. Здається, що за замовчуванням він намагається відкрити з'єднання за допомогою 5911port (це можна помітити, коли xrpd підключається). Тож я змінив з порту = -1 на порт = ask5911. Таким чином 5911 використовується за замовчуванням, але ви можете змінити цей порт під час введення користувача / пароля під час підключення (тому не потрібно нічого перенастроювати у разі помилок ..)
Maxym

1
Така поведінка суворо залежить від реалізації сервера vnc. Під центсом я використовую tigervnc, який завжди приєднується до існуючого сеансу або створює його з налаштуванням port = -1. Однак, під ubuntu типовим є "vvvserser ", який не має однакової поведінки. Просто грайте з реалізаціями vnc, якщо що.
Denys S.

1
Порт за замовчуванням - 5910, див. Askubuntu.com/a/527975/592751
Pedi T.

16

Я хотів би покращити існуючу відповідь. Відповідь у верхній частині полягала в тому, щоб відредагувати xrdp.iniфайл, щоб змінити порт на встановлене значення замість -1підстановки, щоб знайти відкритий порт.

Я спробував це, але вперше з’явилася помилка підключення, тому в кінцевому підсумку переключилася назад на -1значення. Розчарування швидко налагодилося, хоча проблема не відновилася, тому я знову переглянув файл ini.

Те, що працювало для мене, і було насправді просто те, про що мені було цікаво, це:

Відредагуйте /etc/xrdp/xrdp.ini

Під [xrdp1]де port=-1я помітив , ім'я користувача і пароль було встановлено ASK. Якщо ви встановите, port=askвам буде запропоновано опцію в запиті для входу з ім'ям користувача та паролем вибрати порт.

Замість того, щоб встановлювати додаткові пакети, я знайшов найпростішим виправленням встановити параметр запиту, підключіть ПЕРШИЙ сеанс (якщо у мене вже не працює) на порт -1 на вході з логіном та паролем.
Після відключення сеансу для відновлення існуючого сеансу завжди увійдіть на порт за замовчуванням: 5910, і ви відновите існуючий сеанс, поки не перезавантажите віддалений комп'ютер або не закінчите сеанс при виході з системи.

Узагальнити:

  • Відредагуйте xrdp.iniфайл
  • набір port = ask
  • підключіться з віддаленої машини, і при вході, якщо у вас немає сеансу, вкажіть порт -1
  • для відновлення сеансу введіть за замовчуванням 5910

Працювали для мене. Хоча я не пам’ятаю, щоб 5910 йшов вперед.
Весанто

7
Мені вдалося змінити запис на: [xrdp1]. . . port = ask5910 Це за замовчуванням порт на 5910, тому вам не доведеться його пам’ятати так, як сказав Vesanto (я ніколи цього не пам’ятаю, Vesanto!), але також дає можливість змінити його, якби ви хотіли створити новий сеанс на робочому столі скажімо, порт 5911. Я перевірив це на Ubuntu 16.04.
hoekma

2
^ це найкраще рішення я знайшов.
Nacht - Відновити Моніку

На щойно завантаженому Rpi3 я розпочав нову сесію з портом -1, а потім увійшов з іншим комп'ютером і використав порт 5910 - він підняв той же сеанс. Переміщуючи речі на одному комп’ютері, ви можете бачити, що це відбувається на іншому.
SDsolar

Якщо ви зробите це ще раз, але присвойте йому номер порту -1, це дає вам новий сеанс.
SDsolar

7

Я ненавиджу бути хлопцем, який просто скидає посилання, але я дотримувався довідника тут, і це спрацювало дуже добре. Тепер я можу увійти в сеанс RDP з хостів Linux і Windows і знову з'єднає мене зі своїм старим сеансом, якщо я раніше входив у систему. Це найкращий посібник із встановленого нами встановлення. На жаль, встановлення стандартного пакету викликає набагато більше проблем, ніж це робити з джерела.

Автор цього посилання також створив автоматичний інструмент для його встановлення та налаштування, але я його не пробував, тому будьте обережні.

Сподіваюся, що це допоможе вам.


Дякуємо, що надали посилання. Чи означає це, що жоден робочий пакет дебюту не існує для xrdp?
січня 12

Я бачив його десь тому, але він не працював правильно з новішими версіями Ubuntu. Наскільки мені відомо, у версії Ubuntu після 10.04 не існує робочого пакету .deb для XRDP. Раді, що, безумовно, помиляємось, оскільки цей метод невтішно дратує.
agc93

перевірити моє рішення, яке є супер автоматичним для скрипту для ubuntu 12 64bithttp://askubuntu.com/questions/190838/how-to-install-x11rdp-on-ubuntu-12-04/190855#190855

Я думаю, що для цього питання має сенс створити власний .xsessionфайл у своєму домашньому режисері. Наприклад, якщо ви використовуєте gnome-desktop, запустітьecho gnome-session >> ~/.xsession
artificerpi

4

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

netstat -tulpn | grep vnc

і ви отримаєте щось таке

tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5365/Xvnc

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


2

на екрані входу з полем xrdp, коли ви вперше підключитесь до віддаленого робочого столу, повинно бути спадне поле, звідси виберіть "vnc-any", потім введіть ip адресу комп’ютера та пароль, але залиште порт на якому це, це повинно допомогти :)


Це виглядає як найпростіший і працює для мене. Чудово. Немає складної установки, компіляції тощо
josef

1

Якщо ви зіткнулися з проблемою "пароль не вдається", ви можете ознайомитись з двома проблемами в GitHub

Повторно підключитися до старого сеансу vnc - помилка пароля VNC

Помилка пароля VNC під час вибору наявного сеансу

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


1

1. Modifiy ви xrdp.ini:

sudo vi /etc/xrdp/xrdp.ini

2.Змініть налаштування порту port=ask-1у своєму праві підключення:

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1

3.Запустіть службу xrdp

sudo service xrdp restart

Ви повинні побачити наступне зображення під час входу на віддалений робочий стіл. введіть тут опис зображення

1. При першому вході ви можете побачити цей номер порту. Приклад: 5912: введіть тут опис зображення

Якщо ви забули цей номер порту, ви можете скористатися такою командою, щоб перевірити:

netstat -peant | grep 59 | grep Xvnc

2. Ви можете знову підключити останній сеанс за номером порту. введіть тут опис зображення


Довідка: http://c-nergy.be/blog/?p=5305


0

Я зіткнувся з цією проблемою на машині Debian. Використовували X11RDP-o-Matic для створення xrdp 0.7 пакетів. Перед оновленням до systemd, повторно підключився сеанс xrdp.

Переглядаючи дерево процесів, я міг бачити, що сеанси вже не діти xrdp-sesman. Виявилася проблема дозволів при використанні systemd. Google знайшов виправлення, яке вирішує проблему.

Як визначити працююче підключення? Запустіть ps axfі подивіться на дерево процесу xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvcвсі повинні працювати як дитина. Якщо їх немає, xrdp-sesmanне знатиме, як знову підключитися до сеансу.

Ось як це виглядає під час роботи:

хороший процес сеансу xrdp


0

Ось що я зробив. Переконайтесь, що tigervnc-сервер встановлений, щоб ми могли використовувати Xvnc. Запустіть сеанс VNC із конфігурацією за замовчуванням (я фактично дотримувався посібника з налаштування Arch Linux для TigerVNC). Потім налаштуйте свій Xrdp для того, щоб використовувати цей сеанс VNC кожен раз Також встановіть TigerVNC для запуску під час завантаження чи чогось іншого. Це єдиний розділ VNC у моєму файлі xrdp.ini:

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=localhost
port=5901
username=na
password=YOURPASSWORD
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

-1

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

Налаштування RealVNC

1. Видалення стандартного сервера Ubuntu VNC (Vino) за замовчуванням:

Перейдіть до: Система -> Адміністрація -> Synaptic Package Manager Шукайте пакет "Vino", Позначте для видалення, Застосувати.

2. Установка TightVNC і XRDP:

Поки ви використовуєте Synaptic Package Manager, seacrh для пакету " deepvnc " (будьте обережні, не " xtightvnc ") та позначте для встановлення. Аналогічно знайдіть пакет "xrdp" і позначте також для встановлення. Застосувати. PS: якщо хочете, ви можете відкинути будь-який інший пакет "vnc", який вам не потрібен!

3. Конфігурація XRDP (необов'язково)

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

 cd /etc/xrdp
 cp xrdp.ini xrdp.ini.bak 
 sudo gedit /etc/xrdp/xrdp.ini

Видаліть розділи Xrdp2-Xrdp6, залиште лише розділ Xrdp1. Ваш xrdp.ini повинен виглядати так:

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1

[xrdp1]
name=RDP_To_TightVNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

4. Підключення

Перезавантажте систему, і ви готові підключитися!

Щоб підключитися з іншого пристрою Ubuntu, використовуйте: Програми -> Інтернет -> Клієнт сервера терміналів, введіть IP-адресу вашої машини Ubuntu VNC, використовуйте RDPv5 або RDP, натисніть Підключити!

Для підключення з машини на базі Windows використовуйте: Пуск -> Запуск -> mstsc, введіть IP-адресу вашої машини Ubuntu VNC, натисніть «Підключити».

Підключившись, використовуйте дані облікового запису користувача Ubuntu (u / n та p / w) та віддалено увійдіть на робочий стіл.


Ви насправді це тестували? Схоже, ви щойно скопіювали та вставили посилання дослівно. Якщо ви робите копіювання та вставлення, підтвердьте джерело у своїй відповіді.
fossfreedom

@fossfreedom nope, я не тестував, але намагався допомогти. До речі, я вже згадував джерело в this may help you.
Рахул Вірпара

Можливо, ви повинні бути більш чіткими щодо вашого джерела та правдивості відповіді. Дивіться мою редакцію.
fossfreedom
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.