SW/리눅스

Debian 9 : VNC 설정하는 방법, 예제, 명령어

얇은생각 2021. 1. 29. 07:30
반응형

이 튜토리얼에서는 Debian 9에 VNC 서버를 설치하고 구성하는 방법에 대해 설명합니다. SSH 터널을 생성하고 VNC 서버에 안전하게 연결하는 방법도 보여드리겠습니다. 

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

 

Debian 9 : VNC 설정하는 방법, 예제, 명령어

 

필수 조건

자습서를 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인하십시오.

 

 

 

데스크톱 환경 설치

Debian 서버에 데스크톱 환경이 설치되지 않았을 가능성이 있습니다. 첫 번째 단계는 경량 데스크톱 환경을 설치하는 것입니다.

Debian 저장소에는 몇 가지 데스크톱 환경(DE)을 사용할 수 있습니다. Xfce를 선택한 데스크톱 환경으로 사용할 것입니다. 빠르고 안정적이며 가벼우므로 원격 서버에서 사용하기에 이상적입니다.

다음 명령을 사용하여 패키지 인덱스를 업데이트하고 Debian 서버에 Xfce를 설치합니다.

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

 

 

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

 

 

 

VNC 서버를 설치

또한 Tight VNC, Tiger VNC, x11vnc와 같은 Debian 저장소에는 여러 가지 VNC 서버를 사용할 수 있습니다. 각 VNC 서버는 속도와 보안 측면에서 장단점이 있습니다.

적극적으로 유지관리되는 고성능 VNC 서버인 Tiger VNC를 사용할 것입니다. Debian 서버에 Tiger VNC를 설치하려면 다음 명령을 내립니다.

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

 

 

VNC 서버가 설치되면 vncserver 명령을 실행하여 초기 구성을 생성하고 암호를 설정합니다. 다음 명령을 실행할 때 sudo를 사용하지 마십시오.

vncserver

 

 

암호를 입력 및 확인하라는 메시지가 표시되고 암호를 보기 전용 암호로 설정할지 여부를 묻는 메시지가 표시됩니다. 보기 전용 암호를 설정하도록 선택하면 사용자가 마우스 및 키보드를 사용하여 VNC 인스턴스와 상호 작용할 수 없습니다. 

# You will require a password to access your desktops.
# 
# Password:
# Verify:
# Would you like to enter a view-only password (y/n)? n
# /usr/bin/xauth:  file /home/linuxize/.Xauthority does not exist
# 
# New 'debian9.localdomain:1 (linuxize)' desktop at :1 on machine debian9.localdomain
# 
# Starting applications specified in /etc/X11/Xvnc-session
# Log file is /home/linuxize/.vnc/debian9.localdomain:1.log
# 
# Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.

 

 

vncserver 명령을 처음 실행하면 암호 파일이 생성되어 ~/.vnc 디렉토리에 저장됩니다.

위 출력에서 호스트 이름 뒤에 나오는 :1을 기록해 두십시오. vnc 서버가 실행 중인 표시 포트 번호를 나타냅니다. 이 경우 서버는 TCP 포트 5901(5900+1)에서 실행 중입니다. vnc 서버를 사용하여 두 번째 인스턴스를 생성하면 다음 사용 가능한 포트(예:2)에서 실행됩니다. 즉, 서버가 포트 5902(5900+2)에서 실행 중임을 의미합니다. 

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

다음 단계를 진행하기 전에 -kill 옵션과 함께 vncserver 명령을 사용하고 서버 번호를 인수로 사용하여 VNC 인스턴스를 중지합니다. 이 경우 서버는 포트 5901(:1)에서 실행 중이므로 다음 작업을 통해 중지합니다.

vncserver -kill :1

# Killing Xtigervnc process ID 6677... success!

 

 

 

VNC 서버 구성

이제 Xfce와 Tiger VNC가 모두 기계에 설치되었으므로 Xfce를 사용하도록 Tiger VNC를 구성해야 합니다. 이렇게 하려면 다음 파일을 만드십시오.

# ~/.vnc/xstartup


#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

 

 

 완료되면 파일을 저장한 후 닫습니다. 위의 스크립트는 Tiger VNC 서버를 시작하거나 재시작할 때마다 자동으로 실행됩니다.

