기존 세션을 재사용하는 xrdp 세션을 어떻게 설정합니까?


57

xrdp를 사용하여 RDP 터미널 서버를 정확하게 설정하려고 시도했으며 작동 구성을 얻는 데 큰 문제가있었습니다. 사용자가 로그온 할 때 기존 세션이 존재하는 경우 해당 사용자에게 연결해야합니다. 그렇지 않으면 새 세션을 시작하고 시작된 세션은 LXDE를 시작해야합니다. 이것이 작동하려면 기본 구성을 어떻게 변경해야합니까?


XRDP 구성에서 (데스크톱 세션에서 Unity를 실행하고 원격 세션에서 Unity2D를 실행하는 것을 제외하고) 사용자로 로그인하면 이전 세션이 자동으로 선택됩니다. 연결할 때마다 각 사용자가 새 세션을 받습니까?
agc93

인터넷에서 찾은 최고의 설명 / 솔루션은이 위치에서 찾을 수 있습니다. c-nergy.be/blog/?p=2879 시도해
보십시오이

답변:


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=-1xrdp가 항상 연결 가능한 빈 포트를 찾도록합니다. 여기에 고정 포트를 설정하면 xrdp는 항상 돌아가서 동일한 세션에 연결됩니다. 나는 이것을 다음과 같이 바꿨다.

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

그것을 먹으 렴, 난 당신이 바로 변화와 함께 멀리 얻을 수 생각 port=-1port=5912. 내 xrdp는 항상 같은 포트를 사용하여 기존 세션에 다시 연결합니다.


2
이 솔루션은 저에게 효과적이지만 다른 사람이 해당 세션에서 로그인 한 경우에도 동일한 컴퓨터에 연결하는 사람은 동일한 세션을 갖게됩니다.
VeeTheSecond

7
기존 세션이 이미있는 경우에만 작동합니다. 처음으로, 세션이 없으므로 포트 5912에 연결하지 못합니다.
stu

4
같은 문제가 있습니다 .. 기본적으로 5911port를 사용하여 연결을 열려고 시도합니다 (xrpd가 연결되어있을 때 알 수 있음). 그래서 포트 = 1에서 포트 = ask5911로 변경되었습니다. 이 방법은 기본적으로 5911이 사용되지만 연결하는 동안 사용자 / 암호를 입력 할 때 해당 포트를 변경할 수 있습니다 (따라서 오류가 발생한 경우에는 재구성 할 필요가 없습니다.)
Maxym

1
이 동작은 vnc 서버 구현에 따라 다릅니다. centos에서는 tigervnc를 사용하고 있는데, 이것은 항상 기존 세션에 참여하거나 port = -1 설정으로 세션을 만듭니다. 그러나 우분투에서 기본값은 tightvncserver이며 동일한 동작을하지 않습니다. VNC 구현 만 있으면됩니다.
Denys S.

1
기본 포트는 5910입니다 참조 askubuntu.com/a/527975/592751
페디의 T.

16

기존 답변을 개선하고 싶습니다. 가장 많이 투표 된 답변은 xrdp.ini파일 을 편집하여 -1열린 포트를 찾기 위해 와일드 카드 대신 고정 값으로 포트를 변경 하는 것입니다.

나는 그것을 시도했지만 처음 연결하는 동안 오류가 발생하여 결국 -1값으로 다시 전환되었습니다 . 다시 시작하지 않는 문제로 인해 좌절이 빨리 시작되었으므로 ini 파일을 다시 보았습니다.

나를 위해 일한 것은 정말로 내가 궁금했던 것입니다.

편집 /etc/xrdp/xrdp.ini

아래 [xrdp1]어디에 port=-1내가 사용자 이름을 발견하고 암호를 물어 설정했다. 설정 port=ask하면 로그인 프롬프트에서 사용자 이름과 비밀번호로 포트를 선택할 수있는 옵션이 제공됩니다.

추가 패키지를 설치하는 대신 ask 옵션을 설정하는 것이 가장 쉬운 방법이라는 것을 알았습니다. 사용자 이름과 비밀번호로 로그인하여 포트 -1에서 FIRST 세션을 연결하십시오 (아직 실행하지 않은 경우).
세션 연결을 끊은 후 기존 세션을 다시 시작하려면 항상 기본 포트 5910에 로그인하면 원격 컴퓨터를 다시 시작하거나 로그 오프 할 때 세션을 종료 할 때까지 기존 세션을 다시 시작합니다.

요약:

  • xrdp.ini파일 편집
  • 세트 port = ask
  • 원격 시스템에서 연결하고 기존 세션이없는 경우 로그인시 포트를 지정하십시오. -1
  • 세션을 재개하려면 기본값을 입력하십시오 5910

나를 위해 일했다. 앞으로 5910이 기억 나지 않을 것입니다.
Vesanto

7
항목을 [xrdp1]로 성공적으로 변경할 수있었습니다. . . port = ask5910 포트의 기본값은 5910으로 설정되어 있으므로 Vesanto가 말한 것처럼 기억하지 않아도됩니다 (Vesanto도 기억하지 않을 것입니다!). 새로운 데스크탑 세션을 생성하려는 경우 변경 옵션도 제공합니다. 포트 5911을 말합니다. 우분투 16.04에서 이것을 테스트했습니다.
hoekma

