📖

自宅のMinecraftサーバーをポート開放せず外部公開する【haproxy/tailscale】

に公開

こんな人が対象

  • マイクラサーバーを公開したいけどポート開放できない…
  • 自宅のIPアドレスを秘匿したい…

です。

用意するもの

  • 適当なVPS(1vCPU/1GBメモリでOK!!)
  • tailscaleアカウント
  • 自宅サーバー

完全無料とはいきませんが、VPSのサービスによっては500円程度で用意できる環境です。
今回はとりあえずでLinodeを使用しています。月5ドル、現在のレートで770円程度です。(ドル建て嫌だ)

Tailscaleの設定

設定と言っても自宅サーバーとVPSにインストールするだけです。
Linuxであれば以下のコマンドでインストールが可能です。

💻️ コマンド
curl -fsSL https://tailscale.com/install.sh | sh

インストールしたら

💻️ コマンド
sudo tailscale up

を実行するとログインURLが表示されるのでアクセスして、ログインします。

あとは自宅サーバーのTailscaleのIPを固定します。

これをしないと数カ月ごとに設定を変えなきゃいけない…はずです。(長期運用してないので不明)

【VPS側】HAProxyのインストール

Ubuntuであればaptでインストール可能です。

💻️ コマンド
sudo apt install haproxy

おわりッ!!

【VPS側】HAProxyの設定

💻️ コマンド
sudo nano /etc/haproxy/haproxy.cfg

で設定ファイルを開いて、下の内容を追記します。

/etc/haproxy/haproxy.conf
listen minecraft
    bind *:25565
    mode tcp
    option tcplog
    balance roundrobin
    server mc01 <自宅サーバーのTailscaleのIP>:<ポート> send-proxy-v2 check
💻️ コマンド
sudo haproxy -c -f /etc/haproxy/haproxy.cfg

を実行して特にエラーが出なければOK!!

【自宅サーバー側】Minecraftサーバーの設定を変更

私はPaperMCを使用しているので、Paperでの例です。

config/paper-global.ymlを開いて、proxiesセクションを見つけ、その中のproxy-protocolfalseからtrueに変えます。

paper-global.yml
proxies:
  proxy-protocol: true

これでOK。サーバーを再起動します。

【VPS側】HAProxyを再起動

💻️ コマンド
sudo systemctl restart haproxy.service

でHAProxyを再起動します。

接続できるか確認

VPSのIPアドレスで接続できるか確認してみましょう。

大丈夫ですね!!

接続できない場合は

ファイアウォールを確認

ファイアウォールを確認して25565/TCPの接続が許可されているか確認しましょう。

以上

終わりです。VPS側のセキュリティはやりましょうね。

Discussion