経済サバイバルサーバー、参加者募集中

2026.07.03広告・PRを含む記事です

セキュリティ・荒らし対策

自宅サーバーのDDoS対策|自宅IPを隠してマイクラを公開する方法

自宅サーバーのDDoS対策としてVPS中継で自宅IPを隠すサムネイル
  • 友達に配ったサーバーが急に重くなったり、頻繁に落ちたりして、DDoS攻撃を疑っている
  • まだ公開していないが、自宅のIPアドレスが外部に見えるのが怖くて公開に踏み切れない
  • レンタルサーバーに引っ越すほどの規模でも予算でもないが、自宅IPを直接晒すのも避けたい

サーバーが重くなるたびにDDoSを疑いながら、対策の仕方が分からず様子見している人は多いです。

mcsrv24.comでは、自宅サーバー運営者からの相談をもとに、VPSで自宅IPを隠す構成を整理しています。

DDoS攻撃は、自宅回線側の設定だけでは止め切れません。

自宅のグローバルIPが攻撃者に知られている限り、次の攻撃も同じIPへ届くためです。

だからこそ発想を変え、自宅IPそのものを外部から見えなくする構成に切り替えます。

  • VPSを踏み台にしたiptables中継構成
  • Cloudflare SpectrumでJava版をさらに隠す方法
  • HAProxyで複数VPSに接続を振り分ける方法

手順通りに設定すれば、自宅の回線やIPアドレスを表に出さずにマイクラサーバーを公開できます。

友達を招待しながらも、自宅ネットワークを攻撃の的にしない安心感を持って運用できます。

自宅サーバーのDDoS対策は攻撃を防ぐより自宅IPを隠すことが基本方針

家庭用回線とルーターの防御力では、大量の通信を送りつけるDDoS攻撃を正面から受け止め切れません。

補足

DDoS攻撃とは、複数の経路から大量の通信を同時に送りつけ、回線やサーバーを機能停止に追い込む攻撃です。

止める手段がない以上、攻撃を受け止める発想ではなく、VPSやCloudflareのような保護サービスを自宅と外部の間に挟む発想に切り替えます。

spa

対処法と言える対処法がないのがDDoSなので、自宅IPを隠す工夫のほうが現実的です。

自宅サーバーの公開方法自体は、ポート開放以外にもいくつか選択肢があります。

VPS中継以外の公開方法まで比較したい場合は、自宅サーバーの公開方法を比較する記事で整理しています。

この記事では、DDoS対策としてVPSで自宅IPを隠す構成に絞って進めます。

外部プレイヤーの接続をVPSで受け、自宅IPを非公開にしたまま自宅サーバーへ転送する基本構成の図解

Java版とBedrock版でプロトコルが違う点を先に整理する

自宅サーバーのDDoS対策を組む前に、使っている版のプロトコルを確認しておきます。

Java版はTCPの25565番、Bedrock版・Geyserを使ったクロスプレイはUDPの19132番と、プロトコルそのものが異なります。

プロトコルポートこの後の対策
Java版TCP25565番VPS中継、Cloudflare Spectrum、HAProxyのすべてが使えます
Bedrock版(Geyser経由のクロスプレイ含む)UDP19132番VPS中継は使えますが、Cloudflare SpectrumとHAProxy(OSS版)は使えません

この版とプロトコルの違いが、このあとに紹介するCloudflare SpectrumやHAProxyの対応範囲を決めます。

VPS中継、Cloudflare Spectrum、HAProxyがJava版TCPとBedrock版UDPに対応できる範囲を比較した図解

VPSを中継させてiptablesで自宅IPを隠す構成を作る

自宅サーバーの手前にVPSを立て、外部からの接続をすべてVPSで受け止めてから自宅サーバーへ転送すれば、自宅IPを直接晒さずに公開できます。

クラウド上のVPSでパケットを中継する構成なら、Linux標準のiptablesで組むのが扱いやすい選択です。

作業は次の3つに分かれます。

  • VPS側でパケット転送を有効にする
  • iptablesでDNATとSNATの転送ルールを書く
  • 自宅側のファイアウォールでVPSからの通信だけ許可する

この3つが揃って初めて、外部から見えるIPがVPSのものだけになり、自宅IPが隠れます。

VPS側でパケット転送を有効にする

VPSでパケット転送を有効にしないと、iptablesのルールを書いても通信が自宅サーバーまで届きません。

まず、コマンドで一時的に有効化します。

Terminal window
sudo sysctl -w net.ipv4.ip_forward=1

続けて、再起動後も設定を残すために/etc/sysctl.confへ恒久設定を追記します。

Terminal window
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
補足

sysctl -wによる一時有効化だけだと、VPSを再起動した時点でパケット転送が無効に戻ります。

iptablesでDNATとSNATの転送ルールを書く

Java版のTCP25565番を例に、最小構成の転送ルールを書きます。

まず、VPSに届いた通信の宛先を自宅サーバーへ書き換えるDNATルールをPREROUTINGに追加します。

Terminal window
sudo iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination [自宅のグローバルIP]:25565

続けて、戻りの通信の送信元をVPS自身のIPへ書き換えるルールをPOSTROUTINGに追加します。

自宅側のグローバルIPが固定なら、SNATを使います。

Terminal window
sudo iptables -t nat -A POSTROUTING -p tcp -d [自宅のグローバルIP] --dport 25565 -j SNAT --to-source [VPSのグローバルIP]

