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

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

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

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

自宅サーバーのDDoS対策としてVPS中継で自宅IPを隠すサムネイル
  • 友達に配ったサーバーが急に重くなったり、頻繁に落ちたりして、DDoS攻撃を疑っている
  • まだ公開していないが、自宅のIPアドレスが外部に見えるのが怖くて公開に踏み切れない
  • VPSやLinuxの設定は難しそうで、もっと簡単に自宅IPを隠す方法がないか探している

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

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

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

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

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

読み終えるころには、自分の環境でまず何から手をつけるかが1つに決まります。

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

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

補足

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

そこで、外部と自宅の間に保護サービスやVPSを挟み、攻撃先になる自宅IPそのものを知られない状態を作ります。

spa

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

どこまで自分で組むかによって、取れる選択肢は次の4つです。

  • VPSを借りずに始められるTCPShield無料プラン(Java版限定)
  • Java版もBedrock版も守れるVPS+iptables中継
  • VPS中継の上へさらに一段隠すCloudflare Spectrum
  • 人数が増えたときに複数VPSへ振り分けるHAProxy

上から順に難易度が上がるため、ここでも手軽な順に説明します。

なお、サーバーが重い、落ちるという症状は、DDoSよりもメモリ不足やチャンク生成の負荷が原因のケースが多いです。

補足

本当にDDoSかどうかを切り分ける目安は、記事末尾のよくある質問で説明します。

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

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

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

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

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

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

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

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

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

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

最も手軽なTCPShield無料プランでJava版のIPを隠す

VPSを借りずにJava版の自宅IPを隠したいなら、TCPShieldの無料プランが最初の選択肢です。

補足

TCPShieldは、マイクラサーバー向けのDDoS保護を専門にした海外のサービスです。

プレイヤーの接続はTCPShieldのネットワークを経由してから自宅サーバーへ届くため、外部にはTCPShieldのIPしか見えません。

無料プランは月額0ドルで、月間1.0TBの帯域、1ネットワーク・3ドメインまで使えます。

対応はJava版だけで、Bedrock版・Geyserクロスプレイは月額100ドルのPremiumプラン以上が必要です。

利用には独自ドメインも欠かせません。

DNSにCNAMEレコードまたはSRVレコードを設定し、プレイヤーはIPアドレスではなくドメイン名で接続する仕組みのためです。

補足

CNAMEレコードはドメイン名を別のアドレスへ転送する設定、SRVレコードは接続先のサーバーとポートをまとめて指定する設定です。

まだドメインを持っていない場合は、マイクラサーバーに独自ドメインを設定する記事を参考に先に取得します。

自宅側のファイアウォールでTCPShield以外からの接続を遮断しないと、攻撃者が自宅IPへ直接アクセスしてTCPShieldをバイパスできます。

TCPShieldを挟んでも、自宅IPへの直接接続を受け付けない設定までがセットです。

TCPShieldを経由すると、サーバー側にはプレイヤーの実IPではなくTCPShieldのIPが届きます。

そのままではプレイヤーごとのIP banやIPのログが機能しないため、専用プラグインか、PaperやVelocityが対応しているPROXY protocol v2で実IPをサーバーへ渡します。

補足

PROXY protocolは、中継サーバーがプレイヤーの実IPを転送先のサーバーへ伝えるための仕組みです。

この設定まで済ませれば、TCPShield経由でもIP banをこれまでどおり使えます。

spa

ドメインさえ持っていれば、VPSを借りなくてもここまでできます。

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

ここからは、自分でLinuxを触ってネットワークを組みたい人向けの構成です。

Bedrock版・Geyserクロスプレイの自宅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のIPになり、プレイヤーごとのIP banやIPのログ記録が機能しなくなります。

実IPを扱いたい場合は、HAProxyとPaperのproxy-protocol設定のような、PROXY protocolに対応した構成への組み替えが必要です。

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

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

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

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

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

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

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

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

ProプランとBusinessプランで使えるのは、ポート25565番のTCPだけです。

任意のポート番号を指定できるのは、Enterpriseプランに限られます。