~/.vnc/x 시작 파일에도 실행 권한이 있어야 합니다. 다음 chmod 명령을 실행하여 권한이 올바른지 확인합니다.

chmod u+x ~/.vnc/xstartup

 

 

VNC 서버에 추가 옵션을 전달해야 하는 경우 구성이라는 파일을 생성하고 한 줄에 하나의 옵션을 추가할 수 있습니다. 다음은 예입니다.

# ~/.vnc/config

geometry=1920x1080
dpi=96

 

 

 

Systemd 단위 파일 생성

systemd 장치 파일을 사용하면 필요에 따라 VNC 서비스를 쉽게 시작, 중지 및 재시작할 수 있습니다.

텍스트 편집기를 열고 다음 구성을 복사하여 붙여 넣습니다. 7번 라인에서 사용자 이름과 일치하도록 사용자 이름을 변경하는 것을 잊지 마십시오.

# /etc/systemd/system/vncserver@.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

 

 

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

다음 명령을 실행하여 새 vncserver@.service 파일이 있음을 systemd에 알립니다.

sudo systemctl daemon-reload

 

 

그런 다음 서비스를 사용하도록 설정합니다.

sudo systemctl enable vncserver@1.service

 

 

@ 기호 뒤의 숫자 1은 VNC 서비스가 실행될 디스플레이 포트를 정의합니다. 1을 사용하고 있으므로 이전 섹션에서 설명한 대로 VNC 서버는 포트 5901을 수신합니다.

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

sudo systemctl start vncserver@1.service

 

 

서비스가 성공적으로 시작되었는지 확인합니다.

sudo systemctl status vncserver@1.service

# ● vncserver@1.service - Remote desktop service (VNC)
#    Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
#    Active: active (running) since Wed 2018-10-03 05:23:33 PDT; 51s ago
#   Process: 7063 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
#  Main PID: 7071 (vncserver)
#     Tasks: 0 (limit: 4915)
#    CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
#            ‣ 7071 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg

 

 

 

VNC 서버 연결

VNC는 암호화된 프로토콜이 아니며 패킷 스니핑의 대상이 될 수 있습니다. 권장되는 방법은 포트 5901의 로컬 시스템에서 동일한 포트의 서버로 트래픽을 안전하게 전달하는 SSH 터널을 만드는 것입니다.

 

 

 

Linux 및 MacOS에서 SSH 터널링 설정

시스템에서 리눅스, macOS 또는 기타 유닉스 기반 운영 체제를 실행하는 경우 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를 입력합니다.

Debian 9 : VNC 설정하는 방법, 예제, 명령어 1

 

 

연결 메뉴에서 SSH를 확장하고 터널을 선택합니다. 소스 포트 필드에 VNC 서버 포트(5901)를 입력하고 Destination 필드에 server_ip_address:5901을 입력하고 아래 이미지에 표시된 대로 Add 버튼을 클릭합니다.

Debian 9 : VNC 설정하는 방법, 예제, 명령어 2

 

 

세션 페이지로 돌아가 설정을 저장하여 매번 입력할 필요가 없습니다. 이제 Open 버튼을 클릭하여 저장된 세션을 선택하고 원격 서버에 로그인하기만 하면 됩니다.

 

 

 

Vncviewer로 연결

SSH 터널링을 설정했으므로 이제 Vnc 뷰어를 열고 localhost:5901의 VNC 서버에 연결해야 합니다.

Tiger VNC, Tight VNC, RealVNC, UltraVNC, Vinagre 및 VNC 뷰어 for Google Chrome과 같은 VNC 뷰어를 사용할 수 있습니다.

이 예에서는 Tiger VNC를 사용합니다. VNC 뷰어를 열고 localhost:5901을 입력한 다음 Connect(연결) 버튼을 클릭합니다.

Debian 9 : VNC 설정하는 방법, 예제, 명령어 3

 

 

메시지가 표시되면 암호를 입력하면 기본 Xfce 데스크톱이 표시됩니다. 다음과 같은 형태가 되어야 합니다.

Debian 9 : VNC 설정하는 방법, 예제, 명령어 4

 

 

이제 VNC를 통해 서버에 성공적으로 연결되었습니다. 이제 키보드와 마우스를 사용하여 로컬 컴퓨터에서 원격 XFCE 데스크톱과 상호 작용할 수 있습니다.

반응형