Как настроить сеанс xrdp, который повторно использует существующий сеанс?

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

12 ответов

У меня была такая же проблема, и я просто нашел простое решение. Первоначально я только что установил 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 всегда повторно подключается к существующему сеансу, всегда используя тот же порт.

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

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

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

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

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

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

Подвести итоги:

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

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

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

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

Проблема в том, что xrdp не всегда подключается к одному и тому же порту. Если это не так, и вы забыли номер порта, вы можете войти в сессию ssh и узнать номер по

netstat -tulpn | grep vnc

и вы получите что-то вроде следующего

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

и тогда вы знаете, 5911 был порт, к которому вы подключены.

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

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

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

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

На экране входа в систему с полем xrdp при первом подключении к удаленному рабочему столу должен появиться выпадающий список, отсюда выберите "vnc-any", затем введите IP-адрес компьютера и пароль, но оставьте порт при чем это должно помочь:)

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

Вы должны увидеть следующую картинку при входе через удаленный рабочий стол. Окно входа в систему xrdp

1. При первом входе в систему вы можете увидеть этот номер порта:

Номер порта

Если вы забыли этот номер порта, вы можете использовать следующую команду для проверки:

netstat -peant | grep 59 | grep Xvnc

2. Вы можете повторно подключить последний сеанс по номеру вашего порта.

Повторно подключите последний сеанс


Ссылка: http://c-nergy.be/blog/?p=5305

Начиная с Linux Mint/Ubuntu 20, для решения общих проблем я всегда считал полезным избегать установки предварительно скомпилированных пакетов и вместо этого собирать их из исходного кода.

Не все функции включены в стандартных пакетах: например, звук и каналы буфера обмена должны быть явно включены с помощью configureпереключатели, плюс файлы сопоставления клавиатуры часто устаревают, и некоторые клавиши, такие как фигурные скобки, у меня не работали. Большинство проблем волшебным образом исчезли, когда я установил скомпилированную версию.

Возможно, вы захотите скомпилировать и установить xrdpа также xorgxrdp(менеджер сеансов xrdp, аналогичный x11rdp), следуя инструкциям здесь и здесь , затем настройте /etc/xrdp.iniа также /etc/xrdp/sesman.iniфайлы, последний используется Xorg(xrdp). Я рекомендую отключить динамические каналы в первом, чтобы снизить потребление процессора клиентом и сервером.

На всякий случай я также использую скомпилированную версию клиента (Remmina), просто чтобы убедиться, что обе подходят к моим машинам как влитые.

Я столкнулся с этой проблемой на компьютере 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

Я обнаружил, что при использовании клиента удаленного рабочего стола Windows для подключения к сеансу Linux сохранение той же конфигурации отображения и глубины цвета повторно подключит пользователя к тому же сеансу. Эти параметры можно настроить, выбрав "Показать параметры" в нижнем левом углу экрана запуска, а затем выбрав вкладку "Отображение".

Если вы не знаете, какие параметры отображения были у вашего существующего сеанса, запустите новый сеанс, а затем из окна терминала запустите ps axf | grep vnc. Параметры отображения ваших существующих и новых сеансов rdp будут иметь что-то вроде -geometry 1920x1080 -depth 16. Запишите эти значения, выйдите из нового сеанса, а затем попробуйте еще раз войти в xrdp, используя обнаруженные вами значения.

Вот что я сделал. Убедитесь, что 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

Этот поток UbuntuForum выглядит полезным - я сам не проверял - однако я скопировал приведенное здесь решение, чтобы завершить этот ответ.

Настройка RealVNC

1. Удаление стандартного сервера Ubuntu VNC (Vino):

Перейдите: Система -> Администрирование -> Диспетчер пакетов Synaptic. Найдите пакет "Vino", отметьте "Удалить", "Применить".

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

Пока вы используете Synaptic Package Manager, seacrh для пакета "quietvnc" (будьте осторожны, а не "xtightvnc") и Mark For Installation. Аналогично, найдите пакет "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) и удаленно войдите на свой рабочий стол.

Другие вопросы по тегам