Create TOC

레이블이 xrdp인 게시물을 표시합니다. 모든 게시물 표시
레이블이 xrdp인 게시물을 표시합니다. 모든 게시물 표시

2021년 1월 27일

Debian/KDE에 xrdp 환경 설정

KDE에 xrdp 환경을 설정한다.

xrdp

설치

$ sudo apt install xrdp

설정

xrdp

/etc/xrdp/xrdp.ini에 아래 내용을 추가한다.

[x11vnc]
name=x11vnc
lib=libvnc.so
ip=127.0.0.1
port=5900
username=na
pamusername=ask
pampassword=ask
pamsessionmng=127.0.0.1

설정이 끝나면 xrdp 서버를 재시작한다.

$ sudo systemctl restart xrdp

방화벽

192.168.0.x 대역에서만 접속할 수 있게 방화벽을 설정한다.

$ sudo ufw allow from 192.168.0.0/24 to any port 3389 comment RDP

x11vnc

xrdp에서 사용할 x11vnc 서버를 설정한다. KDE의 krfb를 사용하면 한글 입력시 자소가 분리된다.

설치

$ sudo apt install x11vnc

systemd 설정

아래 명령으로 x11vnc.service 파일을 편집한다.

$ sudo systemctl edit --force --full x11vnc.service

파일 내용은 아래와 같다. xrdp에서만 접속하기 때문에 -localhost옵션을 넣었고 비밀번호를 사용하지 않기 위해 -nopw옵션을 사용했다.

[Unit]
Description=x11vnc server for SDDM
Requires=display-manager.service
After=display-manger.service

[Service]
ExecStartPre=/bin/bash -c 'while ! find /var/run/sddm -type f; do sleep 2; done' 
ExecStart=/bin/bash -c "/usr/bin/x11vnc -display :0 -auth $(/usr/bin/find /var/run/sddm/ -type f) -nopw -shared -xkb -norepeat -noxrecord -noxdamage -localhost -no6 -loop -forever"

[Install]
WantedBy=graphical.target

테스트

적당한 RDP client를 사용해 접속이 잘되는지 확인한다.

자동 실행 설정

재부팅 후 자동 실행하도록 설정한다.


$ sudo systemctl enable x11vnc.service

입력기 설정

RDP Client 에 따라서 오른쪽 alt 키나 한/영 키가 동작 안할 수 있기 때문에, 사용하는 입력기 설정에서 한/영 전환 키에 shift+space를 추가해둔다.

2014년 5월 10일

Debian/XRDP + X11VNC + GDM3

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