ポート開放できないNAT下に置かれたサーバーに対して、逆SSHポートフォワードする

マンションの共有回線を利用しているせいで、サーバーを建てられない。光回線を別途契約しても良いのだが、月会費が高い。そこで、格安VPS(WebARENA 360円/月)を借りて、逆ポートフォワードすることにした。

接続の流れ

上図のような形でトンネルを掘る。

  • 1つ目は、赤色の矢印。これは、外部からサーバーをSSHでコントロールするため。VPSからServerへServer側からの逆SSHポートフォワード(赤矢印)によって転送する。これだけで、ClientはVPSの1022を叩けばサーバーへSSH接続が可能になる。
  • 2つ目は、Jupyter等のブラウザアプリを利用するために、もう1つトンネルを掘る。これは、VPSからServerへServer側からの逆SSHポートフォワードによって転送(青矢印)し、さらに、ClientからVPSへSSHポートフォワード(緑矢印)を行う。

NAT下サーバーで実行するコマンド

最初のオプション -o ServerAliveInterval=30 によって、30秒ごとに応答確認し、接続が継続されるようにしている。 -R 1022:127.0.0.1:22によってホスト側1022番ポートからクライアント側22番ポートへポートフォワードしている。