PR

ポート開放不要!自宅PC+格安VPSでパルワールド専用サーバーを建てる方法【Windows/Tailscale】

パルワールド

パルワールドの専用サーバーを建てたいという声はよく聞きますが、パルワールドの専用サーバーを建てるには知識やコストが必要で、条件もなかなか厳しいです。

今回は、ポートを開放したくない/またはポート開放ができない人でも、自宅のPCにポート開放なしでパルワールドの専用サーバーを建てる方法を解説します。

パルワールドのサーバーはメモリ容量がかなり厳しいみたいですので、VPSを契約しようとしてもかなり高くついてしまうため、可能であれば是非この方法を試してみてください。

スポンサーリンク

先に結論

今回の方法では、以下のような手順を取りました。

  • 手順1
    WSL2+Dockerでローカル環境にパルワールドサーバーを構築

    ローカル環境にサーバーを構築するのは、任意の方法でOKです。以降の手順にはほとんど環境による差は出ません。

  • 手順2
    Tailscaleでローカル環境と格安VPSのポートを繋ぐ

    Tailscaleの無料アカウントとWebARENA Indigoの1GBプランなどの格安VPSで十分です。

  • 手順3
    VPS上のポートを開放する

    パルワールド用に公開するポートを開放します。

  • 手順4
    開放したポートからローカル環境のポートに転送する

    開放したポートからローカルでパルワールドサーバーを建ててるポートに転送します。

この手順はLinuxを操作できる基本的な知識や、コマンドラインに抵抗がない人向けの方法になります。

以下で詳しく解説していきます。

必要な知識・もの

今回の方法は、ある程度知識がある人向けの方法になりますので、以下の知識がない場合は各自調べながら行うか、ConoHa for Gameや、XServer for Gameなど、簡単にサーバーを建てられる別の方法を探すほうが賢明です。

また、ConoHa VPSXServerさくらのVPSなど、VPS各社も導入のサポートなどを始めているみたいなので、そちらも検討してみてください。

以下、この記事の内容を実践するうえで必要になる知識や環境です。ただし、この記事通りでなくても実践可能ですので、必要な部分のみ読むことも可能です。

  • Linux、ネットワークの基本知識
  • WSL2、Docker環境(Windowsの場合)
  • 最低限のVPS環境(1GBなど低スペックの環境でOK、GCEのe2-microなどでも構いません)
  • Tailscaleのアカウント(無料アカウントで十分です)
  • パルワールドのサーバーの要求スペックに耐えられるPC環境

私の場合、サーバー用のPCには、自宅にあったintel N100を搭載したミニPCを使用しています。スペックは高くないですが、接続数が少ないので今のところは問題なくプレイできています。

導入手順

今回は、WindowsのWSL2と、UbuntuのVPSを用いて導入を行う前提としますが、あまり環境依存の内容はないので、各々自分の環境に合わせて読み替えて下さい。

導入は以下の手順で行います。少し長いですが、頑張りましょう。

  1. WSL2のDocker上でパルワールドのサーバーを構築する(別の方法でもOKです)
  2. Tailscaleを使い、契約しているVPSとWSL2を繋ぐ
  3. VPSのポートを開放する(自宅の環境のポート開放は不要です)
  4. Tailscaleに割り当てられたWSL2のIPアドレスにVPSからポート転送する(socatを使用)

この方法を簡単に解説すると、TailscaleというVPNサービスでVPSとWSL2(サーバーに用いるPC)を繋ぎ、VPS上のポートからサーバー用PCにポートを転送することで、自宅のポートを開放せずにサーバーを建てられるようになります。

VPSは、500円未満で契約できる1GBの格安なプランや、GCEのe2-microインスタンスなどでも問題ないと思います。私の場合は、VPSの中でも格安な料金プランを提供しているWebARENA Indigoの1GBプラン(月額449円)を使いました。

WSL2のDocker上でパルワールドのサーバーを構築する

サーバー構築の部分は、これ以外の方法でも問題ありません。私はDockerを使って管理したかったのでこの方法を選択しましたが、その他の方法で建てているor建てる予定の人は読み飛ばしてください。

各々の方法でローカルのネットワーク内にサーバーが構築出来ればOKです。

今回は以下のGitリポジトリを用いてサーバーを構築します。細かい設定項目等はリポジトリを参照してください。

GitHub - thijsvanloef/palworld-server-docker: A Docker Container to easily run a Palworld dedicated server.
A Docker Container to easily run a Palworld dedicated server. - thijsvanloef/palworld-server-docker

やることは、リポジトリ内にあるdocker-compose.ymlを参考にして、実行するだけです。

