VNC를 사용하여 linux 서버 GUI 다루기

in #vnc7 years ago

보통 서버에서 작업을 할 때 터미널 ssh만 사용하지만, 가끔 gui가 필요할 때가 있다. 예를 들어, 브라우저를 켜서 로그인을 하여 인증을 받아야 다운받을 수 있는 링크가 있을때.

그래서 VNC를 사용하여 서버의 gui를 사용해보고자 한다.

HOST server는 UBUNTU 14.04, client는 macOS라고 가정하였지만 다른 경우도 별반 다르지 않을 것이다. 주요 아이디어는 VNC-server를 Host에서 작동시키고, client에서는 Host로 적절 Port(:590x)에 Portforward를 하고 localhost:590x에서 접속을 한다.

VNC 설정

서버에서 :

필요한 것들 설치. sudo apt-get install vnc4server, xrdp, xfce4

vncpasswd로 비밀번호 생성. 참고로 8자가 넘어가면 안된다.

그리고 /etc/init.d/vnc-mine 파일을 만들어줌. 여기서 각자 바꿔야할 값은 USER와 DISPLAY.

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="junho"  #Current unbuntu id
DISPLAY="3" #이것도 새로만들어줌.
DEPTH="16"
GEOMETRY="1280x800"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

방금 만든 vnc-mine은 당연히 executable해야함. sudo chmod 755 vnc-mine

그다음 ~/.vnc/xstartup 경로에 다음 코드로 대체. 이미 있을 수 있는데 백업해놓자.

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

chmod 755 xstartup 로 executable하게 바꾼다.
마지막으로 vnc server 가동 sudo service vnc-mine start

클라이언트에서:

vnc-viewer를 설치.
ssh -L 590x:localhost:590x [email protected] 로 클라이언트에서 서버로 포트포워딩.
여기서 x는 아까 vnc-mine에서 DISPLAY에 있는 숫자. 위의 경우에는 3이 들어가야함.
터미널 세션이 켜져있을 동안에 local:590x 에 접속하면 비밀번호가 생기고 아까 vncpasswd로 만들어준 비밀번호로 로그인하면 됨.

성공화면