TEST12138

TEST12138

长路漫漫,唯心作伴。

古いスマートフォンを使ってウェブサービスを構築し、cloudflaerdの内網貫通を利用して、ドメイン名でアクセス可能にする。

準備するもの#

正常に動作する古いスマートフォン新しいスマートフォンでも可

termux アプリ

ドメインfreenom で無料のものがある

cloudflare アカウントとドメインのプロキシ

termux で Linux をインストール#

私がデモするスマートフォンは Android 11 です

Screenshot_20221215-153446_設定.pngScreenshot_20221215-153437_Android_システム.pngScreenshot_20211217-021318_Pixel_ランチャー.png

インストールが完了したら termux を開きます

Screenshot_20211217-021336_Termux.png

openssh をインストール#

スマートフォンの操作が難しいので、ssh を使うことにしました。自分でスマートフォンを操作できると思う方はインストールしなくても大丈夫ですし、他の ssh をインストールしたい方も同様です。

アプリを開いたらpkg install opensshと入力します。ここはスクリーンショットを撮り忘れました。

インストールが完了したらpasswdと入力してパスワードを設定します。

次にsshdと入力して openssh を起動します。

whoamiと入力してユーザー名を取得します。

Screenshot_20221214-150646_Termux.png

ifconfigと入力して IP アドレスを取得します。

コンピュータから ssh 接続#

ポートは ssh サービスのポートで、openssh のデフォルトポートは 8022 です。

コンピュータでssh -p ポート 取得したユーザー名@ipアドレスと入力して接続します。

微信画像_20221215161630.png

Linux をインストール#

接続したらbash <(curl -L gitee.com/mo2/linux/raw/2/2)と入力して Linux をインストールします。

他のインストール方法があればそれでも構いません。別の方法の場合はここをスキップできます。

微信画像_20221215161848.png

ここで最初の proot コンテナを選択します。

おそらく再度コンテナを選択する画面が表示されるかもしれませんが、具体的にはスクリーンショットを撮り忘れましたので、最初の proot コンテナを選択すれば大丈夫です。

微信画像_20221215161953.png

ここで最初の neon を選択します。

微信画像_20221215162139.png

フォントはお好みで選んでください。

微信画像_20221215162316.png

最初のものを選択します。

微信画像_20221215162347.png

最初のものを選択します。

微信画像_20221215162408.png

ここでどの Linux を使いたいか選んでください。ただし、cloudflare の公式ドキュメントではいくつかの Linux のみがサポートされています。

微信画像_20221215162431.png

微信画像_20221215162639.png

その後は適当にクリックすれば大丈夫です。

この画面で vnc をインストールすることをお勧めします。後で cloudflare にブラウザでログインする必要があり、グラフィカルインターフェースが必要です。

微信画像_20221215163052.png

微信画像_20221215163108.png

微信画像_20221215163134.png

Web サービスをインストールして起動#

自分で検索してください。

cloudflared をインストール#

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/ にアクセスし、自分のオペレーティングシステムに応じて選択します。

微信画像_20221215163512.png

どれを選べばよいかわからない場合は、cloudflare パッケージリポジトリをクリックします。

微信画像_20221215162639.png

自分のオペレーティングシステムに応じて選択し、公式ドキュメントに従ってコマンドを入力しますここはスクリーンショットを撮り忘れました

ログインとトンネルの作成#

次にリモートデスクトップ接続を開きます。

微信画像_20221215163959.png

ターミナルでcloudflared tunnel loginと入力します。

微信画像_20221215164040.png

リンクが表示されるので、そのリンクをクリックしてログインします。

微信画像_20221215164244.png

微信画像_20221215164255.png

ログインしたら、ターミナルでリンクをクリックして開き、自分のドメインを選択します。

vnc は少し遅いので、ssh ターミナルに戻り、cloudflared tunnel create トンネル名と入力してトンネルを作成します。トンネル名は自由に付けてください!微信画像_20221215164726.png

次に、cloudflared tunnel listと入力して、成功したかどうかを確認し、トンネルの ID をコピーします。

ドメインをバインド#

次に、cloudflared tunnel route dns トンネル名 ドメインと入力してバインドします。

トンネル名は先ほど作成したトンネルで、ドメインは自分のドメインです。

微信画像_20221215165309.png

設定ファイルに書き込む#

nano ~/.cloudflared/config.ymlと入力して以下の設定を書き込みます。

tunnel: <トンネルID>
credentials-file: /root/.cloudflared/<トンネルID>.json
protocol: http2
originRequest:
  connectTimeout: 30s
  noTLSVerify: false
ingress:
  - hostname: <ドメイン>
    service: http://localhost:ポート
  - service: http_status:404

複数のポートを開きたい場合は、以下の画像のように書いてください。

微信画像_20221215165808.png

保存したら、nano /etc/systemd/system/cloudflared.serviceと入力します。

書き込みます。

[Unit]
Description=cloudflared
After=network.target

[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --loglevel debug --transport-loglevel warn --config /root/.cloudflared/config.yml tunnel run <トンネル名>
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

微信画像_20221215170228.png

改行しないことに注意してください。

保存します。

サービスを起動#

systemctl enable cloudflared --nowと入力します。

微信画像_20221215170328.png

成功をテスト#

ウェブサイトを開いて、通過が成功したかどうかを確認します。

微信画像_20221215170332.png

その他#

他のサービスもサポートされています。詳細はドキュメントを参照してください。

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/ingress/

c657d87d50a86bfd998e5b6cdacdb45.png

ssh アクセスにはローカルターミナルの設定が必要です。

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/

微信画像_20221215171444.png

ssh ブラウザアクセスは cloudflare の zero パネルで設定する必要があります。ドキュメントを自分で確認するか、別の投稿を作成します。

実際に termux で web サービスを起動し、Linux 内でも通過アクセスできることが確認できたので、ソフトウェアに限らず、スマートフォンに ksweb をインストールすれば同様のことができるかもしれません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。