리눅스

본문 바로가기
사이트 내 전체검색


리눅스
리눅스

14. CentOS 7 : VNC 설치

페이지 정보

작성자 관리자 댓글 0건 조회 728회 작성일 22-07-08 23:11

본문

14. CentOS 7 : VNC 설치

CentOS 7에 VNC 서버를 설치하고 구성하는 단계를 설명합니다. 

또한 SSH 터널을 통해 VNC 서버에 안전하게 연결하는 방법에 대해서도 설명합니다. 


VNC(가상 네트워크 컴퓨팅)는 키보드와 마우스를 사용하여 다른 컴퓨터를 원격으로 제어할 수 있는 그래픽 데스크톱 공유 시스템입니다.


1. Xfce 데스크톱 환경 설치


CentOS 서버 설치에는 데스크톱 환경이 설치되어 있지 않은 경우가 많으므로 먼저 경량 데스크톱 환경을 설치합니다.


Xfce를 설치할 예정입니다. 


Xfce 패키지는 EPEL 저장소에서 사용할 수 있습니다. 

서버에서 리포지토리를 활성화하지 않은 경우 다음을 입력하여 활성화할 수 있습니다.


# yum install epel-release


리포지토리가 추가되면 Xfce를 CentOS에 설치합니다.


# yum groupinstall xfce

 

시스템에 따라 Xfce 패키지와 종속성을 다운로드하고 설치하는 데 다소 시간이 걸릴 수 있습니다.


2. VNC 서버 설치


Tiger VNC를 VNC 서버로 사용할 예정입니다. 

Tiger VNC는 적극적으로 관리되는 고성능 오픈 소스 VNC 서버입니다.


다음 명령을 입력하여 CentOS 서버에 Tiger VNC를 설치합니다.


# yum install tigervnc-server

 

이제 VNC 서버가 설치되었으므로 다음 단계에서는 초기 구성을 생성하고 암호를 설정하는 vncserver 명령을 실행합니다. 


다음 명령을 실행할 때 sudo를 사용하지 마십시오.


[root@localhost ~]# vncserver


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

xauth:  file /root/.Xauthority does not exist


New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1


Creating default startup script /root/.vnc/xstartup

Creating default config /root/.vnc/config

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/localhost.localdomain:1.log


[root@localhost ~]#

 

암호를 입력 및 확인하라는 메시지가 표시되고 암호를 보기 전용 암호로 설정할지 여부를 묻는 메시지가 표시됩니다. 

보기 전용 암호를 설정하도록 선택하면 사용자가 마우스 및 키보드를 사용하여 VNC 인스턴스와 상호 작용할 수 없습니다.



vncserver 명령이 처음 실행될 때 암호 파일이 생성되어 없는 경우 생성되는 ~/.vnc 디렉터리에 저장됩니다.


위 출력에서 호스트 이름 뒤에 나오는 :1을 기록해 두십시오. 

vnc 서버가 실행 중인 표시 포트 번호를 나타냅니다. 

이 경우 서버는 TCP 포트 5901(5900+1)에서 실행 중입니다. 

vnc 서버를 사용하여 두 번째 인스턴스를 생성하면 다음 사용 가능한 포트(예:2)에서 실행됩니다. 

즉, 서버가 포트 5902(5900+2)에서 실행 중임을 의미합니다.


VNC 서버 작업 시:X는 5900+X를 나타내는 디스플레이 포트입니다.


다음 단계를 계속하기 전에 먼저 -kill 옵션과 함께 vncserver 명령을 사용하고 서버 번호를 인수로 사용하여 VNC 인스턴스를 중지합니다. 

이 경우 서버는 포트 5901(:1)에서 실행 중이므로 다음 작업을 통해 중지합니다.


[root@localhost ~]# vncserver -kill :1

Killing Xvnc process ID 6527

[root@localhost ~]#


3. VNC 서버 구성


이제 Xfce와 Tiger VNC가 모두 서버에 설치되었으므로 다음 단계는 Xfce를 사용하도록 Tiger VNC를 구성하는 것입니다.

이렇게 하려면 다음 파일을 여십시오.


[root@localhost ~]# vi ~/.vnc/xstartup

#!/bin/sh


unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

/etc/X11/xinit/xinitrc   <-- exec startexce4

# Assume either Gnome or KDE will be started by default when installed

# We want to kill the session automatically in this case when user logs out. In case you modify

# /etc/X11/xinit/Xclients or ~/.Xclients yourself to achieve a different result, then you should

# be responsible to modify below code to avoid that your session will be automatically killed

if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; then

    vncserver -kill $DISPLAY

fi

 


그리고 /etc/X11/xinit/xinitrc에서 exec startexce4로 변경합니다.


파일을 저장한 후 닫습니다. 

