원격 데스크톱 · 5 min read · Nov 11, 2025

CentOS 8에서 Guacamole 원격 데스크톱 설치 및 사용

Apache Guacamole은 VNC, RDP 및 SSH와 같은 표준 프로토콜을 지원하는 무료 오픈 소스 웹 기반 클라이언트 없는 원격 데스크톱 애플리케이션입니다. 이를 통해 RDP, SSH 또는 VNC를 통해 웹 브라우저에서 Linux 및 Windows PC에 액세스할 수 있습니다. 클라이언트가 필요 없으므로 플러그인이나 클라이언트 소프트웨어를 설치할 필요가 없습니다. Guacamole은 Guacamole Server와 Guacamole Client의 두 구성 요소로 구성됩니다. Guacamole 서버는 원격 PC에 연결하는 데 필요한 서버 측 및 기본 구성 요소를 제공하며, Guacamole 클라이언트는 원격 PC에 연결하는 데 사용되는 HTML 5 웹 애플리케이션입니다.

이 튜토리얼에서는 CentOS 8에서 Guacamole 서버를 설치하는 방법을 보여줍니다.

전제 조건

  • CentOS 8을 실행하는 서버.
  • 서버에 루트 비밀번호가 설정되어 있어야 합니다.

시작하기

먼저, 서버에 필요한 패키지를 설치해야 합니다. 다음 명령어로 모든 패키지를 설치할 수 있습니다:

dnf install -y unzip curl make cmake wget gcc zlib-devel compat-openssl10

필요한 모든 패키지를 설치한 후, 시스템에서 EPEL, PowerTools 및 Devel 리포를 활성화해야 합니다. 다음 명령어로 활성화할 수 있습니다:

dnf install epel-release -y  
dnf config-manager --set-enabled PowerTools  
dnf config-manager --enable Devel

다음으로, 다음 명령어로 다른 필요한 도구를 설치합니다:

dnf install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libtheora opus lame-libs

다음으로, 다음 명령어로 Devel 리포를 비활성화합니다:

dnf config-manager --disable Devel

다음으로, 시스템에서 telnet 라이브러리를 컴파일해야 합니다.

먼저, 다음 명령어로 다운로드합니다:

curl -s https://api.github.com/repos/seanmiddleditch/libtelnet/releases/latest | grep browser_download_url | cut -d '"' -f 4 | wget -qi -

다운로드가 완료되면, 다음 명령어로 다운로드한 파일을 추출합니다:

tar -xf libtelnet-*.tar.gz

다음으로, 추출된 디렉토리로 이동하고 다음 명령어로 구성합니다:

cd libtelnet-*/  
./configure

다음으로, 다음 명령어로 시스템에 설치합니다:

make   
make install

설치가 완료되면 다음 단계로 진행할 수 있습니다.

Java 설치

Guacamole은 Java 기반 소프트웨어이므로 서버에 Java가 설치되어 있어야 합니다. 설치되지 않은 경우 다음 명령어로 설치할 수 있습니다:

dnf install java-11-openjdk-devel

설치가 완료되면 다음 명령어로 Java 버전을 확인합니다:

java -version

다음과 같은 출력이 표시되어야 합니다:

openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

Tomcat 설치

Apache Tomcat은 Guacamole 클라이언트 콘텐츠를 제공하는 데 사용됩니다. 따라서 서버에 Tomcat을 설치해야 합니다.

먼저, 다음 명령어로 Tomcat을 위한 별도의 사용자 및 그룹을 생성합니다:

groupadd --system tomcat  
useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat

다음으로, 다음 명령어로 Tomcat의 최신 버전을 다운로드합니다:

wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.tar.gz

다운로드가 완료되면, 다음 명령어로 다운로드한 파일을 추출합니다:

tar -xvf apache-tomcat-9.0.43.tar.gz

다음으로, Tomcat을 /usr/share 디렉토리로 이동합니다:

mv apache-tomcat-9.0.43 /usr/share/tomcat

다음으로, Tomcat 디렉토리에 적절한 소유권을 설정합니다:

chown -R tomcat:tomcat /usr/share/tomcat/

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Tomcat을 위한 Systemd 서비스 파일 생성

다음으로, Tomcat을 위한 systemd 서비스 파일을 생성해야 합니다. 다음 명령어로 생성할 수 있습니다:

nano /etc/systemd/system/tomcat.service

다음 줄을 추가합니다:

[Unit]
Description=Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/usr/share/tomcat
Environment=CATALINA_BASE=/usr/share/tomcat
Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M'
ExecStart=/usr/share/tomcat/bin/catalina.sh start
ExecStop=/usr/share/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

파일을 저장하고 닫은 후, 다음 명령어로 systemd 데몬을 다시 로드합니다:

systemctl daemon-reload

다음으로, Tomcat 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다:

systemctl start tomcat  
systemctl enable tomcat

다음 명령어로 Tomcat 상태를 확인할 수도 있습니다:

systemctl status tomcat

다음과 같은 출력이 표시되어야 합니다:

? tomcat.service - Tomcat Server
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-02-16 09:34:45 EST; 6s ago
  Process: 26546 ExecStart=/usr/share/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS)
 Main PID: 26551 (java)
    Tasks: 35 (limit: 12523)
   Memory: 89.7M
   CGroup: /system.slice/tomcat.service
           ??26551 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.man>

