~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 \$ '

コメントを残す