웹사이트 검색

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 패키지를 설치합니다.

  1. sudo apt-get update
  2. sudo apt install xfce4 xfce4-goodies tightvncserver

설치 후 VNC 서버의 초기 구성을 완료하려면 vncserver 명령을 사용하여 보안 암호를 설정하십시오.

  1. 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 서버 인스턴스를 중지해야 합니다.

  1. vncserver -kill :1

다른 PID를 사용하여 출력은 다음과 같아야 합니다.

Output
Killing Xtightvnc process ID 17648

xstartup 파일 구성을 시작하기 전에 원본을 백업하겠습니다.

  1. mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

이제 nano 또는 좋아하는 텍스트 편집기를 사용하여 새 xstartup 파일을 만듭니다.

  1. nano ~/.vnc/xstartup

이 명령을 파일에 붙여넣어 VNC 서버를 시작하거나 다시 시작할 때마다 자동으로 수행되도록 한 다음 파일을 저장하고 닫습니다.

~/.vnc/xstartup
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &

파일의 첫 번째 명령인 xrdb $HOME/.Xresources는 VNC의 GUI 프레임워크에 서버 사용자의 .Xresources 파일을 읽도록 지시합니다. .Xresources는 사용자가 터미널 색상, 커서 테마 및 글꼴 렌더링과 같은 그래픽 데스크톱의 특정 설정을 변경할 수 있는 곳입니다. 두 번째 명령은 단순히 서버에 Xfce를 시작하라고 지시합니다. 여기에서 서버를 편안하게 관리하는 데 필요한 모든 그래픽 소프트웨어를 찾을 수 있습니다.

VNC 서버가 이 새로운 시작 파일을 제대로 사용할 수 있도록 하려면 실행 권한을 부여해야 합니다.

  1. sudo chmod +x ~/.vnc/xstartup

이제 VNC 서버를 다시 시작하십시오.

  1. vncserver

서버는 다음과 유사한 출력으로 시작되어야 합니다.

Output
New '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의 터미널을 통해 이 작업을 수행할 수 있습니다. userserver_ip_address를 루트가 아닌 sudo 사용자 이름과 서버의 IP 주소로 교체해야 합니다.

  1. 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라는 새 단위 파일을 만듭니다.

  1. 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

파일을 저장하고 닫습니다.

다음으로 시스템이 새 단위 파일을 인식하도록 합니다.

  1. sudo systemctl daemon-reload

단위 파일을 활성화합니다.

  1. sudo systemctl enable vncserver@1.service

@ 기호 다음의 1은 서비스가 표시되어야 하는 디스플레이 번호를 나타냅니다. 이 경우 위에서 설명한 기본 :1입니다.

  1. vncserver -kill :1

그런 다음 다른 systemd 서비스를 시작하는 것처럼 시작하십시오.

  1. sudo systemctl start vncserver@1

다음 명령으로 시작되었는지 확인할 수 있습니다.

  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 서버가 실행되고 있어야 합니다. 이제 사용하기 쉽고 친숙한 그래픽 인터페이스로 파일, 소프트웨어 및 설정을 관리할 수 있습니다.