Ubuntu 16.04에서 VNC를 설치하고 구성하는 방법
###소개
VNC 또는 "Virtual Network Computing\은 키보드와 마우스를 사용하여 원격 서버의 그래픽 데스크탑 환경과 상호 작용할 수 있는 연결 시스템입니다. 아직 명령줄에 익숙하지 않은 사용자
이 가이드에서는 Ubuntu 16.04 서버에 VNC를 설정하고 SSH 터널을 통해 안전하게 연결합니다. 우리가 사용할 VNC 서버는 빠르고 가벼운 원격 제어 패키지인 TightVNC입니다. 이 선택은 느린 인터넷 연결에서도 VNC 연결이 원활하고 안정적임을 보장합니다.
##전제 조건
이 자습서를 완료하려면 다음이 필요합니다.
- 루트가 아닌 sudo 사용자가 포함된 Ubuntu 16.04 초기 서버 설정 자습서를 통해 설정된 Ubuntu 16.04 Droplet. 이 자습서는 모든 크기의 Droplet을 사용하여 완료할 수 있지만 더 작은 Droplet에 구축된 VNC는 더 큰 Droplet보다 기능에 더 많은 제한이 있을 수 있습니다.\n
- SSH 터널을 통한 VNC 연결을 지원하는 VNC 클라이언트가 설치된 로컬 컴퓨터. Windows를 사용하는 경우 TightVNC, RealVNC 또는 UltraVNC를 사용할 수 있습니다. Mac OS X 사용자는 내장된 화면 공유 프로그램을 사용하거나 RealVNC와 같은 교차 플랫폼 앱을 사용할 수 있습니다. Linux 사용자는
vinagre
,krdc
, RealVNC, TightVNC 등 다양한 옵션 중에서 선택할 수 있습니다.\n
##1단계 — 데스크톱 환경 및 VNC 서버 설치
기본적으로 Ubuntu 16.04 Droplet에는 그래픽 데스크톱 환경이나 VNC 서버가 설치되어 있지 않으므로 설치부터 시작하겠습니다. 특히 최신 Xfce 데스크톱 환경용 패키지와 공식 Ubuntu 리포지토리에서 사용할 수 있는 TightVNC 패키지를 설치합니다.
서버에 Xfce 및 TightVNC 패키지를 설치합니다.
- sudo apt-get update
- sudo apt install xfce4 xfce4-goodies tightvncserver
설치 후 VNC 서버의 초기 구성을 완료하려면 vncserver
명령을 사용하여 보안 암호를 설정하십시오.
- vncserver
비밀번호와 보기 전용 비밀번호를 입력하고 확인하라는 메시지가 표시됩니다. 보기 전용 비밀번호로 로그인한 사용자는 마우스나 키보드로 VNC 인스턴스를 제어할 수 없습니다. VNC 서버를 사용하는 다른 사람에게 무언가를 시연하고 싶지만 필요하지 않은 경우 유용한 옵션입니다.
vncserver
를 실행하면 서버에서 사용할 기본 구성 파일과 연결 정보를 생성하여 VNC 설치가 완료됩니다. 이러한 패키지가 설치되면 이제 VNC 서버를 구성할 준비가 되었습니다.
##2단계 - VNC 서버 구성
먼저 VNC 서버가 시작할 때 수행할 명령을 알려줘야 합니다. 이러한 명령은 홈 디렉터리 아래의 .vnc
폴더에 있는 xstartup
이라는 구성 파일에 있습니다. 시작 스크립트는 이전 단계에서 vncserver
를 실행할 때 생성되었지만 Xfce 데스크톱에 대한 일부 명령을 수정해야 합니다.
VNC가 처음 설정되면 포트 5901에서 기본 서버 인스턴스를 시작합니다. 이 포트를 디스플레이 포트라고 하며 VNC에서 :1
로 참조합니다. VNC는 :2
, :3
등과 같은 다른 디스플레이 포트에서 여러 인스턴스를 시작할 수 있습니다. VNC 서버로 작업할 때 :X
를 기억하십시오. 5900+X
를 참조하는 디스플레이 포트입니다.
VNC 서버 구성 방식을 변경할 것이기 때문에 먼저 포트 5901에서 실행 중인 VNC 서버 인스턴스를 중지해야 합니다.
- vncserver -kill :1
다른 PID를 사용하여 출력은 다음과 같아야 합니다.
OutputKilling Xtightvnc process ID 17648
새 xstartup
파일 구성을 시작하기 전에 원본을 백업하겠습니다.
- mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
이제 nano
또는 좋아하는 텍스트 편집기를 사용하여 새 xstartup
파일을 만듭니다.
- nano ~/.vnc/xstartup
이 명령을 파일에 붙여넣어 VNC 서버를 시작하거나 다시 시작할 때마다 자동으로 수행되도록 한 다음 파일을 저장하고 닫습니다.
~/.vnc/xstartup#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
파일의 첫 번째 명령인 xrdb $HOME/.Xresources
는 VNC의 GUI 프레임워크에 서버 사용자의 .Xresources
파일을 읽도록 지시합니다. .Xresources
는 사용자가 터미널 색상, 커서 테마 및 글꼴 렌더링과 같은 그래픽 데스크톱의 특정 설정을 변경할 수 있는 곳입니다. 두 번째 명령은 단순히 서버에 Xfce를 시작하라고 지시합니다. 여기에서 서버를 편안하게 관리하는 데 필요한 모든 그래픽 소프트웨어를 찾을 수 있습니다.
VNC 서버가 이 새로운 시작 파일을 제대로 사용할 수 있도록 하려면 실행 권한을 부여해야 합니다.
- sudo chmod +x ~/.vnc/xstartup
이제 VNC 서버를 다시 시작하십시오.
- vncserver
서버는 다음과 유사한 출력으로 시작되어야 합니다.
OutputNew 'X' desktop is your_server_name.com:1
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/liniverse.com:1.log
##3단계 — VNC 데스크톱 테스트
이 단계에서는 VNC 서버의 연결을 테스트합니다.
먼저 VNC용 localhost
연결로 안전하게 전달하는 SSH 연결을 로컬 컴퓨터에 생성해야 합니다. 다음 명령을 사용하여 Linux 또는 OS X의 터미널을 통해 이 작업을 수행할 수 있습니다. user
및 server_ip_address
를 루트가 아닌 sudo 사용자 이름과 서버의 IP 주소로 교체해야 합니다.
- ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
PuTTY와 같은 그래픽 SSH 클라이언트를 사용하는 경우 server_ip_address
를 연결 IP로 사용하고 localhost:5901
을 새 전달 포트로 설정합니다. 프로그램의 SSH 터널 설정에서.
다음으로 이제 VNC 클라이언트를 사용하여 localhost:5901
에서 VNC 서버에 대한 연결을 시도할 수 있습니다. 인증하라는 메시지가 표시됩니다. 사용할 올바른 비밀번호는 1단계에서 설정한 비밀번호입니다.
연결되면 기본 Xfce 데스크톱이 표시됩니다. 다음과 같아야 합니다.
다음과 같이 파일 관리자를 사용하거나 명령줄에서 홈 디렉토리의 파일에 액세스할 수 있습니다.
##4단계 - VNC 서비스 파일 만들기
다음으로 VNC 서버를 시스템 서비스로 설정합니다. 이렇게 하면 다른 systemd 서비스와 마찬가지로 필요에 따라 시작, 중지 및 다시 시작할 수 있습니다.
먼저 즐겨 사용하는 텍스트 편집기를 사용하여 /etc/systemd/system/vncserver@.service
라는 새 단위 파일을 만듭니다.
- sudo nano /etc/systemd/system/vncserver@.service
다음을 복사하여 붙여넣으십시오. 사용자 이름과 일치하도록 User 값과 PIDFILE 값의 사용자 이름을 변경해야 합니다.
/etc/systemd/system/vncserver@.service[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=sammy
PAMName=login
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
파일을 저장하고 닫습니다.
다음으로 시스템이 새 단위 파일을 인식하도록 합니다.
- sudo systemctl daemon-reload
단위 파일을 활성화합니다.
- sudo systemctl enable vncserver@1.service
@
기호 다음의 1
은 서비스가 표시되어야 하는 디스플레이 번호를 나타냅니다. 이 경우 위에서 설명한 기본 :1
입니다.
- vncserver -kill :1
그런 다음 다른 systemd 서비스를 시작하는 것처럼 시작하십시오.
- sudo systemctl start vncserver@1
다음 명령으로 시작되었는지 확인할 수 있습니다.
- sudo systemctl status vncserver@1
올바르게 시작된 경우 출력은 다음과 같아야 합니다.
vncserver@1.service - TightVNC server on Ubuntu 16.04
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)
...
systemd[1]: Starting TightVNC server on Ubuntu 16.04...
systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[1]: Started TightVNC server on Ubuntu 16.04.
##결론
이제 Ubuntu 16.04 서버에서 보안 VNC 서버가 실행되고 있어야 합니다. 이제 사용하기 쉽고 친숙한 그래픽 인터페이스로 파일, 소프트웨어 및 설정을 관리할 수 있습니다.