오래된 안드로이드 폰을 웹 서버로 재활용하는 방법

7 hours ago 2

이 가이드는 2015년 Fairphone 2를 사용해 웹페이지를 호스팅한 사례를 기반으로, 사용하지 않는 안드로이드 폰을 postmarketOS로 변환하여 소규모 홈 서버로 만드는 과정을 안내합니다. 목표는 전자 폐기물을 줄이고 재사용을 장려하는 것입니다. 결과적으로 기본 서비스를 실행할 수 있는 작은 홈 서버를 얻을 수 있습니다.

필요한 준비물
  • 사용하지 않는 안드로이드 폰
  • 충전기와 전원 공급원
  • WiFi 연결
  • Linux를 실행하는 컴퓨터 (네이티브 또는 가상 머신)
단계 1: postmarketOS 설치

먼저, postmarketOS를 폰에 설치합니다. 디바이스 페이지에서 자신의 디바이스가 제대로 지원되는지 확인하고, 해당 페이지를 설치 내내 열어두세요.

pmbootstrap을 설치한 후, 이미지를 생성하고 플래시합니다.

이미지 생성:

  • 포트 업데이트 및 디바이스 정보 초기화: $ pmbootstrap pull $ pmbootstrap init
    • 디바이스 코드네임은 디바이스 페이지에 나열된 것을 입력.
    • 사용자 인터페이스는 console (최소 옵션) 또는 fbkeyboard (화면 키보드 포함)를 선택.
  • 이미지 생성: $ pmbootstrap install

이미지 플래시:

  • 디바이스 페이지에서 플래시 모드로 부팅하는 방법을 확인 (보통 "volume down" 버튼을 누른 상태로 전원 켜기).
  • 폰을 컴퓨터에 연결하고 플래시 모드로 부팅.
  • 디바이스 페이지의 'Installation' 섹션 지침을 따름.
  • 루트 파일 시스템 플래시: $ pmbootstrap flasher flash_rootfs
  • 디바이스를 재부팅하고 postmarketOS가 올바르게 시작되는지 확인.
단계 2: 서버 설정

postmarketOS가 설치된 폰에 로그인합니다. 기본 사용자 이름/비밀번호는 user / 147147입니다.

  • 폰을 컴퓨터에 연결한 상태로 SSH 로그인: $ ssh user@172.16.42.1
  • WiFi 네트워크 연결: $ nmcli device wifi connect your_wifi_network --ask

이제 로컬 폰 서버가 완성됩니다. 폰의 로컬 IP 주소를 확인하는 명령:

$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1

(일반적으로 192.168.1.x 형식). 폰을 안전한 곳에 연결하고 WiFi를 통해 접근:

ssh user@192.168.1.x
단계 3: 웹 페이지 제공

웹 서버를 설정하여 간단한 웹 페이지를 호스팅합니다.

  • /var/www/html/ 디렉토리 생성: sudo mkdir -p /var/www/html/
  • 간단한 Hello World HTML 파일 작성: $ sudo sh -c 'echo "<h1>hello world</h1>" > /var/www/html/index.html'
  • 포트 80으로 들어오는 패킷을 허용하는 nftables 규칙 추가 (/etc/nftables.d/99_http.nft 파일에): inet filter input tcp dport 80 ct state new accept
  • nftables 재시작: $ sudo systemctl restart nftables
  • 웹 서버 실행: $ httpd -h /var/www/html/
  • 테스트: 컴퓨터에서 curl로 확인: $ curl 192.168.1.x (<h1>hello world</h1> 텍스트가 출력됨). 같은 WiFi 네트워크에 연결된 기기의 웹 브라우저에서 IP 주소를 입력해 확인. (재부팅 시 HTTP 서버가 자동 재시작되지 않음.)
추가: 원격 액세스

보안상 SSH 포트 22를 인터넷에 열지 말고, 라우터의 VPN 액세스를 설정하세요 (대부분 웹 인터페이스에서 지원). VPN 연결 후 로컬 네트워크에서 SSH로 접근. 포트 22를 인터넷에 열 경우, 비밀번호 로그인을 비활성화하고 SSH 키를 설정하세요.

추가: 유지보수

패키지 업데이트:

$ sudo apk update $ sudo apk upgrade
다음 단계

고급 섹션 (아직 건설 중)에서 도메인 및 HTTPS 설정, HTTP 서버 재부팅 후 지속 실행 방법을 배웁니다.

이 가이드는 Louis MerlinCC BY-NC-SA 4.0 라이선스 하에 제작되었습니다.

Read Entire Article