Feb 16 09:34:45 centos8 systemd[1]: Starting Tomcat Server...
Feb 16 09:34:45 centos8 systemd[1]: Started Tomcat Server.

Apache Guacamole 설치

먼저, 다음 명령어로 Guacamole의 최신 버전을 다운로드합니다:

wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz

다운로드가 완료되면, 다음 명령어로 다운로드한 파일을 추출합니다:

tar -xvzf guacamole-server-1.3.0.tar.gz

다음으로, 추출된 디렉토리로 이동하고 다음 명령어로 구성합니다:

cd guacamole-server-1.3.0  
./configure --with-init-dir=/etc/init.d

다음으로, 다음 명령어로 시스템에 설치합니다:

make  
make install  
ldconfig

다음으로, 다음 명령어로 systemd 데몬을 다시 로드합니다:

systemctl daemon-reload

다음으로, Guacamole 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다:

systemctl start guacd  
systemctl enable guacd

다음 명령어로 Guacamole의 상태를 확인할 수 있습니다:

systemctl status guacd

다음과 같은 출력이 표시되어야 합니다:

? guacd.service - LSB: Guacamole proxy daemon
   Loaded: loaded (/etc/rc.d/init.d/guacd; generated)
   Active: active (running) since Tue 2021-02-16 09:37:15 EST; 4s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 35723 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 12523)
   Memory: 12.1M
   CGroup: /system.slice/guacd.service
           ??35726 /usr/local/sbin/guacd -p /var/run/guacd.pid

Feb 16 09:37:15 centos8 systemd[1]: Starting LSB: Guacamole proxy daemon...
Feb 16 09:37:15 centos8 guacd[35723]: Starting guacd: guacd[35724]: INFO:        Guacamole proxy daemon (guacd) version 1.3.0 started
Feb 16 09:37:15 centos8 guacd[35723]: SUCCESS
Feb 16 09:37:15 centos8 guacd[35726]: Listening on host 127.0.0.1, port 4822
Feb 16 09:37:15 centos8 systemd[1]: Started LSB: Guacamole proxy daemon.

Guacamole 클라이언트 설치

다음으로, Guacamole을 위한 디렉토리를 생성하고 다음 명령어로 Guacamole 클라이언트 파일을 다운로드합니다:

mkdir /etc/guacamole  
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war

다운로드가 완료되면, 다운로드한 파일을 /etc/guacamole 디렉토리로 이동합니다:

mv guacamole-1.3.0.war /etc/guacamole/guacamole.war

다음으로, guacamole.war 파일의 심볼릭 링크를 /usr/share/tomcat 디렉토리에 생성합니다:

ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/

다음으로, 다음 명령어로 Guacamole 홈 디렉토리를 설정합니다:

echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat

다음으로, 다음 명령어로 Guacamole 구성 파일을 생성합니다:

nano /etc/guacamole/guacamole.properties

다음 줄을 추가합니다:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

파일을 저장하고 닫은 후, /etc/guacamole 디렉토리의 심볼릭 링크를 생성합니다:

ln -s /etc/guacamole /usr/share/tomcat/.guacamole

Guacamole 구성

다음으로, Guacamole에서 연결할 원격 서버를 정의하기 위해 Guacamole 사용자 매핑 파일을 생성해야 합니다.

먼저, 다음 명령어로 비밀 비밀번호를 생성합니다:

echo -n your-password | openssl md5

다음과 같은 출력이 표시되어야 합니다:

(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2

다음으로, 다음 명령어로 user-mapping.xml 파일을 생성합니다:

nano /etc/guacamole/user-mapping.xml

다음과 같이 원격 Windows 및 Linux 서버 세부 정보를 추가합니다:






        
            ssh
            69.87.218.51
            22

        

        
            rdp
            15.185.162.149
            3389
            administrator

        

    


파일을 저장하고 닫은 후, 변경 사항을 적용하기 위해 Guacamole과 Tomcat 서비스를 모두 재시작합니다:

systemctl restart tomcat guacd

작업이 완료되면 다음 단계로 진행할 수 있습니다.

방화벽 구성

다음으로, 방화벽을 통해 포트 4822 및 8080을 허용해야 합니다. 다음 명령어로 허용할 수 있습니다:

firebase-cmd --permanent --add-port=4822/tcp  
firebase-cmd --permanent --add-port=8080/tcp

다음으로, 변경 사항을 적용하기 위해 firewalld를 다시 로드합니다:

firebase-cmd --reload

Guacamole 웹 UI 접근

이제 웹 브라우저를 열고 URL http://your-server-ip:8080/guacamole를 사용하여 Guacamole 웹 인터페이스에 접근합니다. 다음 화면이 표시되어야 합니다:

Guacamole 로그인

관리자 사용자 이름과 비밀번호를 입력하고 로그인 버튼을 클릭합니다. 다음 화면에서 Guacamole 대시보드를 볼 수 있어야 합니다:

Guacamole 원격 데스크톱

위 화면에서 Windows 및 Linux 서버를 모두 볼 수 있습니다. 클릭하여 원격 서버에 연결하고 관리할 수 있습니다.

결론

축하합니다! CentOS 8에서 Guacamole 서버를 성공적으로 설치하고 구성했습니다. 이제 Guacamole 서버에 더 많은 원격 서버를 추가하고 웹 브라우저를 통해 관리할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.