[TIPS] 안 쓰는 구형 스마트폰으로 24시간 초저전력 리눅스 홈서버 구축 완벽 가이드: Termux·SSH 원격 제어부터 PostgreSQL 18·웹 파일서버·Cloudflare Tunnel 외부 공개까지

Old Smartphone Linux Home Server Banner

[TIPS] 안 쓰는 구형 스마트폰으로 24시간 초저전력 리눅스 홈서버 구축 완벽 가이드: Termux·SSH 원격 제어부터 PostgreSQL 18·웹 파일서버·Cloudflare Tunnel 외부 공개까지

방치된 안드로이드 기기를 3~5W급 고성능 리눅스 서버로 탈바꿈시키는 8단계 실전 엔지니어링 표준 가이드입니다.

서랍 속에 잠들어 있는 구형 안드로이드 스마트폰(갤럭시 S8~S23 등)은 생각보다 놀라운 성능을 품고 있습니다. 8코어 ARM64 고성능 프로세서, 6GB~12GB 대용량 메모리, 수백 MB/s의 초고속 UFS 플래시 스토리지, 그리고 정전 시에도 8~12시간을 버텨주는 내장 배터리(UPS)까지 갖춘 완벽한 임베디드 서버 머신입니다.

본 가이드에서는 루팅 없이 Termux를 기반으로 안정적인 OpenSSH 원격 쉘, 최신 PostgreSQL 18 데이터베이스, 브라우저 기반 GUI 파일서버 FileBrowser를 구축하고, 포트포워딩이나 DDNS 없이 Cloudflare Tunnel로 외부 HTTPS 암호화 접속까지 완성하는 8단계 실전 구축 워크플로우를 안내합니다.


1단계: 왜 구형 스마트폰이 라즈베리 파이 5보다 뛰어난 홈서버인가?

최근 라즈베리 파이 본체와 방열 케이스, 정품 PD 전원 공급기, 고속 SSD 확장 쉴드를 모두 구매하면 15만~20만 원이 훌쩍 넘어갑니다. 반면 구형 스마트폰은 하드웨어 완성도와 전력 효율 면에서 탁월한 강점을 가집니다.

비교 항목 구형 스마트폰 (갤럭시 S10/S20급) 라즈베리 파이 4 / 5 x86 미니 PC (N100급)
SoC / CPU 옥타코어 ARM64 (빅리틀 고성능 코어) 쿼드코어 Cortex-A72 / A76 쿼드코어 Intel Gracemont
RAM 6GB ~ 12GB LPDDR4X / LPDDR5 4GB ~ 8GB LPDDR4X 8GB ~ 16GB DDR4 / DDR5
내장 스토리지 64GB ~ 256GB 고속 UFS 2.1/3.0 MicroSD (외장 NVMe 별매) M.2 NVMe SSD
내장 UPS 기본 내장 (정전 시 8~12시간 자율 가동) 없음 (정전 시 즉시 비정상 종료) 별도 UPS 필수 (10만 원+)
소비 전력 유휴 1~2W / 부하 3~5W (월 약 300원) 유휴 3~4W / 부하 8~12W 유휴 8~12W / 부하 25~45W
추가 비용 0원 (기존 기기 재활용) 약 15만 ~ 20만 원 약 20만 ~ 30만 원

2단계: 24시간 가동 시 필수 배터리 팽창(스웰링) 방지 및 발열 하드웨어 세팅

스마트폰을 24시간 365일 충전기에 계속 꽂아두면 리튬이온 배터리가 상시 100% 전압을 받아 배터리 스웰링(부풀어 오름 현상)이나 화재 위험이 발생할 수 있습니다. 다음 설정을 필수로 적용해야 합니다.

1. 배터리 충전 상한 제한 (80% / 85% 보호 모드)

삼성 갤럭시: 설정 ➔ 배터리 및 디바이스 케어 ➔ 배터리 ➔ 배터리 보호를 활성화하여 최대 충전량을 80%~85%로 고정합니다.
기타 제조사: 루팅 없이 스마트 플러그를 이용해 80% 충전 시 전원 차단, 30% 방전 시 충전 재개(Home Assistant 연동 또는 타이머 플러그)를 구성합니다.

2. 안드로이드 백그라운드 절전 및 프로세스 킬 차단

설정 ➔ 애플리케이션 ➔ Termux에서 배터리 최적화를 '제한 없음(Unrestricted)'으로 변경하고 백그라운드 데이터 사용을 상시 허용합니다.

3. 패시브 쿨링 및 디스플레이 번인 방지

스마트폰 케이스를 벗기고 알루미늄 거치대에 거치하여 방열 면적을 극대화합니다. 화면 밝기를 최저로 낮추고 화면 꺼짐 시간을 15초로 설정합니다.


3단계: F-Droid 기반 Termux 설치 및 패키지 미러 최적화

구글 플레이스토어 버전 Termux는 2020년 이후 유지보수가 중단되었습니다. 반드시 F-Droid 공식 저장소 빌드를 설치해야 정상적인 패키지 업데이트가 가능합니다.

Termux를 설치한 뒤 터미널을 열고 다음 명령을 실행하여 최신 패키지를 설치합니다:

BASH - Termux 미러 변경 및 패키지 갱신
# 빠른 응답의 아시아/글로벌 미러 서버 선택
termux-change-repo

# 전체 패키지 인덱스 갱신 및 업그레이드
pkg update -y && pkg upgrade -y

# 기본 핵심 유틸리티 설치
pkg install -y git curl wget nano htop tar

# 안드로이드 절전 모드 방지 (Wake Lock 획득)
termux-wake-lock

💡 termux-wake-lock을 실행하면 상단 상태 표시줄에 알림이 고정되어 화면이 꺼져도 8코어 CPU가 절전 모드로 진입하지 않고 상시 가동됩니다.


4단계: SSH(OpenSSH) 원격 접속 구축 및 공개키 기반 무암호화 인증

스마트폰의 작은 화면 대신 PC의 터미널(VS Code, PowerShell, Terminal)에서 원격 제어할 수 있도록 OpenSSH를 설치합니다. 안드로이드 비루트 권한 특성상 기본 포트 22 대신 8022 포트를 사용합니다.

BASH - Termux SSH 서버 설치 및 구동
# OpenSSH 패키지 설치
pkg install -y openssh

# 원격 접속에 사용할 비밀번호 설정
passwd

# 스마트폰 Wi-Fi IP 주소 확인
ip -4 addr show wlan0 | grep inet

# SSH 데몬 백그라운드 시작
sshd
BASH - PC에서 SSH 접속 및 공개키 등록
# PC 터미널에서 포트 8022로 접속 테스트
ssh -p 8022 <termux_user>@<스마트폰_IP>

# 비밀번호 없는 안전한 Ed25519 공개키 복사 등록
ssh-copy-id -p 8022 -i ~/.ssh/id_ed25519.pub <termux_user>@<스마트폰_IP>

# 이후 비밀번호 입력 없이 원클릭 접속 가능
ssh -p 8022 <termux_user>@<스마트폰_IP>

5단계: 고성능 데이터베이스(PostgreSQL 18) 설치 및 원격 접속 활성화

Termux 공식 패키지 저장소는 최신 PostgreSQL 18을 지원합니다. 스마트폰의 고속 UFS 스토리지 덕분에 경량 웹 프로젝트의 데이터베이스로서 매우 뛰어난 읽기/쓰기 IOPS를 보여줍니다.

BASH - PostgreSQL 18 설치 및 클러스터 초기화
# PostgreSQL 설치
pkg install -y postgresql

# 데이터베이스 클러스터 초기화
initdb -D $PREFIX/var/lib/postgresql

# PostgreSQL 서비스 시작
pg_ctl -D $PREFIX/var/lib/postgresql -l $PREFIX/var/log/postgresql.log start
SQL - 데이터베이스 및 사용자 생성
-- psql postgres 접속 후 실행
CREATE DATABASE homelab_db;
CREATE USER db_admin WITH ENCRYPTED PASSWORD '<YOUR_SECURE_PASSWORD>';
GRANT ALL PRIVILEGES ON DATABASE homelab_db TO db_admin;
ALTER DATABASE homelab_db OWNER TO db_admin;
\q

외부 PC나 다른 기기에서 접속하려면 $PREFIX/var/lib/postgresql/postgresql.conf에서 listen_addresses = '*'를 설정하고, pg_hba.conf에 허용 IP 대역을 추가한 뒤 pg_ctl restart를 실행합니다.


6단계: 고성능 웹 GUI 파일서버(FileBrowser)로 스마트폰을 개인 클라우드로 전환

스마트폰의 내장 메모리와 외장 MicroSD 카드를 웹 브라우저에서 구글 드라이브처럼 사용할 수 있도록 경량 Go 파일 관리자인 FileBrowser를 배포합니다.

BASH - FileBrowser 설치 및 디렉토리 공유 구성
# 안드로이드 공유 저장소 접근 권한 요청 (스마트폰 팝업에서 승인)
termux-setup-storage

