[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

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
266 [C/C++ 자료구조] 아스키 코드표(ASCII Table) file 졸리운_곰 2023.08.16 6
265 [WSL2] WSL2 외부 접속 설정 file 졸리운_곰 2023.06.26 39
264 [WSL2] Mysql 자동실행 설정하기 file 졸리운_곰 2023.06.25 15
263 [visual studio] Bring Your MFC Application to the Web mfc 어플리케인 web 구동 file 졸리운_곰 2023.03.20 4
262 [C/C++][인터넷] [C++] Full-fledged client-server example with C++ REST SDK 2.10 졸리운_곰 2023.02.20 23
261 [Linux programming][turbo c] The libXbgi Library file 졸리운_곰 2023.02.05 9
260 [visual studio] [borland c] Using the WinBGIm Graphics Library with Visual Studio 2005/2008 2010 file 졸리운_곰 2023.02.05 4
259 [WSL2] 윈도우에서 linux 사용 (WSL 2), xwindows GUI 설정 file 졸리운_곰 2023.01.28 18
258 [WSL2] Windows 11의 WSL2에서 리눅스 X Window 응용프로그램 실행하기 file 졸리운_곰 2023.01.28 22
257 [C/C++ 인공지능] Getting Started with mlpack 졸리운_곰 2023.01.28 12
256 [리눅스][linux] Ubuntu/Linux에서 user password를 짧거나 쉬운 password로 변경하는 방법. file 졸리운_곰 2023.01.08 6
255 [linux master][리눅스 마스터][국가기술자격] [GCP 원데이] 서버가 죽는 이유, Message Queue file 졸리운_곰 2023.01.01 8
254 [linux master][리눅스 마스터][국가기술자격] 리눅스 서버 다운 원인 5가지 졸리운_곰 2023.01.01 3
253 [WSL2] WSL에서의 Jupyter notebook 사용하기. file 졸리운_곰 2022.11.27 40
252 [docker] [Oracle] docker에 Oracle 11g 설치하기 file 졸리운_곰 2022.11.26 15
251 [linux master][리눅스 마스터][국가기술자격] Shell In A Box-원격 Linux 서버에 액세스하기위한 웹 기반 SSH 터미널 file 졸리운_곰 2022.11.17 4
» [linux dev env] [우분투 서버] noVNC 접속 file 졸리운_곰 2022.11.16 3
249 [C/C++][인터넷] [C++] FTP Upload/Download 구현 클래스(매우 유용) file 졸리운_곰 2022.11.16 23
248 [리눅스 일반] ffmpeg에서 m4a 파일을 mp3 파일로 변환할때 생기는 오류에 관하여 file 졸리운_곰 2022.11.11 11
247 [C/C++ 언어일반] C/C++ 스마트 포인터 관련 file 졸리운_곰 2022.11.06 22
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED