GUI부팅, VNC server
리눅스나 유닉스는 다양한 소프트웨어를 사용하여 GUI환경으로 부팅을 할 수 있습니다.
그중 대표적으로 xwindow를 사용하여 KDE와 GNOME과 같은 GUI로 부팅을 시도할 수 있습니다.
이렇게 설정된 GUI서버를 VNC server를 설정하여 원격으로 GUI에 접속하거나(5901~),
XRDP를 사용하여 rdp 프로토콜(3389)을 사용하여 원격으로 접속을 할 수 있습니다.
아래는 위에 소개한 방법을 CentOS 7, Rocky 8, Ubuntu 22.04 환경에서 사용하는 것을 알아보겠습니다.
1) CentOS 7
1-1) Xwindow 설치
# yum -y groupinstall 'X Window System'
1-2) GUI 설치 (KDE or GNOME)
# yum -y groupinstall 'KDE Plasma Workspaces' # kde
# yum -y groupinstall 'GNOME Desktop' # gnome
여기서 간단하게 KDE와 GNOME에 대해 설명드리자면
GNOME(GNU Network Object Model Environment): GNOME은 자유 소프트웨어 재단(FSF)과 GNU 프로젝트에 의해 개발된 데스크톱 환경입니다.
단순하고 사용하기 쉬운 디자인, 애플리케이션의 간결한 디자인, 확장성과 커스터마이징이 주요 특징입니다.
KDE(K Desktop Enviroment) : KDE 커뮤니티에 의해 개발된 데스크톱 환경으로, Qt 라이브러리를 기반으로 합니다.
기능의 다양성과 유연성, 고급 기능과 도구, 일관된 사용자 경험이 주요 특징입니다.
차이점은
디자인 - GNOME : 단순하고 사용하기 쉬운 디자인입니다.
- KDE : 고급 기능을 포함하고 다양한 설정을 제공합니다.
기본 응용 프로그램 - GNOME은 Nautilus 파일 관리자와 GNOME 터미널을 기본으로 제공합니다.
- KDE는 Dolphin 파일 관리자와 Konsole 터미널을 제공합니다.
run level 설정하여 gui 부팅
# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
설정 후 재부팅시 GUI모드로 부팅됩니다.
1-3) VNC server 설치
VNC 서버는 리눅스 시스템에 설치된 X Window System(GUI 환경)을 원격으로 접속하여 사용할 수 있도록 합니다.
사용자는 VNC 클라이언트를 사용하여 원격 시스템에 접속하고, 해당 시스템의 화면을 보고 GUI 응용 프로그램을 실행하고 제어할 수 있습니다.
# yum -y install tigervnc tigervnc-server
1-4) VNC server 패스워드 설정
# vncserver
1-5) VNC 서버 설정 수정 및 재가동
부팅 스크립트 설정
# vi .vnc/xstartup
===============================================================
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 120x40+10+10 -ls -title "$VNCDESKTOP Desktop" &
startkde & # kde
# gnome-session & # gnome
===============================================================
VNC 서버 설정
# vi /etc/sysconfig/vncservers
===============================================================
VNCSERVERS="1:root"
VNCSERVERARGS[2]="-geometry 1280x1024 -nolisten tcp -nohttpd -localhost"
===============================================================
root사용자로 접속하기 위해 설정파일 복사 및 데몬 설정 변경
# cp -arp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# vi /etc/systemd/system/vncserver@:1.service
================================================================
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
================================================================
VNC 서버 재부팅 및 OS 리부트
# systemctl enable vncserver@:1.service
# reboot
이후 client에서 VNC 서버로 접속하는 보조 응용 프로그램을 활용하여 접속하시면 됩니다.
1. VNC Viewer
2. chrome vncviewer
3. tigervnc (yum install -y tigervnc, vncviewer <ip>:<세션번호>)
2) rocky 8
Rocky에서는 xwindow가 아닌 GUI서버룰 설치하여 진행해 보겠습니다.
2-1) GUI 설치
# yum -y group install "Server with GUI"
2-2) 시작 시 GUI(gnome)로 기본설정
# vi ~/.xinitrc
=================================================================
export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
export GNOME_SHELL_SESSION_MODE=classic
exec /usr/bin/gnome-session --session=gnome-classic
=================================================================
# startx # 실행
2-3) VNC server 설치
# yum -y install tigervnc-server
2-4) VNC server 패스워드 설정
# vncpasswd
2-5) VNC 서버 설정 수정 및 재가동
서버 설정 수정하기
# vi ~/.vnc/config
=============================================
# create new
# session=(display manager you use)
# securitytypes=(security options)
# geometry=(screen resolution)
session=gnome
securitytypes=vncauth,tlsvnc
geometry=1280x1024
=============================================
로그인 설정 및 재가동
# vi /etc/tigervnc/vncserver.users
===============================================
# add to the end
# specify [:(display number)=(username] as comments
# display number 1 listens port 5901
# display number n + 5900 = listening port
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:1=root
===============================================
# reboot
# systemctl enable --now vncserver@:1
3) Ubuntu 22.04
ubuntu는 데몬 형태가 아닌 cinnamon 환경 GUI로 설정해 보겠습니다.
3-1) GUI 설치
# apt -y install task-cinnamon-desktop
3-2) VNC Server 설치
# apt -y install tigervnc-standalone-server
3-3) VNC 패스워드 설정
# vncpasswd
3-4) xstartup 설정 + vnc 서버 실행
# tigervncserver -xstartup /usr/bin/cinnamon-session -geometry 1280x1024 -localhost no :1
공통된 사항으로 iptalbes와 같은 방화벽을 확인해야 합니다.
만약 iptables를 사용하신다면
# iptables -A INPUT -p tcp -m tcp --dport 5901 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 5902 -j ACCEPT
를 사용하여 포트를 열고, iptables가 아닌 다른 방화벽 유무도 확인합니다. (ufw, firewalld)
다음 시간에는 XRDP를 설치하고 설정하는 법에 대해 알아보겠습니다.
감사합니다!