콘텐츠로 이동

noVNC를 이용한 콘솔 화면 접속

Ubuntu 서버의 콘솔 화면을 웹 브라우저를 통해 원격 제어할 수 있도록 Vino VNC 서버websockify 프록시를 구성했습니다.


작업 요약

기능 설명
VNC 세션 자동 활성화 부팅 시 설정된 사용자 계정으로 자동 로그인
보안 강화 자동 로그인 후 5초 뒤 화면 잠금 (물리적 접근 차단)
웹 원격 접속 websockify 프록시(59000) → VNC(5900) 중계

최종 결과

브라우저에서 http://[서버_IP]:59000/vnc.html로 접속하여 원격 제어 가능


필수 패키지 설치 및 Vino VNC 서버 설정

패키지 설치

sudo apt update
sudo apt install -y vino novnc python3-websockify

Vino VNC 서버 설정

noVNC 접속을 위해 암호화를 비활성화하고 VNC 비밀번호를 설정합니다.

VNC 설정
# VNC 인증 방식 설정
gsettings set org.gnome.Vino authentication-methods "['vnc']"

# 암호화 비활성화 (noVNC 호환성)
gsettings set org.gnome.Vino require-encryption false

# VNC 비밀번호 설정
gsettings set org.gnome.Vino vnc-password "$(echo -n 'techax@@26' | base64)"  # (1)!

# 접속 시 사용자 승인창 비활성화
gsettings set org.gnome.Vino prompt-enabled false
  1. techax@@26을 원하는 비밀번호로 변경하세요.

자동 로그인 및 VNC 서버 자동 실행

GDM 자동 로그인 설정

주의

techax실제 사용자 이름으로 변경하세요.

sudo nano /etc/gdm3/custom.conf

[daemon] 섹션에 다음 내용 추가:

/etc/gdm3/custom.conf
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=techax

Ctrl+OEnterCtrl+X로 저장 후 종료

자동 시작 스크립트 생성

자동 로그인 직후 화면을 잠그고 VNC 서버를 시작합니다.

Autostart 스크립트 생성
mkdir -p ~/.config/autostart

# 화면 잠금 스크립트
cat <<EOF > ~/.config/autostart/lock_screen.desktop
[Desktop Entry]
Type=Application
Name=Lock Screen on Startup
Exec=/bin/bash -c "sleep 5 && /usr/bin/loginctl lock-session"
Terminal=false
NoDisplay=true
X-GNOME-Autostart-enabled=true
EOF

# Vino 서버 자동 시작 스크립트
cat <<EOF > ~/.config/autostart/vino-server.desktop
[Desktop Entry]
Type=Application
Name=Vino VNC Server
Exec=/usr/lib/vino/vino-server
Terminal=false
NoDisplay=true
X-GNOME-Autostart-enabled=true
EOF

websockify 프록시 자동 실행 (Systemd)

웹 브라우저 접속 포트(59000)를 VNC 서버 포트(5900)로 중계하는 프록시를 systemd 서비스로 등록합니다.

서비스 파일 생성

/etc/systemd/system/novnc-proxy.service
[Unit]
Description=noVNC WebSocket Proxy
After=network.target

[Service]
User=root
ExecStart=/usr/bin/websockify --web /usr/share/novnc 59000 localhost:5900
Restart=always

[Install]
WantedBy=multi-user.target

서비스 활성화 및 시작

서비스 등록
sudo systemctl daemon-reload       # systemd 설정 리로드
sudo systemctl enable novnc-proxy  # 부팅 시 자동 시작
sudo systemctl start novnc-proxy   # 즉시 시작

접속 및 최종 확인

서버 재부팅

필수

자동 로그인 및 서비스 설정을 적용하기 위해 서버를 반드시 재부팅합니다.

sudo reboot

포트 확인 (선택)

sudo ss -tuln | grep -E '5900|59000'

웹 브라우저 접속

접속 방법

  1. http://[서버_IP_주소]:59000/vnc.html 접속
  2. VNC 비밀번호 입력 (1단계에서 설정한 비밀번호)
  3. 잠금 화면이 나타나면 사용자 계정 비밀번호로 잠금 해제