위의 스크립트는 Tiger VNC 서버를 시작하거나 재시작할 때마다 자동으로 실행됩니다.


VNC 서버에 추가 옵션을 전달해야 하는 경우 ~/.vnc/config 파일을 열고 행당 하나의 옵션을 추가합니다. 

가장 일반적인 옵션이 파일에 나열됩니다. 

설명을 생략하고 원하는 대로 수정합니다.


다음은 예입니다.


# vi ~/.vnc/config

# securitytypes=vncauth,tlsvnc

# desktop=sandbox

geometry=1920x1080

# localhost

# alwaysshared

dpi=96

 


[root@localhost ~]# vi ~/.vnc/config

## Supported server options to pass to vncserver upon invocation can be listed

## in this file. See the following manpages for more: vncserver(1) Xvnc(1).

## Several common ones are shown below. Uncomment and modify to your liking.

##

# securitytypes=vncauth,tlsvnc

# desktop=sandbox

# geometry=2000x1200

# localhost

# alwaysshared

 


 


4. Systemd 단위 파일 생성


필요에 따라 다른 systemd 서비스와 마찬가지로 VNC 서비스를 쉽게 시작, 중지 및 재시작할 수 있는 systemd 단위 파일을 생성합니다.


cp 명령을 사용하여 vncserver unit 파일을 복사합니다.


# cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

 

텍스트 편집기로 파일을 열고 노란색으로 강조 표시된 줄을 편집한 다음 "root"를 실제 사용자 이름으로 바꿉니다.


# vi /etc/systemd/system/vncserver@:1.service


[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target


[Service]

Type=forking

User=root

Group=root


# Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

ExecStart=/usr/bin/vncserver %I

PIDFile=/root/.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'


[Install]

WantedBy=multi-user.target

 


파일을 저장한 후 닫습니다. 시스템d에 다음과 같이 새 장치 파일을 생성했음을 알립니다.


# systemctl daemon-reload

 


 

다음 단계는 다음 명령으로 장치 파일을 활성화하는 것입니다.


# systemctl enable vncserver@:1.service

  


@ 기호 뒤의 숫자 1은 VNC 서비스가 실행될 디스플레이 포트를 정의합니다.

이 예에서는 이 값이 기본 1이며, 이전 섹션에서 설명한 대로 VNC 서버가 포트 5901을 수신합니다.


# systemctl start vncserver@:1.service

 


다음을 실행하여 VNC 서비스를 시작합니다.


[root@localhost ~]# systemctl status vncserver@:1.service

● vncserver@:1.service - Remote desktop service (VNC)

   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)

   Active: active (running) since 금 2022-07-08 23:10:00 KST; 32s ago

  Process: 8534 ExecStart=/usr/bin/vncserver %I (code=exited, status=0/SUCCESS)

  Process: 8516 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

 Main PID: 8549 (Xvnc)

   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service

           └─8549 /usr/bin/Xvnc :1 -dpi 96 -geometry 1920x1080 -auth /root/.Xauthor...


 7월 08 23:09:57 localhost.localdomain systemd[1]: Starting Remote desktop servic....

 7월 08 23:10:00 localhost.localdomain vncserver[8534]: New 'localhost.localdomain...

 7월 08 23:10:00 localhost.localdomain vncserver[8534]: Starting applications spec...

 7월 08 23:10:00 localhost.localdomain vncserver[8534]: Log file is /root/.vnc/loc...

 7월 08 23:10:00 localhost.localdomain systemd[1]: Started Remote desktop service....

Hint: Some lines were ellipsized, use -l to show in full.

[root@localhost ~]#

 

 

5. VNC 서버에 연결


VNC는 암호화된 프로토콜이 아니며 패킷 스니핑의 대상이 될 수 있습니다. 

권장되는 방법은 포트 5901의 로컬 시스템에서 동일한 포트의 서버로 트래픽을 안전하게 전달하는 SSH 터널을 만드는 것입니다.


 

Linux 에서 SSH 터널링을 설정

시스템에서 리눅스 또는 기타 유닉스 기반 운영 체제를 실행하는 경우 다음 ssh 명령을 사용하여 손쉽게 터널을 생성할 수 있습니다.


# ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

 



사용자 암호를 입력하라는 메시지가 표시됩니다.


사용자 이름과 server_ip_address를 서버의 IP 주소와 사용자 이름으로 바꾸는 것을 잊지 마십시오.

 


윈도우즈에서 SSH 터널링 설정


윈도우즈를 실행하는 경우 PuTTY SSH 클라이언트를 사용하여 SSH 터널링을 설정할 수 있습니다.


Putty를 열고 Host name 또는 IP address 필드에 서버 IP Address를 입력합니다.





VNC viewer 다운로드


Download TightVNC 



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.