noVNC를 이용한 콘솔 화면 접속¶
Ubuntu 서버의 콘솔 화면을 웹 브라우저를 통해 원격 제어할 수 있도록 Vino VNC 서버와 websockify 프록시를 구성했습니다.
작업 요약¶
| 기능 | 설명 |
|---|---|
| VNC 세션 자동 활성화 | 부팅 시 설정된 사용자 계정으로 자동 로그인 |
| 보안 강화 | 자동 로그인 후 5초 뒤 화면 잠금 (물리적 접근 차단) |
| 웹 원격 접속 | websockify 프록시(59000) → VNC(5900) 중계 |
최종 결과
브라우저에서 http://[서버_IP]:59000/vnc.html로 접속하여 원격 제어 가능
필수 패키지 설치 및 Vino VNC 서버 설정¶
패키지 설치¶
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
techax@@26을 원하는 비밀번호로 변경하세요.
자동 로그인 및 VNC 서버 자동 실행¶
GDM 자동 로그인 설정¶
주의
techax를 실제 사용자 이름으로 변경하세요.
[daemon] 섹션에 다음 내용 추가:
Ctrl+O → Enter → Ctrl+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
서비스 활성화 및 시작¶
서비스 등록
sudo systemctl daemon-reload # systemd 설정 리로드
sudo systemctl enable novnc-proxy # 부팅 시 자동 시작
sudo systemctl start novnc-proxy # 즉시 시작
접속 및 최종 확인¶
서버 재부팅¶
필수
자동 로그인 및 서비스 설정을 적용하기 위해 서버를 반드시 재부팅합니다.
포트 확인 (선택)¶
웹 브라우저 접속¶
접속 방법
- http://[서버_IP_주소]:59000/vnc.html 접속
- VNC 비밀번호 입력 (1단계에서 설정한 비밀번호)
- 잠금 화면이 나타나면 사용자 계정 비밀번호로 잠금 해제