Skip to content

サーバーのポートを開放せずに動的にVelocityプロキシへサーバーを登録できるプラグインです。

License

Notifications You must be signed in to change notification settings

moruch4nn/vTunnel

Repository files navigation

vTunnel

ポート解放をせずにVelocityプロキシへサーバーを登録できるトンネリングプラグインです。 子サーバー起動時に自動的にVelocityプロキシへサーバーを登録します。(必要に応じてforcedHostsの登録も行います。)

利用想定はどんな感じなの?

ポートを開放できない環境に実機サーバーとかを置いたとき
「Linode*1にVelocityプロキシ置いてるけど実機側のポート開放できないからサーバー登録できないじゃん!!!!」
こういう時にこのプラグインを使うことでポート開放をせずにサーバーをVelocityに登録することができます。

頻繁にサーバーを作るとき
「サーバー立てたときVelocityにいちいち登録するのめんどすぎん?????」
vTunnelを入れておけば動的にサーバーを追加できます。

セットアップする

vTunnelのセットアップ方法。

プロキシサイドの設定

1.vTunnelは子サーバーからのトンネリングの際に60000番ポートを使用するため、プロキシー側でポート60000,60001番を開放する必要があります。
また、解放する必要はありませんが60002-61000ポートを内部的に使用するため他プロセスで使用しないでください。(dockerでの実行を推奨)

2.VelocityプロキシのpluginsフォルダにvTunnelプラグインを導入する 3.下記のの環境変数を設定する
(velocity-config.tomlのserversやtryの項目を削除することをお勧めします。)

# JWTトークンのシークレットです。極力長い文字列にすることをお勧めします。
VTUNNEL_SECRET: """任意のシークレット文字列""" (require)

# サーバー接続時に最初に接続するサーバーの名前。
VTUNNEL_TRY: "サーバー名1,サーバー名2" (optional)

サーバーサイドの設定

1.サーバーにvTunnelプラグインを導入します。
2.JWTトークンをここから生成する(下記参照)
2.下記の環境変数を設定する

JWTトークンの項目

Algorithm: HS512

your-256-bit-secret: """上で設定した$VTUNNEL_SECRETの値"""

PAYLOAD:
    name: lobby, #(require)Velocityに登録するサーバー名
    forced_hosts: ["lobby.example.com","main.example.com"], #(optional)Velocityに登録するforcedHostsのアドレス
    exp: 1000000000000, #(require)このトークンの有効期限(unix_time/sec)
    iss: moruch4nn, #(require)このトークンの発行者(適当で構いません)
    aud: ["小サーバー用"], #(require)このトークンの想定利用者(適当で構いません)

環境変数

# vTunnelサーバーのホスト名
VTUNNEL_HOST: 478.43.12.432
VTUNNEL_TOKEN: 上で生成したJWTToken。

About

サーバーのポートを開放せずに動的にVelocityプロキシへサーバーを登録できるプラグインです。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages