TigerVNC 설치 및 사용법 | 타이거 vnc

By qsp , Created on 25th Aug 2022

그래픽 화면를 공유할 수 있는 프로그램인 VNC 중의 TigerVNC를 설치 및 사용법 포스팅 입니다~

비슷한 프로그램에는 AnyDesk, TeamViewer, RealVNC, Chrome Remote Desktop 등이 있는데
각 프로그램 마다 장단점이 있기 때문에 검색 후 사용을 하면 될 듯 합니다.

이 중에 TigerVNC는 개인용/상업용 free 버전인 오픈소스이며 Ubuntu 20.04 기준으로 설치 및 사용법을 포스팅 합니다~

VNC TIGER 설치 및 사용법

https://www.tecmint.com/install-and-configure-vnc-server-on-ubuntu/

윈도우에서는

시작하기 전에 이 포스팅은 우분투 환경에서 설치 방법이라서
Windows일 경우에는 바이너리 파일들을 제공하는데 아래 링크에서
stable버전 1.12.0버전-tigervnc 받기
vncviewer64-1.12.0.exe 을 받으면 될 듯 하다. 클라이언트 뷰어 (실제로 테스트는 못해봄 ㅠ)


우분투 설치 desktop 설치 먼저

이제 우분투 환경에서 설치 법 먼저 vnc는 데스크탑 쉐어링 시스템이기 때문에 desktop 환경을 사용할 수 있게 desktop관련 설치를 먼저 해줘야 한다

서버쪽에 ubuntu-desktop 과 ubunutu gnome을 설치를 하는데 (ubuntu gnome이 주로 사용된다)
그리고 다른 종류의 데스크탑 관련해서는 선택해서 설치할 수 있다


서버 쪽 설치

만약 서버쪽 PC에서 접근해서 직접 사용이 가능하면 직접 서버 컴퓨터가 되는 곳에서 작업을 하고

그냥 client쪽에서 진행을 하려면은 ssh로 접속을 한다

터미널을 열어서 ssh {서버id}@{ip주소} 형태로 입력해 준다. 예:

ssh ubuntu@192.168.1.100

비번 입력 후 데스크탑 관련 설치를 진행 한다

$ sudo apt-get install ubuntu-desktop   
$ sudo apt install ubuntu-gnome-desktop  

ubuntu-desktop 은 우분투에서 기본으로 되어 있는 데스크탑
ubuntu-gnome-desktop 은 공식 지원하는 환경

옵션으로 추가로 설치 가능

sudo apt-get install xfce4      
sudo apt-get install lxde           
sudo apt-get install kubuntu-desktop        

순서대로 XFCE, LXDE, KDE라고 하는데 원하는 데스크탑 환경이 있다면 설치
일단은 설치 안하고 넘어감

그리고 tigervnc 관련 패키지 설치하기

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer


vnc 실행

설치가 되었다면 vncserver 명령어로 실행 가능

vncserver

를 하게 되면 비밀번호를 설정하라고 한다. 클라이언트에서 접속할 때 사용되는 비밀번호이다
비밀번호를 설정하고 a view-only password에는 n를 선택

그러면 ~/.vnc 디렉토리가 만들어진다

이제 xstartup 파일을 만들어야 한다. 원하는 에디터로 열어준다(vi, gedit, code 등)

vi ~/.vnc/xstartup   

그리고 아래 내용을 복사 한다

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/vnc/xstartup &
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

vnc 서버가 시작될 때 자동으로 실행되는 파일이고
설치한 DE에 따라 명령어는 달라질 수 있다.
마지막 줄의 gnome-session 은 gnome-desktop 임

권한 조정해준다. 실행 가능하게 하고, 다른 유저와 그룹 권한은 빼 버린다

sudo chmod 700 ~/.vnc/xstartup 

이제 실행할 때 -localhost 옵션을 넣어서 localhost만 사용되게 해준다
그리고 -geometry 를 이용해서 해상도를 선택, -depth로 8, 24, 32 중에 선택

:1의 부분은 포트번호 지정인데 tigervnc 기본이 5901 이므로
:1로 하게 되면 포트 5901으로 하겠다는 의미이다(기본값)

vncserver :1 -localhost -geometry 1024x768 -depth 24

아래와 같은 메세지가 나온다면 성공

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/remove_user/.vnc/passwd :1 to connect to the VNC server. 


추가 사용법

netstat으로 포트번호로 listen 중인지 확인하기

netstat -tlnp 

또 vnc 서버 리스트 보기, 실행시킨 서버 목록이 나온다

vncserver -list

켜져있는 서버를 끌려면 숫자를 지정해준다

vncserver -kill :1

또는 다 끄기

vncserver -kill :*


클라이언트 접속하기

vnc는 보안은 설정이 안 되어 있기 때문에
원래 암호화가 되어 있지않고 누구든 볼 수 있다고 한다

