Rocky Linux 8.x의 XRDP 설치 및 사용 법은 아래 URL 참조하시기 바랍니다.
Rocky Linux 8.x에서 XRDP 설치 및 사용
/etc/xrdp/sesman.ini에서 사용자 wm 설정을 다음과 같이 설정
$ sudo vi /etc/xrdp/sesman.ini ... [Globals] … EnableUserWindowManager=true ; Give in relative path to user's home directory UserWindowManager=.vnc/startwm.sh ; Give in full path or relative path to /etc/xrdp DefaultWindowManager=/etc/xrdp/startwm-bash.sh ... |
※사용자마다 다른 세션을 실행하고자 할 경우 위 사용자 윈도우 매니저 설정을 이용합니다. 사용자 윈도우 매니저 설정 파일이 없을 경우 /etc/xrdp/startwm-bash.sh의 내용이 적용됩니다.
/etc/xrdp/xrdp.ini에서 재접속을 위해 vnc-any 세션을 참고하여 일반 vnc 세션을 등록합니다.
$ sudo vi /etc/xrdp/xrdp.ini...; Generic VNC Proxy ; Tailor this to specific hosts and VNC instances by specifying an ip ; and port and setting a suitable name. [vnc-reconnect] name=reconnect lib=libvnc.so ip=localhost port=ask59 username=na password=ask ... |
/etc/xrdp/sesman.ini에서 Policy=UBC로 변경(UBC=> User, Bit Per Pixel, Connect, 모든 연결에 새로운 세션 생성)
$ sudo vi /etc/xrdp/sesman.ini … [Sessions] … Policy=UBC … |
같은 사용자로 하는 멀티 세션 설정을 위해서 DBUS 설정이 필요함. /etc/X11/xint/Xsession 파일 상단에 다음 내용 추가
$ sudo vi /etc/X11/xinit/Xsession #!/usr/bin/bash export $(dbus-launch --exit-width-x11) ... |
위 멀티 세션 설정 1.에서 정한 경로에서 startwm.sh 파일 생성 후 다음 내용 추가
$ vi /etc/xrdp/startwm-bash.sh (sleep 3; cp ${HOME}/.vnc/passwd ${HOME}/.vnc/sesman_passwd-${USER}@${HOSTNAME}${DISPLAY/.0/})& /etc/X11/xinit/Xsession |
※ 설명
xrdp를 사용할 사용자마다 vncpasswd 명령을 사용하여 위 1.의 $HOME/.vnc/passwd 파일을 생성
$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used |
※ 참고
x11vnc 설치 및 설정
$ sudo yum install x11vnc |
x11vnc가 /etc/xrdp/startwm-bash.sh에서 자동 실행되도록 설정합니다.
$ sudo vi /etc/xrdp/startwm-bash.sh #!/usr/bin/bash x11vnc -repeat -display $DISPLAY -shared -forever -rfbauth $HOME/.vnc/passwd -rfbport 59`printf %02d $(expr match "$DISPLAY" '.*:\([0-9]*\).*')`& ... |
※ x11vnc 설명:
x11vnc는 Xorg 서버에 vnc로 접속할 수 있도록 합니다.
-repeat: 키가 연속적으로 입력이 될 수 있도록 하는 옵션입니다.
-shared: 화면 공유 옵션입니다.
-forever: vnc 세션을 닫아도 다음 연결을 위해 대기하도록 하는 옵션입니다.
-rfbauth: vnc 세션의 접속 암호로 사용할 파일을 지정합니다.
-rfbport: vnc 접속을 위해 대기하기 위한 포트입니다. 위 명령은 $DISPLAY의 값과 연동하도록 하였습니다.
Xrdp 세션으로 Xvnc 세션이나 Xorg 세션을 선택할 수 있습니다.
xrdp 실행 후 Xvnc 세션 선택
사용자 이름과 암호(사용자 암호) 입력 후 세션 실행
터미널 등에서 echo $DISPLAY 명령 확인
ex):11.0 => 11(스크린 번호인 .0을 제외한 번호 11을 기억)
xrdp 실행 후 위 '멀티 세션 생성' 에서 등록한 일반 vnc 세션인 'reconnect' 세션을 선택합니다.
Port에 위 3.의 디스플레이 번호에 5900번을 더한 숫자 입력합니다.
ex) 11 => 5911
Password에 위 '각 세션에 재접속하기 위한 설정' 2.에서 vncpasswd 명령으로 정한 암호 입력
사용자 이름과 암호(사용자 암호) 입력 후 세션 실행합니다.
터미널 등에서 $DISPLAY 확인합니다.
위 명령은 $DISPLAY가 :11.0임을 나타내고 있습니다. 이 디스플레이 번호 11과 VNC 대기 포트 11을 연동시킨 위 x11vnc 명령 설정으로 VNC는 5911번에서 대기 상태에 있게 됩니다.
로그 아웃이 아닌 xrdp 종료. 로그 아웃을 선택하면 세션 자체가 종료됩니다.
xrdp 실행 후 위 '멀티 세션 생성' 에서 등록한 일반 vnc 세션인 'reconnect' 세션을 선택합니다.
Port에 위 3.의 디스플레이 번호에 5900번을 더한 숫자 입력
ex) 11 => 5911
Password에 vncpasswd 명령으로 정한 암호 입력합니다.