Marzban からの移行
このガイドでは、Remnawave 移行ツールを使用して Marzban パネルから Remnawave パネルへデータを移行する手順を説明します。
1. サーバーの準備
1.1. 必要な依存関係のインストール
システムパッケージを更新し、Git と wget をインストールして、サーバーに必要なツールが揃っていることを確認してください。
# Update system packages
sudo apt-get update
# Install Git and wget
sudo apt-get install -y git wget
git --version と wget --version を実行して、インストールが成功したことを確認してください。
2. 移行ツールのダウンロード
2.1. 最新リリースのダウンロード
GitHub リリースページからプリコンパイル済みの Remnawave 移行ツールをダウンロードします。
# Create and navigate to a working directory
mkdir -p /opt/remnawave && cd /opt/remnawave
# Download the latest version (v2.1.0 as of this guide)
wget https://github.com/remnawave/migrate/releases/download/v2.1.0/remnawave-migrate-v2.1.0-linux-amd64.tar.gz
2.2. ツールの展開
ダウンロードしたアーカイブを解凍してバイナリにアクセスします。
# Extract the tarball
tar -xf remnawave-migrate-v2.1.0-linux-amd64.tar.gz
展開後、ディレクトリに remnawave-migrate バイナリが見えるはずです。ls -l で確認してください。
3. 設定のセットアップ
3.1. 移行パラメーターの設定
移行ツールは設定にコマンドラインフラグを使用します。以下は必要なすべてのパラメーターを含むサンプルコマンドです。プレースホルダーの値を実際のサーバー詳細に置き換えてください。
./remnawave-migrate \
--panel-type=marzban \
--panel-url=https://your-marzban-server \
--panel-username=admin \
--panel-password=your-admin-password \
--remnawave-url=https://your-remnawave-server \
--remnawave-token=your-remnawave-token \
--preserve-status
3.2. 設定オプション
ツールは以下のフラグと対応する環境変数をサポートしています:
| フラグ | 環境変数 | 説明 | デフォルト |
|---|---|---|---|
--panel-type | PANEL_TYPE | ソースパネルタイプ(marzban または marzneshin) | marzban |
--panel-url | PANEL_URL | ソースパネル URL(例: https://marzban.example.com) | - |
--panel-username | PANEL_USERNAME | ソースパネルの管理者ユーザー名 | - |
--panel-password | PANEL_PASSWORD | ソースパネルの管理者パスワード | - |
--remnawave-url | REMNAWAVE_URL | 宛先パネル URL(例: https://remnawave.example.com) | - |
--remnawave-token | REMNAWAVE_TOKEN | 宛先パネルの API トークン(Authorization Bearer として使用) | - |
--batch-size | BATCH_SIZE | バッチごとに処理するユーザー数 | 100 |
--last-users | LAST_USERS | 最後の N ユーザーのみを移行(0 = 全ユーザー) | 0 |
--preferred-strategy | PREFERRED_STRATEGY | トラフィックリセット戦略(NO_RESET, DAY, WEEK, MONTH) | - |
--source-headers | SOURCE_HEADERS | ソースパネル用の追加ヘッダー | - |
--dest-headers | DEST_HEADERS | Remnawave 用の追加ヘッダー(例: X-Api-Key) | - |
--preserve-status | PRESERVE_STATUS | ソースパネルからのユーザーステータスを保持 | false |
--preserve-subhash | PRESERVE_SUBHASH | ソースパネルからのユーザーサブスクリプション URL ハッシュを保持 | false |
--internal-squad | INTERNAL_SQUAD | 割り当てる内部グループの UUID(カンマ区切り) | - |
--external-squad | EXTERNAL_SQUAD | 作成されたすべてのユーザーに割り当てる外部グループの UUID | - |
Caddy による追加セキュリティを使用した Remnawave を使用している場合は、以下の手順に従ってください:
- Auth ポータルにログインし、API Keys に移動します
- 新しい API キーを発行します
- 以下の形式で --dest-headers フラグを使用してこのキーを渡します:
--dest-headers="X-Api-Key:api-key-from-auth-portal"
- 少数のユーザーでテスト移行を行うには
--last-users=5を使用してください。 - Remnawave の API トークンは Remnawave パネルの設定(例: API または統合の下)から取得してください。
--preferred-strategyが指定されていない場合、Marzban のオリジナル戦略が使用されます。YEAR戦略はNO_RESETに変換されます。
3.3. ユーザーをグループに割り当て
移行されたすべてのユーザーを内部および/または外部グループに自動的に割り当てることができます:
# Assign to a single internal squad
./remnawave-migrate \
[other flags...] \
--internal-squad=e5201a6a-c50e-4b58-9ecb-a4c26c5e74c8
# Assign to multiple internal squads
./remnawave-migrate \
[other flags...] \
--internal-squad=uuid1,uuid2,uuid3
# Assign to an external squad
./remnawave-migrate \
[other flags...] \
--external-squad=f6302b7b-d61f-5c69-0fdc-b5d37d6e85d9
# Assign to both internal and external squads
./remnawave-migrate \
[other flags...] \
--internal-squad=uuid1,uuid2 \
--external-squad=uuid3
4. 移行後の確認
4.1. 確認すべき項目
移行後、Remnawave パネルで以下を確認してください:
- ユーザー数: 移行されたユーザー数がソースと一致していることを確認します。
- データの整合性:
- ユーザー名
- パスワード(Trojan、VLESS UUID、Shadowsocks)
- トラフィック制限とリセット戦略
- 有効期限
- ユーザーステータス(
--preserve-statusを使用した場合) - サブスクリプション URL ハッシュ(
--preserve-subhashを使用した場合) - グループ割り当て(
--internal-squadまたは--external-squadを使用した場合)
Remnawave パネルにログインし、いくつかのユーザーをスポットチェックしてデータの正確性を確認してください。
5. レガシー Marzban サブスクリプションページのサポート
Remnawave への移行後、レガシー Marzban サブスクリプションページのサポートとレンダリングを確保する唯一の方法は、https://github.com/remnawave/subscription-page/ のリポジトリを使用することです。
5.1. デフォルトの Docker Compose 設定
デフォルトでは、サブスクリプションページサービスの docker-compose.yml ファイルは次のようになります:
services:
remnawave-subscription-page:
image: remnawave/subscription-page:latest
container_name: remnawave-subscription-page
hostname: remnawave-subscription-page
restart: always
environment:
- APP_PORT=3010
- REMNAWAVE_PANEL_URL=http://remnawave:3000
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
networks:
remnawave-network:
driver: bridge
external: true
5.2. Marzban 互換性のための調整
移行中は、Marzban サブスクリプションパスとの互換性を確保し、Marzban サブスクリプションリンクの復号化を有効にする必要があります。デフォルト設定の environment セクションを以下に置き換えてください:
services:
remnawave-subscription-page:
image: remnawave/subscription-page:latest
container_name: remnawave-subscription-page
hostname: remnawave-subscription-page
restart: always
environment:
- APP_PORT=3010
- REMNAWAVE_PANEL_URL=http://remnawave:3000
- MARZBAN_LEGACY_LINK_ENABLED=true
- MARZBAN_LEGACY_SECRET_KEY=secret
- REMNAWAVE_API_TOKEN=token
- CUSTOM_SUB_PREFIX=sub
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
networks:
remnawave-network:
driver: bridge
external: true
設定オプションの説明
| 変数 | 説明 | 値の例 |
|---|---|---|
REMNAWAVE_PANEL_URL | Remnawave パネルの URL。http://remnawave:3000 または https://panel.example.com が使用可能 | http://remnawave:3000 |
APP_PORT | サブスクリプションページサービスが実行されるポート。 | 3010 |
MARZBAN_LEGACY_LINK_ENABLED | レガシー Marzban サブスクリプションリンクのサポートを有効にします。以下のオプションを使用するには true にする必要があります。 | true |
MARZBAN_LEGACY_SECRET_KEY | レガシーリンクの復号化に必要な Marzban データベースの秘密鍵。 | secret |
REMNAWAVE_API_TOKEN | Remnawave パネルダッシュボード("API Tokens" の下)で生成された API トークン。 | token |
CUSTOM_SUB_PREFIX | Marzban セットアップに合わせたサブスクリプション URL のカスタムプレフィックス(例: sub)。 | sub |
MARZBAN_LEGACY_LINK_ENABLEDがtrueに設定されている場合、後続のすべての変数(MARZBAN_LEGACY_SECRET_KEY、REMNAWAVE_API_TOKEN、CUSTOM_SUB_PREFIX)を提供する必要があります。MARZBAN_LEGACY_SECRET_KEYを取得するには、Marzban データベースに次のクエリを実行してください:たとえば、Marzban データベースがSELECT secret_key FROM jwt LIMIT 1;marzban-mysqlという名前の Docker コンテナにある場合は、次を使用して接続します:docker exec -it marzban-mysql mysql -uroot -pPasswordmarzban-mysqlとPasswordを実際のコンテナ名と root パスワードに置き換えてください。- Remnawave ダッシュボードの "API Tokens" セクションで
REMNAWAVE_API_TOKENを生成してください。
5.3. レガシーサポートの確認
更新された設定をデプロイした後:
remnawave-subscription-pageサービスを再起動します:docker compose up -d --force-recreate- 古い Marzban サブスクリプションリンクをテストして、正しく解決され Remnawave サブスクリプションページにユーザーデータが表示されることを確認してください。