自宅側のグローバルIPが動的で頻繁に変わる場合は、SNATの代わりにMASQUERADEを使います。

Terminal window
sudo iptables -t nat -A POSTROUTING -p tcp -d [自宅のグローバルIP] --dport 25565 -j MASQUERADE
補足

MASQUERADEはVPS側の送信元IPをそのつど自動で判定します。

固定IPを指定するSNATと違い、自宅回線のIPが変わっても設定を書き直さずに済みます。

自宅側のファイアウォールでVPSからの通信だけ許可する

自宅ルーターまたはOSのファイアウォールで、送信元IPをVPSの固定IPだけに絞り込みます。

VPS以外のIPから25565番宛てに届く通信は、すべて拒否する設定にします。

これをやらないと中継の意味がなくなり、自宅IPへ直接攻撃されるリスクがそのまま残ります。

Cloudflare SpectrumでJava版の接続をさらに隠す

VPS中継に加えて、Cloudflare Spectrumを使うとJava版の接続をさらに一段階隠せます。

Cloudflare SpectrumはJava版をサポートしていますが、Bedrock版はサポートしていません。

VPS中継の手前にCloudflare Spectrumを挟むと、外部からはCloudflareのエッジしか見えなくなり、VPSのIPさえも表に出さずに済みます。

Freeプランでは使えず、Pro、Business、Enterpriseのいずれかのプランが必要です。

運用実態としては、ProプランとBusinessプランはポート25565番に固定され、任意のポート番号を指定できるのはEnterpriseプランに限られる傾向があります。

Bedrock版・GeyserクロスプレイはCloudflare Spectrumだけでは隠せないため、Bedrock側は前段のVPS中継で自宅IPを守る構成のままにします。

HAProxyで複数VPSに接続を振り分ける

人数が増えて1台のVPSでは捌き切れなくなったら、HAProxyで複数のVPSに接続を振り分けます。

leastconnアルゴリズムは、接続数が少ないサーバーへ新しい接続を割り振る方式で、Minecraftのように接続を長く保持するプロトコルに向いています。

UDPを使うBedrock版・GeyserクロスプレイのロードバランシングはHAProxyの無償のOSS版では標準機能としてサポートされていません。

spa

Nginxのproxyはラグが多すぎて、正直使い物になりません。

TCPをそのまま右から左へ流すHAProxyに対し、Nginxのリバースプロキシは通信を一度アプリケーション層で解釈するぶん、Minecraftのような常時接続の通信では遅延が乗りやすくなります。

spa

VPSを2つ借りてLB的に組めば、人数もちゃんと増やせます。

対策手段ごとの対応範囲を比較する

ここまで紹介した4つの対策を、対応範囲で比較します。

対策Java対応Bedrock対応UDP対応自宅IP秘匿難易度
直接公開×
VPS+iptables中継
Cloudflare Spectrum××
HAProxy××○(VPS中継と併用)

VPS+iptables中継が土台になり、Cloudflare SpectrumとHAProxyはJava版の接続にさらに上乗せする対策という位置づけです。

Bedrock版・GeyserクロスプレイはVPS中継だけで自宅IPを守ります。

結局どの対策を選ぶか|自宅サーバーを公開し続ける現実的な判断

対策を重ねるほど設定の手間も増えるため、友達の人数、対策にかけられる時間、自宅IPが晒される不安のバランスで選びます。

自宅サーバーのDDoS対策をVPS中継、Cloudflare Spectrum、HAProxy、レンタルサーバーの順に選ぶ流れを示した図解

DDoSの不安がなければ、VPSを挟まずポート開放だけで公開するのが一番早い方法です。

spa

環境があるなら結局ポート開放が一番早いです。

自宅IPが晒される不安のほうが大きいなら、この記事のVPS中継から始めます。

それでもVPS中継やCloudflare Spectrumの設定を続けるより、素直に自宅の回線を晒したくないという結論に落ち着くなら、レンタルサーバーへ移すのも現実的な選択です。

自宅サーバーとレンタルサーバーの費用や手間の違いは、自宅サーバーとレンタルサーバーを比較する記事で整理しています。

よくある質問

Q

iptablesの転送ルールはVPSを再起動すると消えますか?

A

消えます。iptablesで追加したルールはメモリ上の設定のため、再起動後も残したい場合はルールの永続化が必要です。Debian・Ubuntu系ではiptables-persistentパッケージ、その他のディストリビューションではnftables形式での保存など、環境ごとの永続化手段を使います。

Q

中継用のVPSはどのくらいのスペックがあればいいですか?

A

Minecraftのパケット転送自体はCPUやメモリへの負荷が軽い処理のため、最小構成のVPSでも足りる傾向にあります。複数人が同時接続する場合や、HAProxyで複数台を運用する場合は、実際の接続人数を見ながらスペックを調整します。

まとめ:自宅IPを隠して自宅サーバーを安全に公開する

自宅サーバーのDDoS対策は、攻撃を正面から防ぐことではなく、自宅IPを外部から見えなくすることです。

Java版はVPS+iptables中継を土台に、必要に応じてCloudflare SpectrumやHAProxyを重ねます。

Bedrock版・GeyserクロスプレイはVPS+iptables中継が中心の対策です。

設定の手間が負担に感じるなら、無理に自宅サーバーを維持せず、レンタルサーバーへ移す選択も検討する価値があります。

管理人spaのアイコン
spa この記事を書いた人

サーバーの構築と運用を繰り返して4年。その経験をもとに記事60本以上を執筆。

プロフィール詳細 →