0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ConoHaAdvent Calendar 2024

Day 8

ConoHaVPSを使ってオンプレミスサーバーを外部公開する

Last updated at Posted at 2024-12-07

この記事はConoHa Advent Calendar 2024の8日目です

ConoHaVPSを使ってオンプレミス(ローカル)サーバーを外部公開します。

はじめに

昨今ではIPv6のみの接続環境「v6プラス」接続が増えてきました
IPv4が枯渇してきていたりPPPoEv4が遅かったりとv6で接続するメリットの恩恵を受けることができていたりします

ただ、デメリットとして任意ポートの公開ができない、ローカルサーバーがIPv4で外部公開できない
といった問題が出てきたりします。

今回はv6プラス環境内のLANにマイクラJEサーバーを建てて外部(友人等)から接続できる環境を構築していきます

環境

  • ローカル
    • Ubuntu 22.04
    • Java 21 (minecraftが動けばいい)
  • Conoha VPS
    • 512MB プラン
    • nginx & nginx stream
    • Version 3
  • tailscale
    • Personal(無料)プラン

今回の環境特性上
IPはほぼ固定となり月額300円~でグローバルIPを持つことができます

ローカルサーバー構築

今回ローカルマシンとしてUbuntu 22.04で構築していきます
さらっと
Java用意してマイクラサーバー建てて接続できることを確認します

マイクラJEサーバー
https://www.minecraft.net/ja-jp/download/server

ローカルマシン
$ sudo apt install openjdk-21-jdk
$ mkdir minecraft
$ cd minecraft
$ wget https://↑のminecraft_server.x.xx.xx.jarのURL/server.jar
$ java -Xmx1024M -Xms1024M -jar server.jar nogui

いつも通り同意を求められるのでeula.txtの中をtrue

$ vi eula.txt

んで再度起動。

$ java -Xmx1024M -Xms1024M -jar server.jar nogui

ひとまず起動

[15:51:50] [Server thread/INFO]: Starting minecraft server version 1.21.4
[15:51:50] [Server thread/INFO]: Loading properties
[15:51:50] [Server thread/INFO]: Default game type: SURVIVAL
[15:51:50] [Server thread/INFO]: Generating keypair
[15:51:50] [Server thread/INFO]: Starting Minecraft server on *:25565
[15:51:50] [Server thread/INFO]: Using epoll channel type
[15:51:50] [Server thread/INFO]: Preparing level "world"
[15:51:50] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[15:51:53] [Server thread/INFO]: Time elapsed: 2863 ms
[15:51:53] [Server thread/INFO]: Done (3.143s)! For help, type "help"

そしてマイクラクライアントから
image.png
ローカルIPを指定して追加、接続を行います
image.png

無事繋がりました
image.png

マイクラサーバーはstopで止めておきましょう

VPS構築

VPS起動

ひとまず512MBプランで建てます
Debianで建てちゃいましょう
image.png

今回SSHは使う想定ではないので使用しない
セキュリティグループは後で設定します
image.png

起動中…
image.png

セキュリティグループ

起動を待っている間にネットワーク設定(セキュリティグループ)を設定しましょう
image.png

セキュリティグループの追加を押して、、
image.png

image.png
名前と説明を適当に記入

作成されたグループに追加でマイクラのポートを設定します
image.png

IPv4と必要であればv6も開けます
image.png
image.png

image.png

VPS設定

セキュリティグループをVPSに割り当てます
ConoHaコンソールから今回建てたサーバーを選択し、
セキュリティグループを変更します。

編集状態にし、
defaultを先ほど作ったマイクラ設定に変更します
image.png

そして保存。

VPS内設定

立ち上げ直後なので

# apt update && apt -y upgrade && reboot

image.png
…そんなにパッケージ無かったですね。さすがです。

今回はプロキシにnginxのストリームプロキシを使うので
nginxと必用なモジュールをインストールします
また、後に必要になるcurlも入っていないのでインストールします

# apt install nginx libnginx-mod-stream curl

tailscale

アカウント作成、ログイン

https://tailscale.com/
へアクセスしアカウントを作成、ログインします。

インストール

続いて
https://tailscale.com/download
こちらから
Linux→Debian12を選択してインストールスクリプトを表示させます

表示された①のテキストを
ConoHaVPS内のコンソールに貼り付けます
※テキスト送信を使いましょう

↓みたいにまるごと送信せず 1行ずつ 送信した方がいいかも
image.png

②を実行しインストール。

$ sudo apt update
$ sudo apt install tailscale

③でtailscaleを起動します

$ sudo tailscale up

起動するとログイン用のURLが発行されます。
image.png
残念ながらConoHaコンソールからテキストをコピーすることができないので
ブラウザに手打ちしましょう

ドメイン部分のコピペ用
https://login.tailscale.com/~~~~

ログインが求められたらログインします
image.png

Connectを押してしばらくすると
successとなります
image.png

VPSコンソール上も自動的に進んで接続されます
image.png

tailscaleのMachinesにVPSが接続されます
image.png

④を打ち込むと tailscaleVPN内のIPが取得できます

tailscale ip -4

ローカルサーバーにインストール

マイクラサーバーが建った方にも同じようにtailscaleをインストールします
こちらはUbuntuで建てたのでインストールコマンドのディストリビューションを変更してコピペして
インストールします
それぞれのコマンドをコピペせずとも
一括インストールシェル。↑の手順じゃなくこれでいい気がします。

curl -fsSL https://tailscale.com/install.sh | sh

手順は割愛

接続できました
image.png

ローカルサーバーから tailscale ip -4 し、
出てきたIPアドレスまたはマシン名をConoHaVPS側からpingしてみます

image.png

疎通できました。

ConoHaVPSからローカルマシンへ

nginx の設定を行っていきます
プロキシ設定の追加

# mkdir /etc/nginx/stream.d
# vi /etc/nginx/stream.d/minecraft.conf

転送先もIPまたはマシン名を入れます。

minecraft.conf
upstream mcserver {
    server local-minecraft-server:25565;
}

server {
    listen 25565;
    listen [::]:25565;
    proxy_pass mcserver;
}

プロキシ設定を読み込むよう設定

# vi /etc/nginx/nginx.conf

以下を追加

nginx.conf
stream{
	include /etc/nginx/stream.d/*.conf;
}

nginxを(再)起動します

systemctl restart nginx

ここでエラーが出る場合
confファイルの記述ミスや
libnginx-mod-streamをインストールし忘れている可能性があります

nginxが起動したら
ローカルサーバーのマイクラサーバーを起動し、
ConoHaVPSのIPに向かってマイクラクライアントから接続してみます

image.png

無事繋がりました。

image.png

これで外部からローカルサーバーへのアクセスができるようになりました

その他

セキュリティについて

ごく当たり前な話ですが
tailscal VPN内のセキュリティには注意してください
ConoHaのセキュリティグループの開放ポートも最低限の物にし、
マイクラサーバーも極力最新にしセキュリティバグ修正済みの物を利用してください

SSH等

ConoHaVPSがtailscaleに接続している場合
同じtailscaleに接続しているマシンからVPSへは全ポート開放状態となります
ConoHaのセキュリティグループはVPSと外部との間を制御しています
tailscaleは裏口となるためセキュリティグループ適用外となります

ログ

マイクラへのログインログは
VPSのtailscaleのIPアドレスが記録されます。
そのためIPアドレスによる見分けができなくなります。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?