ポートフォワーディング
Mobile SSH はローカルの SSH ポートフォワーディングに対応します。Android 端末上のローカルポートが 127.0.0.1 で待ち受け、SSH 接続を通じてリモートのホストとポートへトラフィックを転送します。
保存済みトンネルの構文
ポートフォワーディング規則はカンマ区切りです。各エントリは次の 2 つの形式のいずれかを使います。
PORT
LOCAL:REMOTEHOST:REMOTE
短い形式:
8080
これは Android 端末で 127.0.0.1:8080 をバインドし、サーバーの観点で localhost:8080 へ転送します。
完全な形式:
3000:localhost:3000
これは Android 端末で 127.0.0.1:3000 をバインドし、SSH を通じてリモート側の localhost:3000 へ転送します。
複数の転送:
8080, 3000:localhost:3000, 15432:db.internal:5432
保存済みサーバーにトンネルを追加する
- Saved Servers を開きます。
- サーバープロファイルを追加または編集します。
- Port forwards に転送規則を入力します。
- サーバーを保存します。
- サーバーに接続します。
アプリは SSH セッションが接続した後に保存済みの転送を適用します。
アクティブなトンネルを管理する
接続中はセッションを選び、ターミナルのツールバーからトンネルビューを開きます。そこからアクティブなローカル転送を確認したり、新しいトンネルを追加したり、ローカル転送を削除したりできます。
アドレスのバインド
Mobile SSH はローカル転送を Android 端末の 127.0.0.1 にバインドします。これは意図的な設計で、トンネルを端末ローカルに保ち、IPv6 のみのループバックによる予期しない動作を避けます。Android が同じ端末上の他アプリのネットワークアクセスを許可している場合、それらのアプリが転送されたローカルポートに接続できることがあります。
よくある例
リモートサーバーで動く Web サービスにアクセスする:
8080
その後、Android 端末のブラウザで http://127.0.0.1:8080 を開きます。
開発サーバーにアクセスする:
3000:localhost:3000
SSH サーバーから到達できる内部データベースにアクセスする:
15432:db.internal:5432
トンネルのトラブルシューティング
- 実行時にトンネルを追加する前に、SSH セッションが接続されていることを確認します。
- ローカルポートがすでに使用されていないか確認します。
- リモートのホストとポートが SSH サーバーから到達できるか確認します。
- 宛先のサービスが SSH サーバー自体にある場合は
localhostを使います。 - SSH サーバーの背後にある別のホストへ転送する場合は、サーバーの内部 DNS 名または IP を使います。