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