1. VNC 원격 접속 시도
Ubuntu GUI 환경에 원격으로 접속하기 위해 처음에는 TigerVNC를 사용했습니다.
VNC 서버를 :2 디스플레이로 실행하면서 7897 포트를 사용했고, 방화벽에서는 내부망에서만 접근할 수 있도록 설정했습니다.
sudo ufw allow from 192.168.0.0/24 to any port 7897 proto tcp
초기에는 VNC 세션이 실행 직후 종료되는 문제가 발생했고, ~/.vnc/xstartup과 XFCE 세션 설정을 수정하면서 접속 자체는 성공했습니다.
다만 기존 Ubuntu GUI 화면을 공유하는 것이 아니라 새로운 가상 데스크톱 세션이 생성된다는 문제가 있었습니다.
2. Wayland 환경 확인 및 RDP 전환
기존 로컬 화면과 동일한 화면을 원격에서도 사용하고 싶어 x0vncserver를 시도했습니다.
확인 결과 현재 GUI 환경은 Xorg가 아니라:
GNOME Wayland
└─ Xwayland :0
구조였습니다.
x0vncserver는 X11 기반 화면 공유에 적합하기 때문에 현재 환경과 맞지 않았고, 결국 GNOME에서 기본적으로 제공하는 Remote Desktop(RDP) 방식으로 전환했습니다.
sudo apt install gnome-remote-desktop -y
- Remote Login: 별도 원격 로그인 세션 생성
- Desktop Sharing: 현재 로그인된 로컬 화면을 그대로 공유
Desktop Sharing 방식으로 설정했습니다.
최종적으로 RDP 포트 9879만 내부망에서 허용했습니다.
sudo ufw allow from 192.168.0.0/24 to any port 9879 proto tcp
기존 VNC는 더 이상 필요하지 않아 관련 패키지와 방화벽 규칙도 제거했습니다.
3. BUILD 환경 구성
첫 배포를 위해 서버에 Java 21 환경을 구성했습니다.
sudo apt update
sudo apt install openjdk-21-jdk -y
설치 확인:
java -version
javac -version
이후 프로젝트를 빌드하고 서버에서 실행할 수 있는 환경을 준비했습니다.
Spring Boot 프로젝트라면 일반적으로:
./gradlew clean build
로 빌드 후 생성된 JAR 파일을 서버에서 실행할 수 있습니다.
java -jar app.jar
SSH 접속을 종료해도 프로그램이 계속 실행되도록 하기 위해 nohup 또는 tmux 방식도 확인했습니다.
nohup java -jar app.jar > app.log 2>&1 &
4. Cloudflare Tunnel 및 도메인 연결
외부에서 서비스를 노출하기 위해 Cloudflare Tunnel을 사용했습니다.
여기서 중요한 점은 Tunnel보다 먼저 Cloudflare에 사용할 도메인이 연결되어 있어야 한다는 점이었습니다.
구조는 다음과 같습니다.
Domain
↓
Cloudflare DNS
↓
Cloudflare Tunnel
↓
cloudflared
↓
Local Application
즉 cloudflared만 실행한다고 외부에서 HTTPS 접속이 가능한 것이 아니라, Cloudflare에 등록된 도메인 또는 서브도메인이 Tunnel과 연결되어 있어야 합니다.
또한 Cloudflare SSL은 내부 서버 IP에 직접 적용되는 것이 아닙니다.
http://192.168.0.9:8080
로 직접 접속하면 Cloudflare를 거치지 않기 때문에 SSL이 적용되지 않습니다.
반대로:
https://api.example.com
처럼 Cloudflare에 연결된 도메인을 통해 접속해야 Edge SSL 인증서가 적용됩니다.
5. 첫 배포
서버 원격 접속 환경, Java 실행 환경, 방화벽, Cloudflare Tunnel까지 준비한 뒤 처음으로 애플리케이션을 홈서버에 배포했습니다.
전체 흐름을 정리하면:
개발 PC
↓
BUILD
↓
JAR 생성
↓
Ubuntu Server
↓
Java 21
↓
Application 실행
↓
Cloudflare Tunnel
↓
Domain
↓
HTTPS 외부 접속
이번 작업을 통해 단순히 개발한 프로그램을 실행하는 것을 넘어, 직접 구축한 Ubuntu 홈서버에 서비스를 처음 배포하는 과정까지 완료했습니다.
+ SFTP, 알드라이브 접속 에러
SFTP, 알드라이브 최신 리눅스 배포판 접속 에러
아 분명 SSH 로컬 접속도 되고,,, PUTTY 로 메인컴으로 서버컴 연결도 되는데 알드라이브에서 SFTP 연결이 안되서 삽질하다 보니
알드라이브에서 연결을 공개 키 암호화 알고리즘으로 요청하기 때문인데...
해당 연결 방식의 취약점 때문에 최신 버전 리눅스 커널은 연결 되지 않는다네요 ...
이때 공개키 설정 과 다른 프로그램 사용이 있는데 ,,,
굳이 취약점이 있다는데 쓰기 싫어서 winSCP 프로그램을 활용했습니다. 그렇습니다 ...