自宅サーバーでポートを開放せずに外部に公開したいと思ったので、今回はVPSと自宅サーバーを使って、自宅のポートを開放せずにポートフォワーディングを使用して外部に公開する方法を説明していきます。
必要なもの
・VPS
グローバルIPがあれば、性能が低くても大丈夫です。
・自宅サーバー
ラズベリーパイなどでも動かすことができます。
VPS側の設定
まずは、SSHのポートフォワーディングができるように、sshd_configの設定を変更します。
GetewayPortsを、clientspecifiedにする必要があるので、nanoを使ってsshd_configを編集します。
$ sudo nano /etc/ssh/sshd_config
変更前
#GatewayPorts no
変更後
GatewayPorts clientspecified
このように変更したら、sshdを再起動します。
この設定をすると、すべてのポートに影響が出るので、ファイアーウォールの設定をしっかりと行ってください。
$ sudo service sshd restart
次に、ポートを開放します。今回は、Ubuntu Serverでやっていきます。
ufwが導入されていない場合は、
$ sudo apt install ufw
$ sudo ufw allow 22(sshのポート番号)
Rule added
Rule added (v6)
$ sudo ufw allow (ほかの使いたいポート番号)
Rule added
Rule added (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
と打ってください。
今回は50000番を使います。
Ubuntuで50000番のポートを開放する場合は、
$ sudo ufw allow 50000
と打つと開放されます。
自宅サーバー側の設定
次に自宅サーバーで、リバースSSHをします。
今回はマインクラフトサーバーを公開してみるので、ポートは25565です。
ssh -R <VPSのIPアドレス>:50000:localhost:25565 -N <ユーザー名>@<VPSのIPアドレス>
オプション | 説明 |
---|---|
-R | ポートフォワーディングを指定しています。 |
-N | シェルを開かずに、ポートフォワーディングの機能だけを利用します。 |
終わりに
自宅のポートを開放せずに、外部に公開することができました。ファイアーウォールの設定は、しっかりやっておきましょう。