Bedrock版が使うUDPへの対応もEnterprise限定のため、個人の自宅サーバーでは実質Java版専用です。

補足

月間の無料枠を超えた通信量には、1GBあたり1ドルの従量課金が発生します。

同時に遊ぶ人数が多いほど通信量は増えるため、課金される前提で使うかを先に決めます。

実IPの扱いは前段のVPS中継に依存するため、IP banとログの制限もそのまま残ります。

Bedrock版・Geyserクロスプレイ側は、前段のVPS中継で自宅IPを守る構成のままにします。

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

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

leastconnアルゴリズムは、接続数が少ないVPSへ新しい接続を回す方式で、マイクラのように接続を長く保持する通信に向いています。

Bedrock版・GeyserクロスプレイはUDPを使います。

HAProxyの無償のOSS版は、UDPのロードバランシングを標準機能としてサポートしていません。

spa

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

HAProxyは、TCPの通信をそのまま右から左へ流します。

一方Nginxのリバースプロキシは、通信を一度アプリケーション層で解釈します。

そのぶん、マイクラのような常時接続の通信では遅延が乗りやすくなります。

spa

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

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

ここまで紹介した対策を、難易度、費用、対応範囲で比較します。

対策難易度費用の目安Java対応Bedrock対応自宅IP秘匿IP banとログ
直接公開0円×
TCPShield無料プラン0円(ドメイン代のみ)×○(要設定)
VPS+iptables中継VPS1台分の月額×
Cloudflare SpectrumProプラン以上の月額+従量課金××
HAProxyVPS複数台分の月額×○(VPS中継と併用)×

IP banとログが×の構成も、PROXY protocolに対応した構成へ組み替えれば実IPを扱えます。

自分でVPSを触りたくない、まずJava版だけ守りたい場合はTCPShieldから始めます。

Bedrock版・Geyserクロスプレイも守りたい、または自分の手でネットワークを組みたい場合は、VPS+iptables中継が土台です。

Cloudflare SpectrumとHAProxyは、そのVPS中継の上へJava版の防御を上乗せする位置づけになります。

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

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

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

身内だけの小規模サーバーでDDoSの不安が小さいなら、無理に何かを挟む必要はありません。

spa

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

自宅IPが晒される不安のほうが大きいなら、Java版はTCPShield、Bedrock版はVPS中継から始めます。

覚えておきたいのは、VPS中継も万能ではない点です。

国内VPSには、大量の攻撃トラフィックを検知すると通信を自動で遮断する事業者もあり、その場合は中継ごとサーバーに入れなくなります。

DDoS対策を前提に設計されたTCPShieldのようなネットワークを挟むほうが、VPS1台で受け止めるより攻撃には強いです。

それでも設定を続けるのが負担なら、自宅の回線を晒さないレンタルサーバーへ移すのも現実的な選択です。

よくある質問

Q

サーバーが重い・落ちるのは必ずDDoSが原因ですか?

A

DDoS以外の原因のほうが多いです。メモリ割り当て不足やチャンク生成の負荷でも、重くなる・落ちるという同じ症状が出ます。まずサーバーのメモリ使用量とCPU負荷を確認し、それらが正常な範囲なのに回線だけ詰まる場合に、外部からの通信量の異常増加を疑う順番で切り分けます。

Q

VPS中継にするとIP banはできなくなりますか?

A

iptablesだけのVPS中継では、サーバー側から見た接続元がすべてVPSのIPになるため、プレイヤーごとのIP banはできなくなります。回避するには、HAProxyとPaperのproxy-protocol設定のような、PROXY protocol対応の構成への組み替えが必要です。TCPShieldの場合は、プラグインまたはPROXY protocol v2の設定で実IPを渡せるため、IP banもそのまま機能します。

Q

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

A

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

Q

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

A

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

まとめ:難易度に合わせて自宅IPを隠す対策を選ぶ

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

Java版はTCPShieldの無料プランから、Bedrock版・Geyserクロスプレイと自作派はVPS+iptables中継から始めます。

設定の手間が負担に感じるなら、無理に自宅サーバーを維持する必要はありません。

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

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

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

プロフィール詳細 →