ネットワークが違う端末へのSSH接続(Cloudflare Tunnel使用)


~Cloudflare Tunnelで実現する、NAT越えリモートSSHアクセス~


■前提条件

・操作される端末はスマホサーバー、操作する端末は他のスマホ

・本記事はスマホwebサーバー化マニュアルにてサーバー構築後、サーバーを別端末(こちらもスマホ)でリモートに動かしたい時に参考になるものです。

なので前提条件として以下の準備が済んでいる必要があります。

【Cloudflare 側の準備】
​・Cloudflare アカウントを所有していること
​独自ドメインを取得し、Cloudflare で管理(DNS設定済み)していること
​・Zero Trust(Cloudflare One)の利用開始設定(無料プランでOK)が済んでいること
・​既に1つ以上のトンネル(今回の例では android-server)が作成され、アクティブであること

​【サーバー側(自宅スマホ / Termux)の準備】
​・cloudflared がインストールされ、既にログイン(認証)済みであること
​・HTTPによるWeb公開などが既に成功していること(トンネルが疎通している証拠)
​・openssh パッケージがインストールされていること
​ログイン用のユーザーパスワード(passwd)が設定済みであること

​【操作側(外出先スマホ・PC / Termux)の準備】
​・cloudflared パッケージがインストールされていること
​・SSHクライアント(openssh など)が使える状態であること


■Open sshインストール編

・操作される側にOpen sshをインストール

pkg install openssh

・パスワード設定
・SSHサーバー起動

sshd


■Cloudflare設定編

・「Cloudflare Zero Trust」→左のメニューから「Connecors」
・既にあるトンネルの名前をクリックし、詳細画面へ
・​上の「Published application routes」タブをクリック→「+Add a Published application routes」の青ボタンをクリック
・設定は以下

  • Subdomainはssh
  • Domainは選択
  • Pathは空欄
  • TypeはSSHを選択
  • URLはlocalhost:8022

・入力できたらSave


■操作する側の端末設定編

・操作する側のtermuxにOpenssh導入
・トンネルの入り口を作成

cloudflared access tcp --hostname ssh.smartlife123.tech --listener localhost:2222

・以下のようなメッセージがでたら成功

2026-04-05T04:24:09Z INF Start Websocket listener host=localhost:2222

・別セッションを立ち上げ、ログイン

ssh -p 2222 [ユーザー名]@localhost

・設定したパスワード入れて接続

・自端末ではなく、他端末を操作中であることを明示しておこう

export PS1='[OPERATOR] \w \$ '


■次に繋げたい時

・操作側からトンネル作り直し

cloudflared access tcp --hostname ssh.smartlife123.tech --listener localhost:2222

・再度ログイン

ssh -p 2222 [ユーザー名]@localhost
export PS1='[OPERATOR] \w \$ '

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です