ngrokでMinecraftサーバを公開する
主に Minecraft Java Edition のマルチプレイをしたいけどポート開放が面倒とか、ネットワーク上の問題でポート開放ができないなどで困っている人向けに ngrok(エングロック)というサービスを使って 一時的に 公開する方法の解説です。
Minecraft サーバの立て方などは説明しません。
Minecraft でなくても、TCP というプロトコルで通信する場合は ngrok が利用できます。統合版の場合は UDP なので、localtonet などがおすすめかもしれません。このへんの記事 がよさそうです。
環境
- Windows 11 Pro 23H2 (Build 22631.3296)
- ngrok 3.8.0
やり方
1. ngrok へ登録
まず、ngrok.com へアクセスします。
Sign Up にて、以下の項目を入力し、Sign up をクリックしてください。
- Name: 適当な名前(ハンネなどでよい)を入力
- Email: 受信可能・有効なメールアドレスを入力
- Password: 任意のパスワードを入力
- ロボット認証を実施
- I accept the terms of service and privacy policy: チェックをいれる
2. ngrok のコマンドラインツールをダウンロード
ngrok は exe ファイルそのもののダウンロードに加え、chocolatey や Scoop でもインストールが可能です。
exe ファイルダウンロードによるインストール
ダッシュボードのセットアップページ にて、Download タブをクリックし、Download for Windows (64-Bit) をクリックします。
Zip ファイルがダウンロードされるので展開し、中身の exe ファイルを任意の場所に移動してください。
chocolatey でのインストール
以下のコマンドでインストールできます。
choco install ngrok
Scoop でのインストール
以下のコマンドでインストールできます。
scoop install ngrok
3. ngrok のアカウントを連携
自分のパソコンに ngrok の認証情報を保存する必要があるので、アカウント連携をしなければなりません。
先ほどの ダッシュボードのセットアップページ にて、ngrok config add-authtoken
から始まるコマンドをコピーします。
右側にあるコピーアイコンをクリックすると、簡単にコピーできます。
次に、コピーしたコマンドを自分のパソコンで実行します。
exe ファイルをダウンロードした場合は、以下の手順で PowerShell を起動し、コマンドを実行します。
ngrok.exe
ファイルを置いたフォルダをエクスプローラーで開き、何もないところを「Shift + 右クリック」します。
するとメニューが出てくるので、「PowerShell ウィンドウをここで開く」をクリックします。
PowerShell が開いたら、先ほどコピーしたコマンドの ngrok
という文字を .\ngrok.exe
に置き換えつつ入力してください。
たとえば、ngrok config add-authtoken XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
とコピーしていたら .\ngrok.exe config add-authtoken XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
と書き換えます。
入力し終えたら Enter で実行します。
chocolatey や Scoop でインストールした場合は、PATH に登録されているかと思うので、PowerShell などを起動してコピーしたコマンドをそのまま(.\ngrok.exe
に書き換えずに)実行してください。
4. ngrok でサーバ(ポート)を公開
アカウント連携ができたら、いよいよサーバを公開します。
Minecraft のサーバを立ち上げたうえで、先ほどと同じように PowerShell を起動し、以下のコマンドを実行します。
exe ファイルでインストールした方は ngrok
を .\ngrok.exe
に書き換えて実行してください。
ngrok tcp 25565
以下のように表示され、Session Status 欄で online
になれば接続できます!
サーバアドレスは、 Forwarding 欄にある 0.tcp.jp
から始まるアドレスがそれにあたります。下記の画像であれば、0.tcp.jp.ngrok.io:15826
です。
5. ログインできれば完了
実際に確認したアドレスでログインしてみて、ログインできれば成功です🎉
2回目以降
2 回目以降は、先ほどと同じように ngrok tcp 25565
のコマンドを実行することで、同じようにサーバを公開できます。
しかし、いちいち PowerShell を開くのも面倒なのでこのコマンドを実行できるファイルを作っておきます。
まず、拡張子を表示させるための設定をします。エクスプローラーで、以下のように 表示 → 表示 と進み、ファイル名拡張子 の箇所にチェックが入るようにクリックしてください。
テキストファイルを作成し、start.bat
というファイルを作成します。
以下のように、「ファイルが使えなくなる可能性があります」という画面が出たら「はい」をクリックしてください。
start.bat
ファイルを右クリックし、編集 を押します。
メモ帳アプリが開くので、以下を入力し保存します。
exe ファイルでインストールした方は ngrok
を .\ngrok.exe
に書き換えて実行してください。
ngrok tcp 25565
pause
ここまで準備できれば、あとは作成した start.bat
をダブルクリックするだけで、サーバが公開できるようになります💪
公開ドメインについて
なにも設定せずそのまま公開する場合、以下のドメインが使われます。
- http の場合:
xxxx-xxxx-xx-xxxx-xxx-xxxx-xxxx-xxxx-xxxx.ngrok-free.app
(x には小文字英数字が入る) - tcp の場合:
0.tcp.jp.ngrok.io:xxxxx
http の場合サブドメイン部分が、tcp の場合ポート番号が公開作業を行うごとにランダムで設定されます。
無料プランにおいては、以下のように設定することでサブドメイン部分を固定値にできます。
固定値といっても、ユーザーが自由に決められるわけではなく、予約時にサービス側が勝手に割り振るような仕組みとなっています。
1. ngrok のダッシュボードにログイン
ngrok のダッシュボード にアクセスし、登録したメールアドレスとパスワードでログインします。
2. Domains ページにアクセス
ログインしたら、左側ナビゲーションバーにて、Cloud Edge の Domains をクリックします。
3. ドメインを作成(予約)
Create Domain をクリックします。
Your static domain ... has been created
と表示され、右側に Start a Tunnel
という画面が表示されます。
Close で閉じます。
Domain
画面が表示されるので、Domain 欄のコピーアイコンをクリックします。
4. 予約ドメインを使ってサーバ(ポート)を公開
PowerShell を開き、以下のコマンドを実行します。
実行前に以下の部分を置き換えてください。
-
<コピーしたドメイン名>
: 先ほどコピーしたドメイン名 -
<ポート番号>
: 公開するポートの番号。80 など
ngrok http --domain=<コピーしたドメイン名> <ポート番号>
有料プランについて
2024/05/04 時点では、大きく固定額サブスクリプションの development プランと、利用量に応じた従量課金の production プランがあるようです。金額の記載はいずれも月額料金です。
- production
- 18 ドルから
- development
- Personal: 8 ドル
- Pro: 20 ドル
- Enterprise: 39 ドル
各プランの差をこの場で具体的に示すのは大変なので、詳しくは Pricing をご覧ください。
Discussion