리눅스 VNC Server 10분만에 구축하기
목차
VNC란?
VNC(Virtual Network Computing, 가상 네트워크 컴퓨팅)는 컴퓨터 환경에서 RFB 프로토콜을 이용하여 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱(GUI 기반) 공유 시스템이다. 자판과 마우스 이벤트를 한 컴퓨터에서 다른 컴퓨터로 전송시켜서 네트워크를 거쳐 그래픽 화면을 갱신하는 방식을 제공하며, 영국 케임브리지의 Olivetti & Oracle Research Lab(ORL)은 올리베티와 오라클이 해당 연구소를 소유했던 당시에 VNC를 개발하였다.
VNC 구성
서버와 클라이언트의 구조를 가지는 VNC는 컴퓨터에 서버를 설치 후 구동해서 원격지인 클라이언트에서 서버로 접속하며 컴퓨터를 제어할 수 있다. 화면을 공유하는 시스템에는 VNC 서버를 설치하고 원격지에는 VNC 클라이언트를 설치하고 이후 네트워크에 연결된 컴퓨터에 원격으로 접속해서 컴퓨터의 화면을 보면서 제어할 수 있게 된다.
원격 접속은 (1 대 1) 뿐만 아니라 (1 대 다수) 접속도 가능하며, 화면에 접속한 모든 클라이언트의 화면이 표시된다.
VNC는 리눅스나 윈도우 같은 플랫폼 간의 데스크톱을 공유하거나, 모바일 기기 제어, 임베디드 기기 제어 등 여러곳에 여러곳에 사용할 수 있으며 RealVNC, TightVNC, UltraVNC 등 여러가지가 종류가 존재하며 대부분 상용이 아닌 무료로 제공되고 있다.
VNC Server 구축
VNC Server 구축 사전 준비
OS 정보확인
cat /etc/redhat-release
SELinux OFF
SELinux 재부팅 하지 않고 OFF 방법
setenforce 0
SELinux 영구적 OFF 방법
SELINUX=enforcing 을 SELINUX=disabled 로 변경후 저장한다.
vi /etc/sysconfig/selinux
SELinux 상태 확인
sestatus
VNC Server 구축을 위한 패키지 설치
#리눅스 update 진행
yum -y update
#EPEL은 Extra Packages of Enterprise Linux 의 준말이며, 리눅스의 추가 패키지다.
yum -y install epel-release
#OS를 최설치하여 그래픽 환경이 존재하지 않을 시 설치
yum -y groupinstall "GNOME Desktop"
#VNC Server Packages Install
yum install -y tigervnc-server
#시스템 반영
systemctl daemon-reload
VNC Client 패키지 설치
#VNC에 접속하기 위한 패키지 설치
yum -y install tigervnc
VNC User 생성
View 전용을 사용하지 않는다면 다음 구문에서 n을 입력하고 View 전용을 사용한다면 y를 입력하여 준다.
Would you like to enter a view-only password (y/n)?
[testuser3@vncserver ~]$ vncserver :3 -geometry 3840x1080 -depth 24
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
New 'vncserver:3 (testuser3)' desktop is vncserver:3
Starting applications specified in /home/testuser3/.vnc/xstartup
Log file is /home/testuser3/.vnc/vncserver:3.log
[testuser3@vncserver ~]$
VNC File 설명
경로 및 File name | 설명 |
$HOME/.vnc/xstartup | VNC 데스크탑이 시작될 때 실행할 X 응용 프로그램을 지정하는 셸 스크립트이며, 이 파일이 없으면 vncserver는 선택한 창 관리자를 시작하려고 시도하는 기본 xstartup 스크립트를 만든다. |
$HOME/.vnc/passwd | VNC 암호 파일이다. |
$HOME/.vnc/ 호스트 : 디스플레이# .log | Xvnc 및 응용 프로그램에 대한 로그 파일이다. |
$HOME/.vnc/ 호스트 : 디스플레이# .pid | -kill 옵션 에서 사용하는 Xvnc 프로세스 ID를 식별하기 위한 파일이다. |
VNC Firewall 방화벽 허용
#예시에서는 5901 port open
firewall-cmd --permanent --add-port=5901/tcp
#firewall 재실행
firewall-cmd --reload
VNC Iptable 방화벽 허용
#사용할 port 수만큼 Open 예시에서 5900 ~ 6000 Open 설정
iptables -I INPUT -p tcp -m multiport --dport 5900:6000 -j ACCEPT
#iptable 방화벽 정책 저장
service iptables save
#서비스 재시작
systemctl restart iptables
VNC 실행
vncserver :[port number] -geometry [해상도] -depth [number(기본값 24)]
#예시
vncserver :1 -geometry 3840x1080 -depth 24
VNC 종료
vncserver -kill :[port number]
#예시
vncserver -kill :1
VNC 접속
VNC Viewer를 사용하여 [IP Address]:[port number] 입력 후 접속