VPSを経由して安全に自宅サーバを公開する


Raspberry piなどを使用して安価に自宅サーバを公開したい場合があります。
このとき、VPSを経由する事で自宅IPアドレスを公表せずに自宅サーバを公開する事ができるので、その方法を紹介します。

目的

  • 自宅サーバを自宅のIPアドレスを公表せずに公開する

使用する方法

  • SSHポートフォワード(リモートフォワード)
    • 自宅からサーバへのリモートフォワードではあれば、VPSを固定IPにするだけで固定IPアドレス化が可能

構成

設定

VPS側

SSHサーバをインストールし、 GatewayPorts を有効にします。

/etc/ssh/sshd_config
GatewayPorts: yes

自宅サーバ側

SSHポートフォワードを使用し、VPSサーバにアクセスします。
変数は適宜環境に置き換えてください。

export open_port=8000
export home_port=8080
export host=example.com
export ssh_key=~/.ssh/example.pem
ssh -fNT -o ServerAliveInterval=30 -R ${open_port}:*:${home_port} ${host} -i ${ssh_key}

動作確認

VPSサーバのIPアドレスに対し、公開したポート番号でアクセスし、自宅サーバへアクセスできれば完了です。

あとがき

SSHのセッションが切れると接続できなくなるため、セッションが切れたとき再接続できるクライアントや、仕組みを導入するとより堅牢になります。
また、VPSサーバはネットワーク通信料が固定料金のものを選ぶと試算しやすいのでおすすめです。