Unix & Linux

우분투(UBUNTU), VNC 설치하기 ( Tigervnc ) (22.04 동작확인)

LEEHANDS 2021. 6. 10. 13:00
반응형
Environments  
OS 우분투 리눅스 : Ubuntu 22.04.2 LTS
KERNEL 6.3.0-rc3+

 

 

 

타이거 VNC 를 사용해 원격지의 우분투에 Xwindows 으로 보여주는 것입니다.

설치했던 처음 설치했던 이 가이드가 유용할 것입니다.

 

현재 우분투 시스템에 TIGERVNC 의 설치 유무를 확인합니다.

 

dpkg -l | grep tigervnc

 

우분투에 TigerVNC 가 설치되어있으면 아래와 같은 출력을 볼 수 있다.

20231104, My Portable PC

 

만약 TigerVNC 가 설치되어있지않으면 설치하자

 

1. TigerVNC 설치

아래 명령어로 타이거VNC 를 설치한다

sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common

 

VNC 서버구성 ( 비밀번호 설정 )

vncpasswd

 

이제 VNC Server 를 실행해 보자

 

VNC 서버 인스턴스를 시작하려면, 

사용자는 VNC 서버를 위한 초기 구성 파일(~/.vnc/xstartup)을 만들고 실행 권한을 부여해야 할 수도 있습니다.

예를 들어, GNOME을 사용하는 경우 다음과 같은 내용을 xstartup 파일에 넣을 수 있습니다.

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# Set the DISPLAY environment variable
export DISPLAY=":1"

# Ensure the XDG_RUNTIME_DIR is set
export XDG_RUNTIME_DIR=/run/user/$(id -u)
if [ ! -d "$XDG_RUNTIME_DIR" ]; then
    mkdir -p "$XDG_RUNTIME_DIR"
    chmod 700 "$XDG_RUNTIME_DIR"
fi

# Start D-Bus session bus
eval `dbus-launch --auto-syntax`

# Load X resources (if any)
[ -r "$HOME/.Xresources" ] && xrdb "$HOME/.Xresources"

# Set a background color
xsetroot -solid grey

#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
/etc/X11/Xsession

gnome-session &
#startxfce4 &
vncconfig -nowin &

 

이 스크립트는 startxfce4 데스크탑 환경을 시작하는 예입니다. GNOME, KDE, LXDE 등 다른 데스크탑 환경을 사용한다면 해당 데스크탑의 시작 명령으로 대체해야 합니다. 이 파일에 실행 권한을 주려면 다음 명령을 사용합니다.

chmod +x ~/.vnc/xstartup

설정을 마친 후, 다음과 같은 명령어로 VNC 서버를 시작할 수 있습니다.

 

2. VNC 서버 실행

vncserver -localhost no

 -localhost no 옵션은 VNC 서버가 로컬호스트 인터페이스에만 바인딩하지 않도록 설정합니다. 즉, 이 옵션을 사용하면 VNC 서버가 네트워크를 통해 원격 컴퓨터에서도 접근 가능하도록 허용합니


VNC 서버는 기본적으로 5901 포트에서 시작되며 (:1), 이는 첫 번째 VNC 인스턴스를 의미합니다. 추가 인스턴스는 5902 (:2), 5903 (:3) 등으로 순차적으로 번호가 매겨집니다.

 

3. VNC 서버 부팅시 자동실행 설정

systemmd 사용하여 재부팅시 자동실행하도록 구성

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

 

그리고 아래 스크립트에서 user 는 실제 사용자이름으로 바꿉니다.

[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=simple
User=<USER>
PAMName=login
PIDFile=/home/%u/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -localhost no :%i -geometry 1280x800 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

 

서비스파일 재로드

sudo systemctl daemon-reload

 

서비스 활성화

sudo systemctl enable vncserver@1.service

 

그리고 재부팅하면 자동으로 VNC 서버가 활성화 되어 동작함을 알 수 있다.

 

 


231109, Trubleshooting. 

"Authentication is required to create a color profile " 을 빌미로? 자꾸 로그인을 요청한다

그래서 자동으로 로그인되도록 Ubuntu 설정을 추가해준다.

 

힌트는 아래 필자와 같은 고민을 하는 사람으로부터 해결했다.

참고 링크 확인 ( LINK )

 

두개의 파일을 만들어야한다. 경로는

1. /etc/polkit-1/localauthority.conf.d/

   : 필자는 파일이 없어 만들었다.

   : 02-allow-colord.conf 

   내용은 아래 참고 및 붙여넣기한다. 

polkit.addRule(function(action, subject) {
   if ((action.id == “org.freedesktop.color-manager.create-device”  ||
        action.id == “org.freedesktop.color-manager.create-profile” ||
        action.id == “org.freedesktop.color-manager.delete-device”  ||
        action.id == “org.freedesktop.color-manager.delete-profile” ||
        action.id == “org.freedesktop.color-manager.modify-device”  ||
        action.id == “org.freedesktop.color-manager.modify-profile”)  &&
        subject.isInGroup(“{group}”)) {
           return polkit.Result.YES;
   }
});

2. /etc/polkit-1/localauthority/50-local.d/

  : 위에만 추가했을 때는 안됬고, 이파일을 추가하면서 자동로그인이 되었다. 혹시 모르니 둘다 하는것으로 결정

  : color.pkla

  : 내용은 아래 참고

 

[Allow colord for all users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile;org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes

 


231109, TroubleShooting

화면보호기에서 다시 로그인할 수 없는 경우

 

원천적인 해결법은 찾지 못하였고, 그냥 화면보호기 진입하지 않도록하면된다.

sudo systemctl disable gnome-screensaver

또는 GUI 화면에서 화면보호기를 미사용으로 설정한다.

 

 

 

 

이제 재부팅하면 아주 잘되는 것을 확인할 수 있다.

힘들게 TigerVNC 서버 설정을 마무리했다.

반응형