どうも、コメントをもらうようになってテンション爆上げのnovaです。
サーバーを立てるとき、一番大変なのがポート開放ですよね。
中にはポート開放できない人もいて(プロバイダとの契約上)、その方はほかにVPSを借りたり、Hamachiを使ってサーバーを立てたりすることしかできません。
けど、「hamachiって怖いって聞くからなぁ」(本当の安全性について筆者は知りません)とか「VPS高いしなぁ」っていう思いがあると思います。
実は、それらを使わなくても無料で自宅サーバーを立てられる方法があるんです!!
今回は、その方法について書いていきます。
Windows前提で話を進めていきます。
注意点
海外プロキシサーバーを経由するので、少しラグくなる
自分の環境では、350ミリ秒遅延がありました(ポート開放だと、高くても50ミリ秒[環境による])
(2021/02/21追記)コメントで有用な情報をいただきました
日本サーバーを使えばかなり遅延が抑えられるようです(筆者の環境では37ms)- ngrokを閉じるたびに接続先アドレスが変動する
サーバーを起動するたびに新しいアドレスを教える必要があります(有料プランでは固定可)
固定したアドレスやカスタムアドレスを使いたいときは、有料プランを契約してください(今回は説明しません)
ngrokの導入(2024/03/10 更新)
早速作業を始めていきましょう。
アカウントを作成する
https://dashboard.ngrok.com/signupへ移動します
「Name」に名前、「E-mail」にメールアドレス、「Password」にパスワードを入力します。
「私はロボットではありません」にチェックを入れ、「Sign Up」で登録します。ロボットならチェックを入れないで、どっか行ってください
GithubやGoogleアカウントを使ってログインすることもできます。
その場合メアド等の入力が不要ですし、管理が楽だと思います。
有料版の登録をしない限り請求はされないのでご安心下さい。
ngrokをダウンロードする
以下のような画面(https://dashboard.ngrok.com/get-started/setup/windows)に移動すると思うので、「Download」を選択して「Download for Windows」をクリックします。
ダウンロードしたzipファイルを解凍して、ngrok.exeを適当なフォルダに保存します。
これがngrok本体です。
アカウントを紐づけ
この状態ではまだアカウントがダウンロードしたngrok.exeに認識されていないので、設定をします。
「Download for Windows」のすぐ下に「ngrok config add-authtoken 認証トークン」という文字があるのでコピーします。
これはアカウントの認証に使われるトークンなので、他の人に教えないでください!
そしたら、ダウンロードしたngrok.exeをダブルクリックして起動します。
黒画面(コマンドプロンプト)が出てくるので、そこにコピーした文字を張り付けてEnterで実行します。
これでアカウントが紐づけされました。
サーバーの公開(2024/03/10 更新)
ngrok起動
さっき開いた黒画面(閉じていたらngrok.exeをダブルクリックして再度開きます)に、以下のコマンドを入力して実行します。
(現在は自動でJapanサーバーが選択されます)
ngrok tcp 25565
これでngrokが起動し、パケット(ネットから送られてくるデータ)を自分のPC(サーバー)に転送できるようになりました!
この黒画面はサーバーを動かしている間、開いたままにしておいてください
サーバーを起動
では、マイクラサーバーを起動しましょう!
筆者はとりあえず公式サーバーソフトウェアを使うことにします。
SpigotやPaperなど、ほかのサーバーソフトも使えます。
起動やセットアップの仕方は省略します。
サーバーに接続
ではでは!サーバーに接続してみましょう!!
さっき開いたままにしておいた黒画面を見てください。
黒で囲ったアドレスをコピーします(tcp://は不要です)
※環境によってアドレスは異なります。
マイクラを起動します。
「マルチプレイ」の「サーバーを追加」で「サーバーアドレス」に先ほどコピーしたアドレスを入力します(:以降も忘れずに!!)
サーバーに接続します。
できました!!
他のプレイヤーにも同じアドレスを教えます(サーバー主もほかのプレイヤーも同じアドレスで接続できます)
チェックも成功!!
まとめ
ポート開放無しでサーバーを動かせるようになったことで、少しサーバー運営のハードルも下がったのではないでしょうか?
このような素晴らしいソフトウェアを開発してくださった方々に感謝です!!
ちなみにですが、このngrokはマイクラサーバー以外にもwebサーバー公開など、幅広い用途で使えます。
コメント
こんにちは。
spigot+geyserを使ってサーバーを建ててみて、ngrokのipでjava版からの接続はできましたが
be(win10版)からの接続はできませんでした。
どうすればbeからも接続が可能になるでしょうか。
教えてください。
ngrokはTCP(JEが使用する通信方式)のみでUDPパケット(BEが使用する通信方式)の転送をサポートしていないようです。
代替方法としては
・UDPをTCPに変換してngrokを通して通信する(全員にデータを変換するソフトを起動してもらわないといけない)
・ポート開放をなんとかする
などがあると思います
いずれにしても高難易度で、前者は私も試したことがないです。
他に方法が見つかれば、記事にしたいと思います
UDPでもポート開放無しで公開する方法が見つかったので紹介します
https://novablog.work/make-crossplay-server/
ngrokでサーバーを立てている方に…
ngrokでサーバーを立てていて反応速度が遅いと感じ一旦あきらめたのですが…
最近になり海外の動画を見ていて中継サーバーを選べるとゆうことを知り試した結果
ものすごい軽くなったので同じような症状の方へ…
例)
/home/username/.ngrok2/ngrok.yml
このngrok.ymlの中にregion: jpと入力するだけ
ngrok.ymlの中ははじめはauthtoken: [token]があるだけですが
その下にregion: jpと入力すると中継サーバーが日本になり通信にかかる
ラグがなくなり通信が早くなります!!
参考サイトhttps://symfoware.blog.fc2.com/blog-entry-2358.html
海外の動画https://youtu.be/dC-hecmyxr4
有用な情報をありがとうございます!
参考にさせていただきます
これをするのにバージョンは関係ありますか?
特に関係ないと思います
なんか開けなくなりました。やっぱversion関係あるんじゃ,、、
Java版限定ですか?
PC初心者で、鯖立てて友達と遊ぼうとしています。
ポート開放をチェックするとアクセスできましたって出るんですけれど、実際友人が入ろうとすると接続できません。
自分(鯖主)は入れているのですが、どうすれば入れるようになるでしょうか。
マイクラサーバーステータスチェッカーで調べてみるとオフラインになっています。
何が悪いか全く見当がつかないので、悪いところを調べる方法など教えてもらえると幸いです。
最近のアップデートで、TCPポートを開く際に、クレジットカードを紐づけて確認することが必要になりました。