xrdp를 사용하면 RDP를 이용해서 원격 접속이 가능해진다. 그러나 기본 설정으로 접속할 경우 GLX 가속 기능을 하나도 쓰지 못하기 때문에 gnome 3.x를 사용할 수 없다.
gnome 3.x에서 xrdp을 사용하려면 일반적인 VNC 서버 대신 지정된 XDISPLAY를 표시해주는 x11vnc를 사용하면 된다.
이 문서는 x11vnc를 부팅시 데몬으로 동작시켜 GDM3화면부터 xrdp로 사용하도록 설정하는 내용을 기술했다.
x11vnc 설정
설치
$ sudo apt-get install x11vnc
vnc 접속 비밀번호 설정
$ sudo x11vnc -storepasswd 비밀번호 /etc/x11vncpasswd
스크립트 작성
아래와 같은 스크립트를 만들어서 /etc/init.d/x11vnc으로 저장한다.
아래 스크립트는 gdm3을 사용한다는 가정으로 작성되었다. 다른 login manager를 쓴다면 그에 맞게 스크립트를 수정해야 한다.
#! /bin/sh ### BEGIN INIT INFO # Provides: x11vnc server # Required-Start: gdm3 # Required-Stop: gdm3 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: x11vnc # Description: Debian init script for the x11vnc ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/x11vnc test -x $DAEMON || exit 0 . /lib/lsb/init-functions wait_gdm3() { authfile=$(find /var/run/gdm3/auth-for-Debian-gdm-*/database) while [ ! -f $authfile ] do authfile=$(find /var/run/gdm3/auth-for-Debian-gdm-*/database) done } case "$1" in start) log_daemon_msg "Starting X11vnc" "x11vnc" wait_gdm3 start-stop-daemon --start --quiet --pidfile /var/run/x11vnc.pid --make-pidfile --background --exec $DAEMON -- -display :0 -env FD_XDM=1 -auth guess -usepw -rfbauth /etc/x11vncpasswd -shared -oa /var/log/x11vnc.log -xkb -repeat -localhost -noxrecord -noxfixes -noxdamage -noncache -loop log_end_msg $? ;; stop) log_daemon_msg "Stopping X11vnc" "x11vnc" set +e start-stop-daemon --stop --quiet --pidfile /var/run/x11vnc.pid --name x11vnc --retry 5 set -e log_end_msg $? ;; status) status_of_proc -p /var/run/x11vnc.pid "$DAEMON" x11vnc && exit 0 || exit $? ;; restart|force-reload) $0 stop sleep 1 $1 stop ;; *) echo -e "Usage: ${SERVICE} {start|stop|status|restart|force-reload}" exit 1 ;; esac exit 0
저장 후 permission을 조절한다.
$ sudo chmod +x /etc/init.d/x11vnc
자동 실행 등록
아래 명령을 이용해서 부팅시 자동 실행되도록 등록한다.
$ sudo update-rc.d x11vnc defaults
x11vnc 시작
재부팅 하거나 아래 명령으로 x11vnc 데몬을 시작한다.
$ sudo /etc/init.d/x11vnc restart
xrdp 설정
설치
아래 명령으로 xrdp을 설치한다.
$ sudo apt-get install xrdp
설정 수정
기본으로 사용할 세션을 x11vnc로 지정하기 위해서 /etc/xrdp/xrdp.ini파일을 열어서 아래와 같이 xrdp1과 xrdp2내용을 바꾼다.
[xrdp1] name=console lib=libvnc.so ip=127.0.0.1 port=5900 username=na password=ask [xrdp2] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1
데몬 재시작
설정이 끝나면 아래 명령으로 xrdp 데몬을 재시작한다.
$ sudo /etc/init.d/xrdp restart