SSHリモートポートフォワーディング

リモートポートフォワーディングを設定して、ローカルサービスをリモートサーバーに公開する方法。Webhook、デモ、ローカル開発環境のリモートアクセスに便利です。

Proxy & Tunneling

詳細な説明

SSHリモートポートフォワーディング

リモートポートフォワーディングはローカルフォワーディングの逆で、ローカルマシンで動作しているサービスをリモートサーバーからアクセス可能にします。

設定例

Host expose-local
  HostName remote-server.example.com
  User developer
  RemoteForward 8080 localhost:3000
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60

動作の仕組み

ssh expose-localで接続すると、リモートサーバーのポート8080がローカルマシンのポート3000にマッピングされます。

Webhook開発

Host webhook-tunnel
  HostName your-vps.example.com
  User dev
  RemoteForward 9000 localhost:3000
  ServerAliveInterval 30

WebhookプロバイダーにURLをhttp://your-vps.example.com:9000として設定すると、ローカル開発サーバーのポート3000にイベントが届きます。

GatewayPorts

デフォルトでは、リモートフォワーディングされたポートはリモートサーバーのループバックインターフェース(127.0.0.1)のみでリッスンします。他のマシンからアクセス可能にするには、SSHサーバーのsshd_configGatewayPorts yesが必要です。

ユースケース

Webhookテスト、ペアプログラミングのデモ、リモート環境からの一時的なアクセスのために、コードをデプロイせずにローカル開発サーバーを公開する必要がある開発者。

試してみる — SSH Config Generator

フルツールを開く