# FileBrowser 공식 단일 바이너리 설치
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash

# 설정 DB 초기화 및 포트(8080) 설정
filebrowser config init --database=$PREFIX/var/filebrowser.db
filebrowser config set --address 0.0.0.0 --port 8080 --database=$PREFIX/var/filebrowser.db

# 스마트폰 공용 저장소를 파일서버 루트로 지정
filebrowser config set --root=$HOME/storage/shared --database=$PREFIX/var/filebrowser.db

# 관리자 계정 생성
filebrowser users add admin <YOUR_SECURE_PASSWORD> --perm.admin=true --database=$PREFIX/var/filebrowser.db

# FileBrowser 백그라운드 구동
filebrowser --database=$PREFIX/var/filebrowser.db &

이제 동일한 Wi-Fi 환경의 PC에서 http://<스마트폰_IP>:8080으로 접속하면 사진, 문서, 동영상을 손쉽게 업로드하고 스트리밍할 수 있습니다.


7단계: 포트포워딩·DDNS 없이 안전하게 외부 공개: Cloudflare Tunnel 연동

공유기 포트포워딩을 열면 외부 해커의 스캐닝 공격에 무방비로 노출됩니다. Cloudflare Tunnel(cloudflared)은 외부에서 들어오는 인바운드 포트를 단 하나도 열지 않고, 기기가 Cloudflare 엣지 네트워크로 아웃바운드 터널을 연결하여 안전하게 HTTPS 도메인을 연결해 줍니다.

BASH - ARM64 cloudflared 다운로드 및 터널 생성
# Cloudflare 공식 ARM64 바이너리 설치
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64 -O $PREFIX/bin/cloudflared
chmod +x $PREFIX/bin/cloudflared

# Cloudflare 계정 로그인 인증
cloudflared tunnel login

# 스마트폰 홈서버용 터널 생성 (고유 UUID 생성됨)
cloudflared tunnel create smartphone-home-server
YAML - ~/.cloudflared/config.yml 설정 파일
tunnel: <YOUR_TUNNEL_UUID>
credentials-file: /data/data/com.termux/files/home/.cloudflared/<YOUR_TUNNEL_UUID>.json

ingress:
  # 웹 파일서버 (FileBrowser) 연결
  - hostname: drive.yourdomain.com
    service: http://localhost:8080
  # 백엔드 API 또는 웹 서비스
  - hostname: api.yourdomain.com
    service: http://localhost:3000
  # 그 외 모든 요청 차단
  - service: http_status:404
BASH - DNS 등록 및 터널 실행
# CNAME DNS 레코드 자동 바인딩
cloudflared tunnel route dns smartphone-home-server drive.yourdomain.com

# 터널 백그라운드 실행
cloudflared tunnel run smartphone-home-server &

이제 외부 카페나 모바일 LTE 환경에서도 https://drive.yourdomain.com으로 접속하면 내 방 스마트폰 홈서버로 암호화된 초고속 파일 전송이 이루어집니다.


8단계: 스마트폰 재부팅 시 자동 실행(Termux:Boot) 및 무중단 가동 유지보수

스마트폰이 방전되거나 불시에 재부팅되었을 때 모든 서비스가 자동으로 다시 켜지도록 Termux:Boot를 구성합니다.

BASH - ~/.termux/boot/start-services.sh 부팅 스크립트
#!/data/data/com.termux/files/usr/bin/sh

# 1. CPU 절전 진입 방지
termux-wake-lock

# 2. OpenSSH 원격 접속 서버 시작
sshd

# 3. PostgreSQL 18 데이터베이스 데몬 실행
pg_ctl -D $PREFIX/var/lib/postgresql -l $PREFIX/var/log/postgresql.log start

# 4. FileBrowser 개인 클라우드 파일서버 가동
filebrowser --database=$PREFIX/var/filebrowser.db > /dev/null 2>&1 &

# 5. Cloudflare Tunnel 외부 공개 프록시 실행
cloudflared tunnel run smartphone-home-server > /dev/null 2>&1 &

✨ 구축 완료 및 운영 요약

이것으로 구형 스마트폰 기반의 24시간 초저전력(월 300원대) 리눅스 홈서버 인프라 구축이 완료되었습니다. 배터리 스웰링 방지 설정과 Termux:Boot 자동화 덕분에 정전이 발생해도 스마트폰 배터리가 UPS 역할을 하며 안전하게 서비스를 유지합니다.

댓글 쓰기

다음 이전