리눅스

Ubuntu 21.04 설치 2: VNC

yztech 2021. 6. 9. 15:58
반응형

VNC

VIrtual Network Computing (VNC) 는 GUI 기반 원격 데스크탑을 지원한다. MS의 remote desktop protocol (RDP)에 대한 오픈 소스형 대안이 될 수 있다.

 

Desktop 환경 설치

ubuntu에는 다양한 데스크탑 환경이 있느데, 한가지는 Gnome으로서 ubuntu 20.04의 기본적인 데스크 탑 환경이다. 다른 방법은 Xfce를 설치하는 것으로, 빠르고 안정적이고 가벼운 데스크탑환경을 지원하여, 원격 서버사용에 이상적이다.

여기서는 Xfce를 설치하는 방법을 사용한다.

sudo apt update
sudo apt install xfce4 xfce4-goodies

VNC server 설치

TightVNC, TigerVNC 와 x11vnc 등 다양한 VNC server들이 있다. 각각 속도와 안전성에서 장단점이 있지만, 고성능 VNC 서버로 활발히 개발되고 있는 TIgerVNC를 설치한다.

sudo apt install tigervnc-standalone-server

VNC 접근 설정

VNC server 가 설치되면, 사용자 암호를 설정을 진행한다. 이때 sudo를 사용하면 않된다.

vncpasswd

view-only 암호인지 물어보면, n를 선택하야 한다. 그렇지 않으면, mouse, keyboard 입력을 받을 수 없다.

암호는 ~/.vnc에 저장된다.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

다음은 TigerVNC가 Xfce 데스크탑을 사용하도록 설정한다. xstartup은 TigerVNC 서버가 시작할 때 자동으로 실행된다.

nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

/.vnc/xstartup은 실행 가능하도록 모드를 변경한다.

chmod u+x ~/.vnc/xstartup

VNC server에 추가 옵션을 설정하는 경우, ~/.vnc/config를 파일을 생성한다.

아래는 화면 크기와 dpi를 설정하는 예제이다.

geometry=1920x1080
dpi=96

이제 VNC server를 시작한다.

vncserver
New Xtigervnc server 'test:4 (user)' on port 5904 for display :4.
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/user/.vnc/passwd :4 to connect to the VNC server.

혹은 port를 지정할 수 있다.

vncserver -localhost no :2

:4은 hostname이고, VNC server가 동작중인 display port를 나타낸다. 이 예제에서 서버는 TCP port 5904 에서 동작한다.

VNC server 리스트는 다음 명령으로 확인할 수 있다.

vncserver -list
TigerVNC server sessions:

X DISPLAY #    RFB PORT #    PROCESS ID    SERVER
:2              5902            5097    Xtigervnc
:3              5903            5952    Xtigervnc
:3              5904            13926    Xtigervnc

VNC 인스턴스를 중지하는 명령은 다음과 같다.

vncserver -kill :4

자동 실행 설정

VNC를 수동으로 시작한 경우, systemd unit file을 생성하면 자동으로 VNC service를 시작할 수 있다.

sudo nano /etc/systemd/system/vncserver@.service

아래 파일에서 User를 변경하고, geometry등을 설정하면 된다.

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

[Service]
Type=simple
User=user
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 -localhost no :%i -geometry 1920x1080 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

systemd에 새로운 unit file이 생성되었음을 알린다.

sudo systemctl daemon-reload

boot시 service가 시작하도록 활성화시킨다.

sudo systemctl enable vncserver@1.service

@다음의 숫자 1은 VNC service가 동작할 display port를 정의한다.

VNC 서비스를 다음과 같이 시작시킨다.

sudo systemctl start vncserver@1.service

제대로 시작되었는지 확인한다.

sudo systemctl status vncserver@1.service

VNC viewer 사용하여 연결

TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre 등의 VNC viewer를 사용할 수 있다.

 

반응형

'리눅스' 카테고리의 다른 글

Ubuntu 18.04: GUI 기반 NVidia Driver 설치  (0) 2021.06.11
Ubuntu 18.04: 기존 Nvidia driver 직접 설치  (1) 2021.06.11
Ubuntu 18.04 설치 2: VNC  (0) 2021.06.11
Ubuntu 18.04 설치 1  (0) 2021.06.11
Ubuntu 21.04 설치 1  (0) 2021.06.09