1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TermuxとNgrokを使って自宅サーバーを公開した(まだできてない)

Last updated at Posted at 2024-12-16

TermuxとNgrokでAndroidで自宅サーバーを公開する方法

最後までできていません。お許しを
できたらすぐに更新したいと思います。

はじめに

外で、ちょっとしたAPIを作りたいなと思った時に、すぐに作れるよう、

家で余っている古いAndroidタブレットをサーバー化し、ngrokで外部ネットワークに公開した。

ポート解放なし・パソコンをサーバー化するより省電力!

筆者の環境

Androidのシステム:Android 6.0.1
Ngrok:無料版

Termuxのインストール

Termuxアプリのインストール。
通常のアプリと同じようにインストールする。

OSバージョンが古すぎて、Google Storeで、インストールできなかったので、APKファイルをダウンロードして、手動インストールした。

必要なものをインストール

Termuxでは、パッケージのインストールにpkgを使う。

pkg install openssh
pkg install iproute2
pkg install tree
pkg install git

とりあえず、よく使うものをインストール。

上から、

  • SSH
  • ネットワークの状態を確認する
  • tree コマンド
  • git コマンド

最後に、

pkg update
pkg upgrade

SSHから触れるようにする

タッチパネルのキーボードは嫌なので、sshでiPadから触ることにした。

sshのアカウントを設定してから、iproute2でipアドレスを特定し、
iPadのa-shellから、ssh接続。

この記事を参考にした。↓

a-shellとは、iOSで動くターミナルアプリ。
ローカルについては権限がほとんどなく、何もできないが、
SSHを使えるのが強い
ちなみに、ローカルでPythonを動かせたりする

Node.jsでHello World

iPadから、ssh接続できたら、
とりあえず、Webサーバーを建てたかったので、
僕の一番よく知っているNode.jsをインストール。

pkg install nodejs

パソコンからJavaScriptHello Worldをちょこっと書き、
GitHub経由で、サーバーに移す。

git clone https://github.com/*******/******

最後に、サーバー起動!

node app.js

Hello Worldのプログラム参考↓

js app.js
const http = require("http");

const server = http.createServer();

server.on("request", function (req, res) {
  res.writeHead(200, { "Content-Type": "text/plain" });
  res.write("Hello World");
  console.log("リクエストがきたよ");
  res.end();
});

server.listen(8080);
console.log("server listen...");

では、このWebアプリケーションを外部公開していく。

ngrokで公開する

ngrokとは

ポート解放なしで、ローカルなアプリケーションを外部に公開できる。

無料版でも意外と使えるので、マイクラのサーバー立てる時とかにも使えそう。

公式ドキュメントにマイクラみたいなゲームサーバーを公開できるよと書いてたよ

インストール

termuxにインストールをするのは、
いいのを見つけたので、これを使ったらすぐにインストールできた。

Ngrokのアカウントの作成

で、サインアップして、
ダッシュボードのYourAuthTokenから、トークンをコピーしておく。

トンネリング開始

npx ngrok authtoken [コピーしたトークン]

これで、認証情報を保存。

公開したいWebサーバーを起動して、

ngrok http [ポート番号]

これで、外からアクセスできるURLを示してくれるので、それにアクセスして、

Hello Worldと出たら成功なのだが、
出なかった

なにやら、トンネリングは成功しているものの、
Ngrok Clientから自作Webアプリにアクセスできないらしい

http://localhost
で、動いてるかを確認しろとのこと

crul http://localhost

早速、手動でGET requestを送ると、
ちゃんとHello Worldが動いた

Ngrok側の不具合らしい
とりあえず再インストールしたができなかった

今の所、この問題が解決せず詰まっている。
できたら更新する予定。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?