[linux dev env] [우분투 서버] noVNC 접속

[우분투 서버] noVNC 접속

 

약 9년 전부터 우분투 서버에 어떻게 하면 가벼운 X윈도우 환경을 만들어
개발 머신 또는 운영 머신으로 이용할 것인가를 많이 연구를 해 왔었습니다.
 
그런데 이것이 결국 VM에도 동일하게 적용됨을 알았고,
UI가 있는 컨테이너도 동일하게 적용되더군요.
 
 
오늘은 우분투 서버에다 간단하게 기본적인 vncserver 와 noVNC를 설치하여
외부에서 웹브라우저로 해당 서버에 X윈도우 환경으로 접속할 수 있는
방법을 기술해 봅니다.
 
vncserver 는 tightvnc를 이용하고,
X윈도우 매니터는 xfce4를 이용해 보겠습니다.
 
a0105618_60c8b1dd7518a.png

 

우선 간단한 기본 우분투 서버에 다음과 같은 패키지를 설치해 봅니다.
 
sudo apt install -y \
        xfce4 xfce4-goodies \
        tightvncserver novnc websockify \
        python3-numpy \
        build-essential \
        net-tools \
        curl git \
        software-properties-common
 
우분투 데스크탑 NoVNC를 위한 설치를 다시 해보니,
다음과 같이 설치하는 것이 제일 적은
자원을 사용했습니다.
 
sudo apt install \
tigervnc-standalone-server tigervnc-xorg-extension \
        novnc websockify 
 
 
 
a0105618_60c8b23ab7e3e.png

 

약 288MB 정도의 패키지가 설치되는 군요. 그래도 서버 버전에 이정도 추가해서 가벼운 윈도우 환경을 구축하다니
나름 만족스럽습니다.
 
다시 적은 자원을 차지하게끔 설치하니 88MB 정도만 설치 하더군요.
 
 
a0105618_60c8b278a4a88.png

 

설치를 진행하다 디폴트 디스플레이 매니저는 gdm3 기본으로 하였습니다.
 
다음은 최초로 vncserver (tightvnc server)를 실행시켜 접속 암호를 만들어 줍니다.
View Only 암호를 별도 생성할 수도 있습니다.
 
a0105618_60c8b2e5c4e0b.png

 

홈 디렉터리에서 vncserver 명령을 내리면 됩니다.
혹시 암호를 까먹었다면 ~/.vnc/passwd 를 지우고 다시 실행시키면 새롭게 생성할 수 있습니다.
 
a0105618_60c8b524e0ffa.png

 

vncserver -kill :1
하면 해당 서버가 죽습니다.
 
시작도 그렇고 :1 이라고 표현되는 것은 DISPLAY=:1 과 같은 의미이구요,
VNC 입장에서는 5900 + :1 인 5901 로 서비스가 된다고 생각하시면 됩니다.
 
최초 암호 생성 후에는 위와 같이 kill 해 주시기 바랍니다.
 
그 다음 vnc 가 실행되면서 xfce4 매니저가 뜨게 하기 위하여,
 
a0105618_60c8b617b4c73.png

 

 
~/.vnc/xstartup 파일에
 
#!/usr/bin/env bash
xrdb $HOME/.Xresources
startxfce4 &
 
우분투 테스크탑의 경우, 해당 그놈 데스크탑을 그대로 이용하면 되므로,
#!/bin/sh
# Start Gnome 3 Desktop 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup 
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
vncconfig -iconic & 
dbus-launch --exit-with-session gnome-session &
 
의 내용을 넣고,
 
chmod +x ~/.vnc/xstartup
실행 권한을 줍니다.
 
a0105618_60c8b6e72816c.png

 

다시 vncserver 를 띄웁니다.
역시 :1 로 실행됩니다.
 
만약 tightvnc 대신 tigervnc-standalone-server 패키지를 설치했다면,
위의 vncserver를 돌릴 때 기본적으로 localhost 접근만 가능하게 됩니다.
이 경우, 다른 서버에서도 접속할 수 있게 하려면,
 
vncserver -localhost no
 
라고 실행하면 됩니다.
 
자, 이제는 vnc를 돌리는 준비를 해 봅니다.
결론적으로 https 로 돌리기 위하여 self-signed 인증서를 /usr/share/novnc 폴더에 self.pem 이름으로 다음과 같이 만들어 줍니다.
 
a0105618_60c8b745bf464.png

 

 
cd /usr/share/novnc; sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout self.pem -out self.pem -days 365
 
질문에는 대충 넣어도 됩니다.
Self-signing이 싫으시면 Let's Encrypt 인증서를 적용하셔도 됩니다.
 
마지막으로,
 
