LoginSignup
2
3

ルータのポート開放ができなくてもマイクラのサーバを立てる方法

Last updated at Posted at 2023-02-14

はじめに

マインクラフトのサーバを立てる場合、ポート開放が必要になってきます。ですがマンションなどの共有回線を利用している場合、ルータのポート開放ができないことが多いです。そこで ngrok というソフトウェアを用い、ポートフォワーディングすることで、内部のポートを外部に開放することを試したのでまとめてみました。

導入

ngrok アカウントの作成

まずは ngrok のアカウントを作成しましょう。ここから ngrok のサイトに飛び、[Sign up for free] ボタンをクリックして下さい。この時、GitHub や Google のアカウントでも連携できるので、お好きなようにアカウントを作成して下さい。

ngrok でポートフォワーディングを行う

アカウントが作成できたら、以下の手順に従って設定を行って下さい。

  • Windows の場合
  1. [Download for Windows] ボタンをクリックする。

  2. ダウンロードしたファイルを解凍する。

  3. 解凍してできた ngrok.exe ファイルをマイクラサーバがあるディレクトリかデスクトップ等に移動する(使いやすい場所に移動して下さい)。

  4. ngrok.exe ファイルがあるフォルダに移動し、アドレスバーに "cmd" と入力しコマンドプロンプトを起動。

  5. ダウンロードサイトの 2. Connect your account にあるコマンドを実行(トークンは自分のものに置き換えて下さい)。
    キャプチャ.PNG

    ngrok add-authtoken
    G:\MineCraft\MineCraft Server> ngrok config add-authtoken 2LZjNmm8EtSNTXUMgjA3K1cOMs7_4HNp4KftdBGHZCSL7W5gs
    Authtoken saved to configuration file: C:\Users\hoge\AppData\Local/ngrok/ngrok.yml
    
  6. ngrok の設定ファイル ngrok.yml を編集するために、コマンドプロンプトの結果のC:\Users\hoge\AppData\Local/ngrok/ に移動。

  7. ngrok でアクセスするサーバの地域を変更する。ngrok.yml をテキストエディタで開き、"region: jp" と追加(以前はデフォルトだとアクセスするサーバは us であったが、いつからか近くにあるサーバを自動的に選ぶ仕様になった? "region: jp" と設定しなくても jp が選ばれた。一応明示的に設定しておこう)。

  8. ngrok コマンドの実行。

    ngrok の起動
    G:\MineCraft\MineCraft Server> ngrok tcp 25565
    

スクリーンショット2023-02-11 13.12.07.png
Sesstion Statusonline と表示されていれば問題ない。Forwarding 欄にあるアドレスがマイクラでサーバに接続する際の、サーバアドレスになる(ここでは "0.tcp.jp.ngrok.io:19992")。なお、無料版だとサーバアドレスを固定することはできないため、サーバ起動のたびにサーバアドレスを他の人に伝える必要がある。
9. マイクラサーバとマイクラを立ち上げ [マルチプレイ] > [ダイレクト接続] から 先程のサーバアドレスを入力し、[サーバに接続] を実行。
スクリーンショット2023-02-11 13.51.49.png
なお、サーバを立てている自分自身は ngrok 経由でサーバにアクセスする必要はなく、"localhost" と入力することでログインできる。
10. いちいちコマンドプロンプトから ngrok を立ち上げるのは面倒なので簡単なバッチファイルを作成する。

ngrok.bat
ngrok tcp 25565
pause

以降はこのバッチファイルを実行するだけで、マイクラサーバにアクセスすることが可能となる。

  • Linux の場合
  1. wget コマンドで対応するアーキテクチャの ngrok をダウンロードする。

  2. tar -xf ngrok*.tgz コマンドでダウンロードしたファイルを解凍する。

  3. 解凍してできた ngrok ファイルを適当な場所に置く(~/bin など)。

  4. 以下のように ngrok コマンドを実行(トークンは自分のものに置き換えて下さい)。

    add-authtoken
    [web@localhost ~]$ ~/bin/ngrok config add-authtoken 2LZjNmm8EtSNTXUMgjA3K1cOMs7_4HNp4KftdBGHZCSL7W5gs   
    Authtoken saved to configuration file: /home/web/.config/ngrok/ngrok.yml
    
  5. ngrok でアクセスするサーバの地域を変更する。~/.config/ngrok/ngrok.ymlを開き、"region: jp" を追加

    ngrok.yml
    version: "2"
    authtoken: 2LZjNmm8EtSNTXUMgjA3K1cOMs7_4HNp4KftdBGHZCSL7W5gs
    region: jp
    
  6. ngrok コマンドの実行。

    ngrok の起動
    [web@localhost ~]$ ~/bin/ngrok tcp 25565
    

キャプチャ.PNG
Sesstion Statusonline と表示されていれば問題ない。Forwarding 欄にあるアドレスがマイクラでサーバに接続する際の、サーバアドレスになる(ここでは "0.tcp.jp.ngrok.io:17128")。なお、無料版だとサーバアドレスを固定することはできないため、起動のたびにサーバアドレスを他の人に伝える必要がある。

以降は Windows と同様になります。マイクラサーバとマイクラを立ち上げ [マルチプレイ] > [ダイレクト接続] から 先程のサーバアドレスを入力し、[サーバに接続] を実行して下さい。

注意点

注意点として、この方法では 0.tcp.jp.ngrok.io:<port> とマイクラサーバのポート(25565)とを繋げます。この時、ポート番号が分かりさえすれば誰でもサーバに入れてしまいます(実際に知らない人がサーバに入ってきたことがありました)。そのようなことを防ぐためにも、マイクラサーバのホワイトリスト機能などを使って対策して下さい。

最後に

友達とマイクラをやりたくなった時に、ポート開放をどうしようと試行錯誤していました。その時、そういえば ngrok でローカルサーバを外部に公開できることを思い出し、検索してみたら ngrok を使ってマイクラサーバを公開する方法を見つけました。その時の設定方法についてまとめてみました。
また、リスクもありますがngrok を利用することで、外部に公開していないローカルサーバにアクセスすることが可能になり便利です(研究室のローカルサーバに自宅からアクセスできるようにしていました)。VPN などのややこしい設定も不要なのでセキュリティを問題視しないのであれば、ありかなと思います。

参考

ngrokでMinecraftサーバを公開する

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3