보통 리눅스 깔면서 vncserver가 설치 되므로 설정 위주로 설명.
VNC 서버 설정법
# vi /etc/sysconfig/vncservers
를 수행한다.
다음 화면에서
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>.
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600"
VNCSERVERS="1:root 2:samsiki"
VNCSERVERARGS[1]="-geometry 1152x864"
VNCSERVERARGS[2]="-geometry 1280x1024"
붉은 색으로 표시된 부분을 추가한다.
VNCSERVERS="1:root 2:samsiki"
위 구문은 VNC 서버에 접속하는 아이디와 번호를 설정하는 구문이다. samsiki는 Linux상의 user로서
useradd를 통해 계정을 추가한다.
VNCSERVERARGS[1]="-geometry 1152x864"
위 구문은 VNC 서버에 접속할 때 환경설정이다. 1152x864는 윈도우 창이다.
VNCSERVERARGS[1]에서 1은 user에 대응되는 숫자이다.
이 숫자는 클라이언트에서 접속하는데 사용된다.
모든 설정을 진행한 후 저장하고 vi editor를 종료한다.
VNC 서버를 사용할 계정으로 접속한다.
(꼭 사용자 계정으로 접속할것. root 계정으로 걍 하다가 낭패봄)
사용자 계정 홈디렉토리로 이동한다.
(여기서는 'root'와 'samsiki' 두명의 계정을 추가했으니 둘다 만들어줘야함)
사용자 계정]$ mkdir .vnc
위 명령을 수행해 .vnc서버를 만든다.
.vnc 디렉토리로 이동한다.
사용자 계정]$ cd .vnc
사용자 계정 .vnc]$ vncpasswd
password : (6자리 이상입력)
verify : (재입력)
루트 사용자로 이동하여 vnc서버를 수행한다.
root]$ service vncserver start
수행되면 사용자 계정 밑에 .vnc서버로 이동하면 vnc관련 파일들이 생긴다.
/root/.vnc 디렉토리에 가보면 xstartup 이라는 파일이 있는데 이 파일은 VNC 서버가 동작하면서 X window의 상태를 지정한다.
그래서 우리가 보아온 X window를 보려면
xstartup 파일을 지우고
/etc/X11/xinit 디렉토리에 있는 xinitrc 파일을 xstartup 이름으로 복사한다.
이 방법말고 다른방법이 있다.
사용자 계정 .vnc]$ vi xstartup
을 통해 xstartup을 다음과 같이 수정해 KDE로 설정한다.
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm &
startkde &
붉은색으로 표시된 부분은 최초 주석처리가 되지 않은 부분으로 이 부분을 주석 처리한다.
파란색으로 표시된 부분을 추가 시켜 vnc가 KDE 환경에서 수행되도록 한다.
(하지만 이방법으로 삽질할 경우가 생길수있다. 처음방법을 그럴땐 처음방법을 써라.)
수행되고 있는 VNC 서버를 다시 수행 시켜 재설정된 VNC를 동작 시킨다.
root]$ service vncserver restart
물론 vnc서버 재시작은 root 계정으로 수행한다.
(출처 : http://skyoon.tistory.com/entry/VNC-서버-설정)
===================================================================================================
TightVNC 설치
1. TightVNC 개요
VNC(Virtual Network Computing)는 네트워크를 통해 원격 컴퓨터를 사용하는 기능입니다. VNC 접속은 Server와 Client 개념으로 접속을 하는 컴퓨터가 Client가 되고 원격지에서 있는 컴퓨터가 Server가 됩니다. 서버에는 서버 프로그램이 실행되어야 하며, 클라이언트 프로그램을 실행하여 접속을 합니다. VNC 프로그램은 X 윈도우 환경의 차이로 인해 동작에 문제가 있으므로 TightVNC 프로그램을 사용하기를 권장합니다.
VNC 서버를 다운받는 곳:
http://www.tightvnc.org/download.html
http://rpm.pbone.net/ 에서 tightvnc-server 로 검색
주의: tightvnc-server를 설치할 때 XFree86과의 의존성 문제 등으로 오류가 발생할 수도 있는데, 이때는 --force --nodeps 옵션으로 강제로 설치해 주세요. 사용에는 큰 문제가 발생되지 않습니다.
2. TightVNC 설치
아래의 순서대로 기존에 설치되어 있는 VNC를 삭제하고 tightvnc 프로그램을 설치합니다.
가. 기존에 설치된 VNC 프로그램이 있으면 확인하고, 삭제합니다.
[root@localhost ~]# rpm -qa | grep vnc
vnc-4.0-9
vnc-server-4.0-9
[root@localhost ~]# rpm -e vnc vnc-server
나. http://www.tightvnc.org/download.html 에서 프로그램을 다운 받습니다.
tightvnc-1.2.9-1.i386.rpm # Client용 프로그램
tightvnc-server-1.2.9-1.i386.rpm # Server용 프로그램
다. Server시스템과 Client시스템 각각에 해당 프로그램들을 설치합니다.
// 의존성 문제로 오류가 발생 되면,
[root@localhost ~]# rpm -Uvh tightvnc-server-1.2.9-1.i386.rpm
오류: Failed dependencies:
XFree86 is needed by tightvnc-server-1.2.9-1
// 의존성을 무시하고 --nodeps --force 옵션으로 강제로 설치하세요.
[root@localhost ~]# rpm -Uvh tightvnc-server-1.2.9-1.i386.rpm --nodeps --force
준비 중... ################################# [100%]
1:tightvnc-server ################################# [100%]
[root@localhost ~]# rpm -Uvh tightvnc-1.2.9-1.i386.rpm
준비 중... ################################# [100%]
1:tightvnc ################################# [100%]
3. VNC 설정 및 구동
가. 서버 설정 및 구동
Client에서 Server로 접속할 때 서버에서 인증할 비밀번호를 설정(6자리 이상)
[root@localhost ~]# vncpasswd
Using password file /root/.vnc/passwd
VNC directory /root/.vnc does not exist, creating.
Password:
Verify:
[root@localhost ~]#
※ 위 명령을 실행하면, 해당 계정의 홈 디렉토리 아래에 .vnc라는 디렉토리가 생성되며, passwd 파일에 패스워드가 암호화되어 저장됩니다.
나. 서버프로그램의 실행: # vncserver 명령어로 VNC 서버를 실행합니다.
[root@localhost .vnc]# vncserver
New ''X'' desktop is localhost.localdomain:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:2.log
[root@localhost .vnc]#
위와 같이 vncserver를 실행하면 해당 계정 홈디렉토리의 .vnc 아래에 xstartup 파일과 log 파일이 생성됩니다.
xstartup은 Client에서 VNC 서버로 접속할 때 사용하는 X환경 초기화 실행스크립트이며, log는 접속 결과를 저장하는 파일입니다.
보통 리눅스 부팅 시 런레벨(Run-Level)이 5로 X윈도우 환경을 띄우는 경우 디스플레이(Display) 0번을 사용합니다.
여기서 VNC 서버를 실행하면 이미 로딩 된 디스플레이에서 순차적으로 번호를 증가하며 Xvnc를 띄웁니다.
vncserver 명령을 여러 번 실행하면, 그때마다 순차적으로 증가된 번호로 vncserver가 가동됩니다.
위의 예에서는 ''localhost.localdomain:2''으로 표시되어 있는 것을 볼 때, vncserver를 2번 실행했을 때의 화면임을 알 수 있습니다.
이렇게 2개의 vncserver가 가동되면 Client에서 원격 접속 시 2개의 루트로 각각 접속할 수 있습니다.
그리고, /tmp 디렉토리 아래에 외부에서 접속했을 때 임시로 사용되는 디렉토리가 생성됩니다.
/tmp/.X11-unix/X0
/tmp/.X11-unix/X1
/tmp/.X11-unix/X2
(출처 : Tong - ragran님의 리눅스통)