古いAndroidスマートフォンをWebサーバーとして再活用する方法
(far.computer)このガイドでは、2015年のFairphone 2でWebページをホスティングした事例をもとに、使っていないAndroidスマートフォンをpostmarketOSに変えて小規模なホームサーバーにする手順を案内します。目的は電子廃棄物を減らし、再利用を促進することです。結果として、基本的なサービスを実行できる小さなホームサーバーを手に入れられます。
必要なもの
- 使っていないAndroidスマートフォン
- 充電器と電源
- 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: Webページの配信
Webサーバーを設定して、簡単なWebページをホストします。
/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 - Webサーバーを実行:
$ httpd -h /var/www/html/ - テスト: コンピュータからcurlで確認:
($ curl 192.168.1.x<h1>hello world</h1>のテキストが表示されます)。同じWiFiネットワークに接続された機器のWebブラウザでIPアドレスを入力して確認します。(再起動してもHTTPサーバーは自動再起動しません。)
追加: リモートアクセス
セキュリティ上、SSHの22番ポートをインターネットに公開せず、ルーターのVPNアクセスを設定してください(多くはWebインターフェースで対応しています)。VPN接続後、ローカルネットワークからSSHでアクセスします。22番ポートをインターネットに公開する場合は、パスワードログインを無効化し、SSHキーを設定してください。
追加: メンテナンス
パッケージ更新:
$ sudo apk update
$ sudo apk upgrade
次のステップ
高度なセクション(まだ作成中)では、ドメインとHTTPSの設定、HTTPサーバーを再起動後も継続実行する方法を学べます。
このガイドは、Louis Merlin によって CC BY-NC-SA 4.0ライセンス のもとで作成されました。
4件のコメント
こういうの、私は好きです。
気軽に始めるなら、Termux 程度でも十分いけます。使っていないタブレットで Grafana を立ち上げるくらいなら実用可能です。
ただし、Android OS はサーバーとして動作することに対してかなり敵対的です。
2024年に工場出荷時リセットした Note10 基準では、
子プロセスが6個を超えると kill されます。
アイドル状態が長く続いても kill されます。
バッテリー関連の最適化をすべて切ってもそうです。
タッチ画面に触れずに最長72時間までは動かしてみましたが、その先は諦めました。
phantom process killerを無効にしてみましたか?
バッテリーは大丈夫でしょうか
膨張が起きるでしょうね