그래서 ssh tunnel을 만들어서 client와 server간 통로를 ssh를 통해서 만들어 준다

만약 문제 ssh로 접속을 시도했는데
ssh: connect to host 192.168.10.100 port 22: Connection refused

이렇게 나온다면 openssh가 설치가 안되어 있을 수가 있다
설치해주자

sudo apt install openssh

SSH tunneling을 하려면 서버와 같은 방식인 5901 포트로 트래픽을 보내주게 된다

클라이언트 쪽에서 아래와 같은 방식으로 입력 ( {}는 입력하지 않음)
ssh -L 5901:127.0.0.1:5901 -N -f -l {서버계정아이디} {서버ip주소로입력}

ssh -L 5901:127.0.0.1:5901 -N -f -l server_user 192.168.10.101

그러면 비밀번호를 물어보는데 server_user의 비밀번호를 물어보는데 이때에는 서버의 기본 계정 비번을 입력하면 된다
예:

server_user@192.168.10.101's password: 

참고로 아무런 메세지 없이 자신의 프롬포트로(client PC) 나오면 성공
만약 private 키를 가지고 있다면 -i 옵션을 사용한다

ssh -i ~/.ssh/mykey -L 5901:127.0.0.1:5901 -N -f -l seruser 192.168.10.101

일단 만들어 놓은 것이 없으므로 스킵하고 첫 번째 방법을 사용하면 된다


tigervnc 접속하기

클라이언트에는 뷰어만 있으면 된다

sudo apt install tigervnc-viewer

터미널을 열고 (background로 작업하기)

vncviewer localhost:5901 &

해주면 vncserver 처음 시작할 때 설정 했던 암호를 입력하면 된다.

&은 백그라운드로 실행하겠다는 의미

또는 super key (윈도우 키)를 눌러서 vncserver client 프로그램을 찾아서 직접 실행을 해도 된다
VNC server: 에 위에 처럼 localhost:5901 를 입력해주면 된다


복사 & 붙여넣기

처음에 실행을 하면 vncconfig 작은 창이 실행되어 있다. 아니면 Activies를 (왼쪽상단)을 눌렀을 때
vncconfig 가 설정 화면이 보이는데 여기에서 클립보드로 복사 붙여넣기를 할 수 있는 기능을 제공하기 때문에
종료 시키면 로컬 컴퓨터에서의 내용을 복사해서 vnc 화면에 붙여넣기가 안되므로 종료하지 않는 것이 좋다

만약 불편하면 sudo apt-get install autocutsel 설치하고 (서버에도 설치해야하는지는 확인안해봄)
~/.vnc/xstartup 파일을 열어서 아래 내용을 추가해준다.

# allow copy & paste - autocutsel
autocutsel -fork 

서버를 kill 했다가 다시 켜주면 된다


트러블 슈팅

트러블 슈팅


x서버에서 마우스 키보드 안 될 때

xserver-xorg-input-all 지워져버리면 발생한다 (vnc 관련해서 지울때 의존성 때문에 같이 지워져버린 듯하다)

sudo apt install xserver-xorg-input-all

그런데 어떻게 입력? ssh로 접속하거나~ 처음 부팅 시 wayland로 들어간다 (로그인 시 톱니바퀴)


특정 데스크탑을 못 찾을 경우

/home/amr/.vnc/xstartup: 4: exec: startxfce4: not found
=============================================================================
Starting applications specified in /home/amr/.vnc/xstartup has failed.

위 처럼 fce4를 찾을 수 없다고 나오거나 (startup파일에 exec startxfce4로 되어 있을 경우에)
처음에 데스크탑 종류가 여러개가 있는데 그 중

sudo apt-get install xfce4 

설치를 해서 사용을 하던가 xstartup 파일에 gnome을 사용하게 하면 된다 (위의 기본 설정 방법 참고)


패스워드 다시 설정

패스워드 파일을 지운 다음에 다시 vnc를 켜 준다

cd ~/.vnc
rm -i passwd

y를 누른 후에 vncserver를 입력해주면 다시 비밀번호를 설정하라고 나온다


종료할 때

클라이언트는 종료를 하거나 서버가 종료되면 자동으로 꺼지지만
ssh tunneling 한 것을 종료하려면

ps로 프로세스를 알아본 다음에 kill 해주는 것이 좋다. 검색은 포트번호로 해주자

ps -ef | grep 5901
ubun+   63346    1695  0 13:42 ?        00:00:02 ssh -L 5901:127.0.0.1:5901 -N -f -l server1 192.168.10.100
ubun+  137562    1695  0 17:49 ?        00:00:00 ssh -L 5901:127.0.0.1:5901 -N -f -l server2 192.168.10.101

또는 ps -aux | grep 5901

첫 번째 보이는 숫자가 PID 이므로 kill 해준다
예를 들어서 첫 번째 vnc server 연결을 종료하려면

kill -9 63346

댓글

댓글이 없습니다.