본문으로 건너뛰기

[Linux] noVNC 구성 with python3

RHEL 8(python3) 환경에서 tigervnc-server와 python3-websockify로 noVNC를 구성해 웹브라우저로 VNC에 접속하는 방법입니다.

요약

  • RHEL 8에서 EPEL을 추가하고 novnc, python3-websockify, tigervnc-server를 설치하면 python3 기반으로 noVNC를 구성할 수 있습니다.
  • vncserver :1을 실행한 뒤 websockify -D --web=/usr/share/novnc/ 80 localhost:5901로 80 포트에서 noVNC 서비스를 띄웁니다.
  • 서버 IP로 접속해 vnc password를 입력하면 VNC Viewer 없이 웹브라우저에서 VNC 화면을 사용할 수 있습니다.

테스트 환경 AWS EC2 RHEL 8.6

noVNC with python2

https://chhanz.github.io/linux/2019/12/13/linux-configure-novnc/

noVNC 구성

기존에 python2 기반(centos 7)으로 작성되있는 문서에 python3(rhel 8)으로 변경된 부분 업데이트 작성한 문서입니다.

noVNC 란?

noVNC는 HTML VNC 클라이언트 프로그램입니다.

noVNC 구성

TEST ENV : AWS EC2 RHEL 8.6

  • install requirement package
    $ sudo dnf -y groupinstall GNOME
    $ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    
  • install noVNC package
    $ sudo dnf -y install novnc python3-websockify python3-numpy tigervnc-server
    
  • start service vncserver
    $ vncserver :1
    

    vncserver 가 시작되면 vnc 접속용 password 입력을 요구합니다.
    해당 password 는 noVNC 에 접근 할 때 필요한 password 입니다.

  • start service websockify
      $ sudo websockify -D --web=/usr/share/novnc/ 80 localhost:5901
      WebSocket server settings:
        - Listen on :80
        - Web server. Web root: /usr/share/novnc
        - No SSL/TLS support (no cert file)
        - Backgrounding (daemon)
      $ ps -ef | grep websockify
      root       22997       1  9 08:29 ?        00:00:00 /usr/bin/python3 /bin/websockify -D --web=/usr/share/novnc/ 80 localhost:5901
    

    위와 같이 명령을 수행하면 80 포트로 noVNC 서비스가 작동합니다.

noVNC 이용

noVNC 가 설치된 서버의 아이피로 접속합니다.

ex) http://public-ip

아래와 같이 접속이 되며 연결을 누르게 되면 vnc password 를 입력을 요청합니다.

vnc password 를 입력하면 아래와 같이 VNC Viewer 클라이언트 프로그램 없이 웹브라우저를 통해 VNC 접속이 가능합니다.

참고 자료

자주 묻는 질문

RHEL 8에서 noVNC 구성에 필요한 패키지는 무엇인가요?

GNOME 그룹과 EPEL 저장소를 설치한 뒤 sudo dnf -y install novnc python3-websockify python3-numpy tigervnc-server로 설치합니다.

noVNC 웹 서비스를 80 포트로 띄우려면 어떻게 하나요?

vncserver :1로 VNC 서버를 시작한 뒤 sudo websockify -D --web=/usr/share/novnc/ 80 localhost:5901을 실행합니다. 그러면 websockify가 daemon으로 80 포트에서 noVNC를 제공합니다.

noVNC 접속 시 입력하는 password는 어디서 정하나요?

vncserver를 처음 시작할 때 입력을 요구하는 vnc 접속용 password입니다. noVNC 화면에서 연결을 누르면 이 password를 입력합니다.