Android サーバ化計画 ( Termux )
Android 端末をTermuxでサーバ構築してみる.
とりあえずWebアプリ動かすとこまで.
Dockerとかしたいので後で追記予定
手順
2. Python/flask 導入しPCから接続確認
使うもの
Android端末:Galaxy note3 (Android 5)
PC: SSHする端末
Linux環境構築
root化なしで,Play Store でインストールするだけでLinux環境を構築できるアプリがある.本稿では,TermuxによるLinux環境で構築を進める.
Termux
Android terminal emulator らしい.
良いと思う点として,Debian , Ubuntu GNU/Linux のAPTパッケージマネージャが使える.実際は,pkgコマンドというラッパー?を使うぽい .
PCからSSHまで
手順は基本的に以下にまとめてもらってる記事を参考にしてできた
https://linuxfan.info/termux-sshd
流れとして,
1. アプリインストール・アップデート
$ pkg update
3. 公開鍵をAndroidに転送
USB転送できなかったのでDropboxでファイル共有しました.
Termux から Android にアクセスするには
$ termux-setup-storage
を実行するだけ.Termuxからは`~/storage/download/`でAndroidのダウンロードディレクトリが見れる.
4. openssh をインストール
$ pkg install openssh
5. Android側で公開鍵を~/.ssh/authorized_keysにリネーム
$ cat ~/storage/downloads/id_ed25519.pub >> ~/.ssh/authorized_keys
6. 鍵の権限確認と`sshd`を実行
Termuxに限らず権限は.sshが700,.ssh/*が600
デフォで権限は大丈夫だった.
確認後に以下でsshサーバ起動.
$ sshd
SSHの注意点として
・ポートが8022
・ユーザ名の指定する必要があった.
ユーザ名の確認方法はTermuxで
$ whoami
Pythonでflask動かすまで
一旦動作確認.Python+flaskでPCから接続できるか確認
$ pkg install python
$ python -V # バージョン3指定なしでpython3が入った.
Python 3.7.4
$ $ pip install --upgrade pip # 恒例
$ pip install pipenv
$ mkdir flask
$ cd flask/
$ pipenv install flask
$vim app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_cloud():
return 'Hello World!'
app.run(host='0.0.0.0')
$ pipenv run python app.py
PCからcurlで「Hello World!」が返って来てたらOK!
$ curl http://192.168.11.14:5000/
Hello World!
まとめ
とりあえずここまで.
DockerやWebサーバなど色々試してみたいことはあるので今後追記しようと思う.