私の場合は、~/palworld-serverというディレクトリ内で作業を行いました。

WSL2を起動後、

mkdir palworld-server
cd palworld-server

docker-compose.ymlを作成します。

touch docker-compose.yml

内容を編集し、以下のコマンドで起動します。

docker-compose up -d

これでサーバーが建っているはずです。

プレイするPCと同じPC上で実行している場合、パルワールドを開いて、127.0.0.1:<指定したポート>にアクセスできるか確認してみて下さい。

別のPC上で行っている場合、ipconfigなどでローカルIPアドレスを確認し、それを使ってアクセスしてください。

Tailscaleを使ってVPSとサーバー用のPCをVPN接続する

ここからは、VPSとWSL2(サーバー用のPC)上で同様の作業を行います。両方にtailscaleをインストールし、ログインすることで両者をVPNで繋ぐことが出来ます。アカウントを持っていない方は以下から作成してください。

Tailscale · Best VPN Service for Secure Networks
Securely connect to anything on the internet with Tailscale. Deploy a WireGuard®-based VPN to achieve point-to-point con...

アカウントを作成で来たら、以下のコマンドを実行します。

curl -fsSL https://tailscale.com/install.sh | sh

次に、以下のコマンドを実行し、表示されたURLにアクセスしてログインすることでtailscaleが使えるようになります。

sudo tailscale up

ログインが出来ると、それぞれの端末にIPアドレスが割り振られるはずです。VPSとWSL2上の両方でログインできたら、Tailscaleのサイトにログインし、両者に割り振られたIPアドレスを確認してください。

正常に接続できているか、pingコマンドで確認します。VPSからはサーバー用のPCに割り振られたIPアドレスに、サーバー用のPCからはVPSに割り振られたIPアドレスにpingコマンドを打ちます。

ping <VPS/WSL2に割り振られたIPアドレス>

VPS上のUDPポートを開放する

次に、サーバーを公開する際に使用するVPS上のポートを開放します。細かい手順は使用しているVPSごとに違うため、各自調べてください。

ここで開放するポートは、必ずUDPを指定してください。

ポート開放が出来たら、ncコマンドを使って確認します。

VPS上で以下のコマンドを実行します。

nc -luk <開放したポート>

その後、WSL2から以下のコマンドでVPSにメッセージを送信します。

nc -u <VPSのパブリックIPアドレス> <開放したポート>

コマンドを打ったあと、「Hello World」など適当なメッセージを打ち込んでエンターを押してください。

また、このとき指定するIPアドレスは、Tailscaleに割り当てられたIPアドレスではなく、VPSのIPアドレスですので注意してください。

正常に動作していれば、VPSに送信したメッセージが表示されるはずです。もしされない場合、以下のようにVPSのアドレスを、「Tailscaleに割り当てられたVPSのアドレス」に変更し、再度試してください。

nc -u <VPSに割り当てられたIPアドレス> <開放したポート>

これでメッセージが送信された場合はポート開放が上手くいっていない可能性が高いので、ポート開放の設定を見直してください。

Tailscaleに割り当てられたWSL2のIPアドレスにVPSからポート転送する

ここまで出来たら、Tailscaleに割り当てられたPC用のIPアドレスにUDPのポートを転送します。UDPのポート転送は、socatというツールで簡単に実行できます。

以下のコマンドを実行し、VPS上にsocatをインストールしてください。

sudo apt-get update
sudo apt-get install socat

その後、以下のコマンドを使い、VPSで開放したいポートから、サーバー用のPCに割り当てられたIPアドレスの、任意のポートに転送できます。ポートには、未使用のポートを指定してください。

socat UDP-LISTEN:<VPSで開放したポート>,reuseaddr,fork UDP:<PCに割り当てられたIP>:<未使用のポート>

socatコマンドが正常に動作しているか確認するには、ncコマンドを使います。WSL2上で以下のコマンドを実行します。

nc -luk <転送先のポート>

その状態で、WSL2など任意の環境から以下のコマンドを実行します。

nc -u <VPSのパブリックIPアドレス> <開放したポート>

これでメッセージが届けば正常に機能しているので、以下のようにパルワールドのサーバーに使用しているポートに転送先を変更すれば、パルワールドのサーバーにアクセスできるはずです。

socat UDP-LISTEN:<VPSで開放したポート>,reuseaddr,fork UDP:<PCに割り当てられたIP>:<パルワールドのサーバー用ポート(通常8211)>

最後に

今回の方法はVPS/自宅環境のどちらかまたは両方がIPv6でも可能だと思いますが、試していないので各自調べてやってみてください。

質問等があれば、コメントなどで気軽にどうぞ。

コメント

タイトルとURLをコピーしました