오래된 안드로이드 폰을 웹 서버로 재활용하는 방법
(far.computer)이 가이드는 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 Merlin이 CC BY-NC-SA 4.0 라이선스 하에 제작되었습니다.