【マイクラJAVA版】Tailscale+VPSで安全にサーバーを公開する方法
schedule 2025年11月28日 update 2025年11月29日
皆さんこんにちは、pkkiです!
皆さんは、
「VPS持ってるけど、どうやって自宅サーバーと繋げてマイクラサーバー公開すればいいのか分からない…」
「iptableでポート転送したけど、ProxyProtocol使えない、どうしよう!」
と、思ったことはありませんか?
そこで今回は、
「無料で使えるTailscaleを使って、VPSと接続し、
マインクラフトJAVA版サーバーをNginxでポート転送して公開する方法」
を初心者向けに画像付きで丁寧に解説します!
iptableでポート転送してたけど、Nginxでもポート転送できるんですね!
そうなんです!
実は、私もこの記事を書くまではIptableでポート転送していました(;^_^A
この記事を書くために色々リサーチしていたら、この方法を見つけました!
では、早速解説していきましょう!
目次
Tailscaleとは?

Tailscaleとは、安全でインストールが簡単なWireGuardベースのメッシュ型VPNサービスです。
インターネット上に暗号化された仮想的な専用通信網を構築する技術です。
簡単に言うと、ローカルネットワークに別の外にあるパソコンとかを繋げるといった感じです。
- ポート開放・NAT設定不要!
- スマホ・PC・サーバーを簡単にVPNで接続可能
- 高速で低遅延、セキュアな通信が可能
プラン
続いて、プランについては、画像の様に無料でも十分使えるプランとなっています。
そして、驚くことに無料でも最大100台のデバイスを接続することができます。
でも、どうやって無料で最大100台も接続できるの?
それは、Tailscaleが使っているメッシュ型のP2P接続にあります!
仕組み
では、Tailscaleは無料でどうやって低遅延のVPNを提供しているのでしょうか?
それは、このP2P(Peer-to-peer)という仕組みにあります。

P2P(Peer-to-peer)とは、サーバーを介さず、クライアント同士が直接データをやり取りする通信方式のことです。
しかし、接続の調整や認証等はTailscaleのサーバーが担っています。
実際のデータ転送等はクライアント同士がやっている感じですね。
このように、接続の調整や認証等だけをTailscaleのサーバーが行っているので、
Tailscale自体は全然負荷がかかりません。
なので、無料でも最大100台も接続可能なわけです。
でも、直接通信ってポート開放しないと無理なんじゃないの?
そうなんです!
なので、P2Pを実現するためにNAT越えをする必要があります。
NATとは?(ざっくり)
大体のルーターには「NAT」という機能があります。
これは…
- 複数の機器(PC・スマホ)が
- 1つのグローバルIPアドレスを共有するための仕組み
なんですが、このNATは外からのアクセスを基本的にブロックするので、
普通はポート開放しないと外部から接続できません。
マイクラのマルチプレイでポート開放が必要になるのは、このためです。
NAT越えとは?
本来つながらないはずの “ルーター越し” のPC同士が
特別な方法を使って直接通信できるようにする技術
のことです。
どうやってNAT越えしてるの?(超ざっくり版)
Tailscaleのサーバーが仲介するんです。
まず、自宅サーバーとVPSは、
Tailscaleの仲介サーバーに「今ここにいるよ!」と登録します。
サーバーは2つのサーバーの接続状態を見て、
「この2つのサーバーは直接つなげる!」と判断すると、
→ ルーターに対して 穴を開けても大丈夫なタイミング を作り
→ PC同士が直接つながれるよう手助けします
これを ホールパンチング(UDP Hole Punching) といいます。
UDPホールパンチングとは?
難しく聞こえるかもしれませんが仕組みは簡単。
- 自宅サーバー → ルーターへ「外に通信したいよ〜」と送る
- VPS → 同じように送る
- それをTailscaleのサーバーが調整して
- 互いのルーターが「この通信は許可してもいいか」と判断する
- 結果、お互いのルーターが通信を通す状態になる
つまり、ポート開放しなくてもPC同士が直接通信できる状態になるわけです。
例えば、このブログのデータが欲しいとpkkiサーバーにリクエストを送信するとします。
「データが欲しい」こうリクエストしたので、pkkiサーバーからのデータを当然受け取らなければいけません。
※外からのアクセスはポート開放をしないと基本ブロックされる。
なので、ルーターは「pkkiサーバーだけ受信を許可する」という事をします。
これを利用しているのです。
なので、双方がお互いにデータを同時に送信します。
そうすると、お互いリクエストを受信するため、ルータがその受信を許可するのです。
ちなみに「ポート開放」は、受信をどこからでも受け取る状態にするという事です。
なるほど、送信したときに受信をしなければならない。
この仕組みを利用しているのですね!

また、Tailscaleの仕組みについては、公式が解説しているので、詳しく知りたい方はこちらをご覧ください。
Tailscaleの導入方法
さて、仕組みが分かったところで、いよいよ実践編です!
では早速やっていきましょう!
Tailscaleのアカウント作成

最初に、上のリンクを開いてログインページを開いてください。
次に、メールアドレスを入力するか、他のプラットフォームからサインするか選択してください。
※今回はGithubから作成しようと思います。

Githubの場合は、このように表示されるので、「Authorize tailscale」をクリックしてください。
アカウント作成完了したら、勝手にアンケート画面が開くと思います。
次に、アンケートの解説をします
アンケート

最初に、①「What is your primary reason for using Tailscale?」を「Personal or At-Home Use」にしてください。
次に、②「What is your role within your organaization?」はテキトウに「Engineer」と選んでおきましょう。
それから、③「Which VPN provider are you currently using?」に今使ってるVPNサービスを選択します。
私の場合は、Cloudflareでブログ公開してるので、Cloudflareを選択しました。
そのあと、④「How did you hear about Tailscale?」を「Search」にしておきましょう。
最後に、③「Next:Add your first device」をクリックしたら完了です。
Tailscaleのインストール方法
Linux

最初に、①「Linux」を選択します。
curl -fsSL https://tailscale.com/install.sh | sh
次に、②のコードをインストールしたいLinuxのコンソールに打ち込んで実行します。

sudo tailscale upそして、このように「sudo tailscale up」と表示されたら、それを実行します。

そうすると、このようにリンクが表示されるので、開いてください。

このように表示されるので、「Connect」をクリックして接続します。


このように「login successful」と表示されれば成功です。

最後に、このページに戻ったらこのように「Wating for your second device」となるので、
もう一方のサーバーにTailscaleを同じ手順でインストールしてください。
両方インストール出来たら

両方インストールできたら、このようになるので、「Success,it works!」をクリックしてください。

最後に、「Go to the admin console」をクリックしたら完了です。
これで、Tailscaleの導入が完了しました。
ポート転送方法(VPS側)
sudo apt update && sudo apt upgrade最初に、上のコマンドを実行してパッケージを最新の状態にしておきましょう。

sudo apt install nginx libnginx-mod-stream次に、上のコマンドからNginxとストリームMODをインストールします。

sudo vi /etc/nginx/nginx.confそれから、上のコマンドからNginxの設定ファイルを開きます。

stream {
server {
listen 25565;
# 自宅のTailscale IP
proxy_pass 100.x.y.z:25565;
# ★ここでProxy Protocolを有効化
proxy_protocol on;
}
}そのあと、「i」キーを押してインサートモードにし、
画像の様に上のコードを何もない所に貼り付けます。
そして、Tailscaleの管理パネルからマイクラ鯖側のアドレスを確認して、「proxy_pass」の右側の「100.x.y.z」をそのアドレスに書き換えます。
:wqそれが完了したら、「ESC」キーでインサートモードを終了し、上の文字列を打って保存・終了してください。
sudo systemctl restart nginx最後に、上のコマンドを入力・実行したら完了です。
sudo ufw allow 25565また、ポート開放していない人は、上のコマンドを実行してください。
加えて、VPSの管理パネルからのポート開放も忘れずにやってください。
これだけなんですか!?
そうなんです、Iptableよりも断然楽です!
しかも、ProxyProtocolにも対応できますし。
次に、マイクラサーバー側の設定に移りましょう。
マインクラフトJAVA版サーバー側(PaperMC)の設定
次に、PaperMC側の設定をします。
バニラサーバーではProxyProtocolの設定項目がないので、PaperMCを入れてください。

最初に、PaperMCが入っているディレクトリからconfig/paper-global.ymlを開いてください。
そして、「proxies」から「proxy-protocol」があるので、「false」から「true」に書き換えてください。
最後に、保存して再起動するだけで完了です。
えっ、これだけ?( ゚Д゚)
ProxyProtocolを有効にするだけなので、これだけなんです!
実際にサーバーに入ってみる

実際に、サーバーのアドレスを入力して入ってみます。

このようにサーバーに参加したらTailscaleのIPではなく、しっかり元のIPアドレスが表示されました!
まとめ
皆さん、お疲れ様でした!
今回は「Tailscale × VPS × Nginx」という組み合わせを使って、自宅のマイクラサーバーを安全に公開する方法を紹介しました。
これなら、誰がログインしたかしっかり分かるので安心ですね! そうなんです!
「ポート開放できない…」と諦めていた人や、「iptablesだとIPが分からなくて荒らし対策ができない…」
と悩んでいた人にとって、この方法はまさに救世主だと思います。
最後に、今回のポイントを整理しておきましょう。
- Tailscale を使えば、難しいルーター設定なしでVPSと接続できる
- Nginx (Stream) は
iptablesよりも設定が管理しやすく簡単 - Proxy Protocol を有効にすることで、プレイヤーの本来のIPアドレスが見える(IP BANも可能!)
VPSは月額数百円の安いプランでも、「トンネル」の役割なら十分にこなせます。
自宅サーバーのスペックを活かしつつ、固定IPで安定した公開ができるこの構成、ぜひ皆さんも試してみてください!
最後までご覧いただき有難うございました!
もし、ご指摘やご感想、設定でつまづいたり、分からないことがあれば
コメントの方でお願いします!
それでは、良いマイクラライフを!
この記事を書いた人
このサイトの管理人のpkkiです。マインクラフトサーバーやWebサーバー等を運用しています。パソコン歴は8年程度で、サーバー運用歴は5年程度です。何かあればいつでもお問い合わせください。早ければ当日返信します。
【JAVA版マイクラ】コマンド一覧&早見表を作ってみた!
schedule 2025年11月14日家中の広告をブロック!AdGuard Homeの導入と使い方【初心者向け】
schedule 2025年11月2日【初心者向け】Cloudflare Tunnelで自宅サーバーを公開する方法!
schedule 2025年10月30日【2025年版】pulseticの使い方と設定方法
schedule 2025年11月21日【初心者向け】LibreSpeedを使ってローカル環境にスピードテストを構築する方法
schedule 2025年10月31日【無料】最強バックアップソフト「BunBackup」の使い方
schedule 2025年11月29日