본문 바로가기
programming | development/linux

[Ubuntu] vnc 서버 설치하기

by foooo828 2024. 8. 27.

VNC ?

Visual Network Computing

원격으로 우분투 GUI 데스크탑을 제어 가능하도록 하는 시스템

 

1. tigervnc 설치

sudo apt-get install tigervnc-standalone-server

2. 데스크톱 환경 설치

가볍고 리소스 사용이 적은 데스크탑 환경인 XFCE 를 써보자.

설치되어있지 않을 경우 아래 명령어를 입력해서 설치하도록 한다.

sudo apt install xfce4 xfce4-goodies

 

3. 방화벽 설정

방화벽이 활성화되어있다면 해당 포트를 허용하도록 설정한다. 

 sudo ufw allow 5901/tcp
# 방화벽 상태 확인
sudo ufw status

4. 설정 파일 생성

서버를 실행하여 설정파일 생성

vncserver

패스워드를 설정하고 view-only 는 n 으로 한다.

 xstartup 세팅

VNC  서버가 시작될 때 실행되는 스크립트 파일을 작성하자.

서버가 실행될 때 어떤 데스크탑 환경을 로드할지, 어떤 설정을 적용할지에 대한 내용이 들어간다.

# 파일이 없다면 디렉토리 생성
mkdir -p ~/.vnc

# xstartp 작성
nano ~/.vnc/xstartup

 

xstartup 내용

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4

 

  • #!/bin/bash : 스크립트를 Bash 셸로 실행하도록 지정
  • xrdb : X 리소스 데이터베이스 관리 도구. X 윈도우 시스템에서 애플리케이션의 GUI 설정(예: 폰트, 색상 등)을 관리
  • $HOME/.Xresources : Home 경로에 있는 설정 파일.  X11 애플리케이션의 기본 GUI 설정을 정의 ( 색상, 폰트 크기, 창 테마 등 사용자 정의 GUI 설정이 포함 )
  • startxfce4 : 실행할 데스크탑 환경 

** error log

startxfce4 &

뒤에 '&' 이게 붙으면 백그라운드에서 이 프로세스를 실행하라는 의미. 스크립트가 startxfce4가 끝날 때까지 기다리지 않고, 즉시 다음 명령어로 넘어가는데

 

Session startup via '/home/user/.vnc/xstartup' cleanly exited too early (< 3 seconds)!

오류가 뜨므로 & 를 제거하고 저장하자

 

xstartup 권한부여

chmod +x ~/.vnc/xstartup

 

 

5. 서버 실행

vncserver :1

:1에 들어가는 숫자는 디스플레이 번호를 의미함

클라이언트 접속시 사용할 포트로 기본 5900 포트에 디스플레이 번호를 더하여 사용

 ( :1은 포트  5901  )

 

화면 해상도는 아래와 같이 입력하여 지정한다.

vncserver :1 -geometry 1920x1080

 

외부 접속 실행

vnc 서버는 보안상 기본적으로 로컬에서만 접근가능하도록 설정되어있기 때문에 외부 IP로 직접 접근 가능하게 하려면 서버 실행시 -localhost no 옵션을 추가해야한다. 설정없이 클라이언트에서 연결을 시도할경우 아래와 같은 에러가 뜬다.

The connection was refuesd by the computer 



실행중인 서버가 있다면 종료후

vncserver -kill :1

아래 명령어로 서버 실행한다.

vncserver -localhost no :1

 

** error log 

You will require a password to access your desktops.
vncserver: Couldn't find "tigervncpasswd" on your PATH.
        Please install the tigervnc-tools package, i.e., sudo apt-get install tigervnc-tools.

 

설치하다가 뭐가 꼬였는지 vncserver 실행이 안되고 tigervnc-tools 깔아도 해결안됨

이럴땐 그냥 삭제후 다시 설치하면 해결됨

sudo apt-get remove --purge tigervnc-tools
sudo apt-get install tigervnc-tools

 

기타 명령어

# 서비스 종료
vncserver -kill :1

# 실행중인 서버 
vncserver -lsit

 

댓글