【忘備録】 ポートフォワーディングで自宅のゲームサーバーやウェブサーバーをポート開放せずに公開する

2024年05月06日

Blog Image

自宅サーバーでポートを開放せずに外部に公開したいと思ったので、今回は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

シェルを開かずに、ポートフォワーディングの機能だけを利用します。

終わりに

自宅のポートを開放せずに、外部に公開することができました。ファイアーウォールの設定は、しっかりやっておきましょう。