2
^ 이것은 내가 찾은 최고의 솔루션입니다.
Nacht-복원 모니카

새로 부팅 된 Rpi3에서 포트 -1을 사용하여 새 세션을 시작한 다음 다른 컴퓨터를 사용하여 포트 5910을 사용했습니다. 동일한 세션을 선택했습니다. 한 컴퓨터에서 물건을 옮길 때 다른 컴퓨터에서 물건을 볼 수 있습니다.
SDsolar

그런 다음 다시 수행하지만 포트 번호 -1을 지정하면 새 세션이 제공됩니다.
SDsolar

7

나는 단지 링크를 삭제하는 사람이 싫지만 여기 의 가이드를 따라 가면 정말 잘 작동했습니다. Linux 및 Windows 호스트에서 RDP 세션에 로그인하고 이전에 로그인 한 경우 이전 세션에 다시 연결할 수 있습니다. 이것은 내가 찾은 설치에 가장 적합한 안내서입니다. 불행히도 표준 패키지 설치는 소스에서 수행하는 것보다 훨씬 많은 문제를 일으 킵니다.

해당 링크의 작성자는 설치 및 구성을 위한 자동 도구 를 만들었지 만 시도하지는 않았으므로주의하십시오.

희망이 당신을 도와줍니다.


링크를 제공해 주셔서 감사합니다. 이것은 xrdp에 대한 작동중인 deb 패키지가 없다는 것을 의미합니까?
Jan

언젠가 한 번 보았지만 최신 버전의 우분투에서는 제대로 작동하지 않았습니다. 내가 아는 한 10.04 이후의 Ubuntu 버전에는 XRDP 용 .deb 패키지가 없습니다. 이 방법이 실망스럽게 자극하기 때문에 물론 잘못된 것으로 입증되어 기쁘다.
agc93

우분투 12 64 비트에 대한 스크립트에서 슈퍼 자동 솔루션을 확인하십시오http://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

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

데비안 컴퓨터 에서이 문제가 발생했습니다. 중고 X11RDP - 오 - 매틱은 0.7 패키지를 XRDP 빌드합니다. systemd로 업그레이드하기 전에 xrdp 세션 재 연결이 정상적으로 작동했습니다.

프로세스 트리를 보면 세션이 더 이상 자식이 아님을 알 수있었습니다 xrdp-sesman. systemd를 사용할 때 권한 문제로 판명되었습니다. Google 은 문제를 해결 하는 패치발견했습니다 .

작동중인 재 연결을 어떻게 식별합니까? ps axf에 대한 프로세스 트리를 실행하십시오 xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvc모두 아이로 달려야합니다. 그렇지 않은 경우 xrdp-sesman세션에 다시 연결하는 방법을 모릅니다.

작업 할 때의 모습은 다음과 같습니다.

좋은 xrdp 세션 프로세스


0

여기 내가 한 일이 있습니다. Xvnc를 사용할 수 있도록 tigervnc-server가 설치되어 있는지 확인하십시오. 기본 구성으로 VNC 세션을 시작합니다 (실제로 TigerVNC 용 Arch Linux 설정 안내서를 따름). 그런 다음 매번 해당 VNC 세션을 사용하도록 Xrdp를 구성하십시오. 또한 부팅시 TigerVNC가 시작되도록 설정하십시오. 이것은 내 xrdp.ini 파일에서 유일한 VNC 섹션입니다.

[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) 제거 :

시스템-> 관리-> 시냅틱 패키지 관리자“Vino”패키지, 제거 표시, 적용으로 이동하십시오.

2. TightVNC 및 XRDP 설치 :

Synaptic Package Manager를 사용하는 동안 "tightvnc"패키지에 대한 seacrh ( " xtightvnc "가 아니라주의 ) 및 설치 표시. 마찬가지로 "xrdp"패키지를 검색하고 설치도 표시하십시오. 대다. 추신 : 원한다면 필요없는 다른 "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 컴퓨터에서 연결하려면 응용 프로그램-> 인터넷-> 터미널 서버 클라이언트를 사용하고 Ubuntu VNC 컴퓨터의 IP를 입력 한 다음 RDPv5 또는 RDP를 사용하고 연결을 클릭하십시오!

Windows 기반 머신에서 연결하려면 시작-> 실행-> mstsc를 사용하고 Ubuntu VNC 머신의 IP를 입력 한 후 연결을 클릭하십시오.

연결되면 Ubuntu 사용자 계정 자격 증명 (u / n 및 p / w)을 사용하고 원격으로 데스크탑에 로그인하십시오.


실제로 이것을 테스트 했습니까? 링크를 그대로 복사하여 붙여 넣은 것 같습니다. 복사하여 붙여 넣을 경우 답변의 출처를 확인하십시오.
fossfreedom

@ fossfreedom nope, 테스트하지는 않았지만 도움이되었습니다. BTW에서 이미 소스를 언급했습니다 this may help you.
Rahul Virpara

당신은 아마도 당신의 출처와 대답의 진실성과 관련하여 더 분명해야합니다. 내 편집을 참조하십시오.
fossfreedom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.