보통 서버에서 작업을 할 때 터미널 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
로 만들어준 비밀번호로 로그인하면 됨.
성공화면