マルチプレイをしたいけどポート開放が面倒とか、ネットワーク上の問題でポート開放ができないとかで困ってる人向けにngrokを使って一時的に公開する方法。
ngrokでポートフォワーディングします。Minecraftサーバ自体の立て方については解説しません。
注意
この方法は0.tcp.ap.ngrok.io:<PORT>
で<PORT>
を変えてアタックしまくれば誰でもサーバに入れてしまう環境になります。ホワイトリストやプラグインによるIP制限などを実施し、知らない人が入ってきたり荒らされたりしないように十分注意しましょう。
この記事に記載されている内容を実行し、発生したいかなる問題について当サイト管理者は一切責任を負いません。自己責任でお願いします。
今回は説明のために割と画像やらGIFを多用します。
環境
Windows以外のOSの場合は適量読み替えてください。
- OS: Windows 10 2004 (Build 19041.630)
winver
- ngrok version 2.3.35
目次
やり方
ngrokへ登録
ngrok.comへアクセス、右上のSign up
から適当な名前(ハンネとかで良い)、有効なE-mailアドレス、パスワードを入れロボット認証を行い「Sign Up」をクリック。
ngrokのコマンドラインツールをダウンロード
「Download for Windows
」をクリックして、Windows版のngrokをダウンロードします。ZIPファイルがダウンロードされるので展開して中にあるngrok.exe
をデスクトップとかサーバのフォルダとかに移動させておきます。
もしPATHを通すという作業ができるのであれば、適当なところにおいてPATHを通すとどこをカレントディレクトリにしても使えるので楽ですが、この記事ではPATHを通さない前提で話を進めます。
とりあえず、ここではデスクトップに「test
」というフォルダを作りそこにngrok.exe
を移動させました。
ngrokのアカウントを連携
自分のPCにngrokの認証情報を保存する必要があるので、アカウント連携をしなければなりません。この記事ではPowerShellを使ってコマンドを入力・実行しますが、コマンドプロンプト(cmd
)でも構いません。
まず、先ほどngrok.exe
を移動させた先のフォルダで「Shift + 右クリック
」し、「PowerShell ウィンドウをここで開く
」をクリックします。
もしくは、エクスプローラーのアドレス欄をクリックし、powershell
と入力して開いても構いません。
PowerShellが開いたら、先ほどngrokをダウンロードしたページに戻りConnect your account
の欄を確認しましょう。./ngrok authtoken <TOKEN>
とトークンが書かれているので、<TOKEN>
に当たる部分をコピーします。
PowerShellに戻り、.\ngrok.exe authtoken <TOKEN>
と実行します。当然実行する前に<TOKEN>
の部分はページに記載されているコピーしたトークンに置き換えること。
Authtoken saved to configuration file:
と表示されれば成功です。
ngrokでサーバ(ポート)を公開する
最終工程として、Minecraftサーバのデフォルトポートである25565
ポートをngrokで公開し外部からログイン可能にします。
先ほどのPowerShellで.\ngrok.exe tcp --region ap 25565
と実行しましょう。
Session Status
がonline
と表示され、Forwarding
欄にアドレスが表示されていれば成功です。
サーバにログインする人にアドレスを教える場合はtcp://0.tcp.ap.ngrok.io:<PORT>
の0.tcp.ap.ngrok.io:<PORT>
の部分、上記画像で言えば0.tcp.ap.ngrok.io:13915
を教えましょう。
ちなみに、他の記事では--region ap
を付けていないケースが多いですがデフォルトだとアメリカの鯖が選ばれてしまうので無茶苦茶遅いです。--region ap
をつけてasiaを選ぶことをお勧めします。
完了
実際にログインできれば成功です。サーバを立てている自分自身はわざわざネットワーク上のサーバを介する必要はないので、localhost:25565
でログインしましょう。
2回目以降
2回目以降は、.\ngrok.exe tcp --region ap 25565
を実行するだけで同じようにサーバ(ポート)を公開できます。しかし、いちいちPowerShellを開くのも面倒なのでこのコマンドを実行できるファイルを作っておきます。
start.bat
というファイルを作成し、以下のコマンドを入力し保存してください。
ngrok.exe tcp --region ap 25565
pause
保存したら、あとはこのファイルをダブルクリックするだけでサーバ(ポート)を公開できます。
備考
- serveoというサービスもありますが、難易度は高めです(生SSH接続でポートフォワーディングするので)
- 独自ドメインとかVPSとか持っているなら、SSHポートフォワーディングして独自ドメイン経由でやったほうがいちいちアドレスも変わらないのでそららを選べるならそっちの方が…。