a0105618_60c8b8b15e5a6.png

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 
cd /usr/share/novnc; ./utils/launch.sh --vnc localhost:5901 --ssl-only
 
명령으로 novnc를 띄워,
 
외부에서 
https://서버주소:6080/vnc.html
로 접속하면 경고창이 나오는데 무시하고 계속하면 됩니다.
 
재미있는 사실은 --vnc 에서 내부망에 있는 다른 호스트도 지정할 수 있다는 사실입니다.
이런 경우에는 기존에 돌고 있는 기본 6080 포트 대신 다른 포트를 지정해서 돌아야 하는데,
 
cd /usr/share/novnc; ./utils/launch.sh --vnc 192.168.35.103:5900 --listen 6081
 
와 같이 실행합니다. 대신 외부에서도 
https://서버주소:6081/vnc.html
 
으로 외부 브라우져에서 접속하면 됩니다.
 
 
a0105618_60c8b99bce096.png

 

위와 같은 noVNC 창이 나오고, 여기에서 가운데 Connect 를 누르면,
 
a0105618_60c8b9b446d68.png

 

암호를 묻는데 이것은, vncserver 최초 실행하여 지정한 암호를 넣으면 됩니다.
 
a0105618_60c8b94b77d19.png

 

그러면 위와 같이 어느 브라우저에서건 해당 서버의 X윈도우 환경으로 들어가는 것을 확인 하실 수 있습니다.
 
해상도는 자동으로 변경되지 않는데, 이것은 
a0105618_60c8ba13e4e93.png

 

/etc/alternatives/vncserver 에서 
$geometry를 수정하고 vncserver 를 재기동하면 됩니다.
 
xfce 에 대한 자세한 설정은 다음블로그를 참고하시면 됩니다.
 
 
어느 분께는 도움이 되셨기를..
 

[출처] http://egloos.zum.com/mcchae/v/11389162

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
32 [docker] [Docker] 도커 이미지와 컨테이너 삭제 방법 졸리운_곰 2024.08.20 350
31 [docker] [Oracle] docker에 Oracle 11g 설치하기 file 졸리운_곰 2022.11.26 476
30 [docker][도커] 로컬 개발환경 Docker 사용하기 file 졸리운_곰 2021.10.16 414
29 [Docker][도커] docker 이미지 및 컨테이너 관리 명령어 정리 file 졸리운_곰 2021.08.29 371
28 [docker][도커] 컨테이너 시작, 중지, 재시작 졸리운_곰 2021.08.29 253
27 [DOCKER] 도커_컨테이너 생성, 시작, 정지 file 졸리운_곰 2021.08.15 306
26 [쿠버네티스][Kubernetes] Helm 사용법 file 졸리운_곰 2021.07.19 331
25 [MSA][Docker][Kubernetes] [Kubernetes] 윈도우10에 도커, 쿠버네티스 설치 (docker desktop) file 졸리운_곰 2021.05.23 370
24 [MSA] [Docker] Docker File을 이용하여 Docker Image만들기 file 졸리운_곰 2021.04.27 299
23 [MSA][Docker] Docker 개념, 관리, 이미지생성까지 한번에!! file 졸리운_곰 2021.04.27 506
22 [MSA] 서비스 경량화를 위한 MSA 설계 시 고려사항 file 졸리운_곰 2021.03.21 301
21 [MSA][Docker] 효율적인 도커 이미지 만들기 #2 - 도커 레이어 캐슁을 통한 빌드/배포 속도 높이기 file 졸리운_곰 2021.03.21 292
20 [MSA][Docker] 효율적인 도커 이미지 만들기 #1 - 작은 도커 이미지 file 졸리운_곰 2021.03.21 257
19 [MSA] 오픈소스 모니터링 툴 - Prometheus #3 그라파나를 이용한 시각화 file 졸리운_곰 2021.03.21 603
18 [MSA] 오픈소스 모니터링 툴 - Prometheus #2 Hello Prometheus file 졸리운_곰 2021.03.21 464
17 [MSA] 오픈소스 모니터링툴 - Prometheus #1 기본 개념과 구조 file 졸리운_곰 2021.03.21 434
16 [MSA] API 게이트 웨이 & Google Cloud Endpoints file 졸리운_곰 2021.03.21 398
15 [MSA] Kong API gateway #3 - Kong on Kubernetes file 졸리운_곰 2021.03.21 441
14 [MSA] Kong API gateway #2 - 간단한 아키텍쳐와 API 테스트 file 졸리운_곰 2021.03.21 515
13 [MSA] Kong API gateway #1 - 설치와 둘러보기 file 졸리운_곰 2021.03.21 509
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED