Как настроить сеанс 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-сервера. Под centos я использую tigervnc, который всегда присоединяется к существующему сеансу или создает сеанс с настройкой port = -1. Тем не менее, в Ubuntu по умолчанию установлено значение tailvncserver, которое не имеет такого поведения. Просто поиграйте с реализациями vnc, если что.
Денис С.

1
Порт по умолчанию - 5910, см. Askubuntu.com/a/527975/592751
T.

16

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

Я попробовал это, но получил ошибку при первом подключении, поэтому в итоге переключился обратно на -1значение. Однако быстро наступило разочарование, и проблема не возобновилась, поэтому я снова посмотрел на INI-файл.

То, что работало для меня, и на самом деле было просто кое-что, что мне было любопытно, это:

Изменить /etc/xrdp/xrdp.ini

Под тем, [xrdp1]где port=-1я заметил, имя пользователя и пароль были установлены на ASK. Если вы укажете этот параметр, port=askвам будет предложено выбрать имя пользователя и пароль в приглашении для входа в систему.

Вместо того, чтобы устанавливать дополнительные пакеты, я обнаружил, что проще всего установить опцию ask, подключить первый сеанс (если у меня его еще нет) к порту -1 при входе в систему с именем пользователя и паролем.
После отключения сеанса для возобновления существующего сеанса всегда входите в порт по умолчанию: 5910, и вы возобновляете существующий сеанс до тех пор, пока не перезагрузите удаленный компьютер или не завершите сеанс при выходе из системы.

Обобщить:

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

Работал на меня. Хотя я не помню, 5910 идти вперед.
Весанто

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

2
^ это лучшее решение, которое я нашел.
Nacht - Восстановить Монику

На недавно загруженном Rpi3 я начал новый сеанс с портом -1, а затем пришел с другим компьютером и использовал порт 5910 - он взял тот же сеанс. Когда вы перемещаете вещи на одном компьютере, вы можете видеть, что это происходит на другом.
SDsolar

Если вы затем сделаете это снова, но дадите ему номер порта -1, это даст вам новый сеанс.
SDsolar

7

Я ненавижу быть парнем, который просто пропускает ссылку, но я следовал за руководством здесь, и это работало действительно хорошо. Теперь я могу войти в сеанс RDP с хостов Linux и Windows и снова подключиться к моему старому сеансу, если я уже входил в систему. Это лучшее руководство по установке, которое я нашел. К сожалению, стандартная установка пакета вызывает гораздо больше проблем, чем при выполнении исходных текстов.

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

Надеюсь, это поможет вам.


Спасибо за предоставленную ссылку. Означает ли это, что для xrdp не работает ни один рабочий пакет deb?
января

Я видел это некоторое время назад, но он не работал правильно с более новыми версиями Ubuntu. Насколько я знаю, не существует рабочего пакета .deb для XRDP в версиях Ubuntu после 10.04. Конечно, рад, что оказался неправ, так как этот метод вызывает разочарование.
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-адрес компьютера и пароль, но оставьте порт при чем это должно помочь :)


Это выглядит как самый простой и работает для меня. Отлично. Не сложная установка, компиляция и т. Д.
Джозеф

1

Если вы столкнулись с проблемой «сбой пароля», вы можете взглянуть на две проблемы в GitHub

Переподключиться к старому сеансу VNC - сбой пароля VNC

Ошибка пароля VNC при выборе существующего сеанса

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


1

1. Модифий ты 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. Найдите пакет «Vino», отметьте «Удалить», «Применить».

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

Пока вы используете Synaptic Package Manager, seacrh для пакета «quietvnc» (будьте осторожны, не « 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 Нет, я не проверял, но пытался помочь. Кстати, я уже упоминал источник в this may help you.
Рахул Вирпара

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