VPNおよびIPv6プロキシノード
管理画面での場所: Infrastructure › VPN & Proxy nodes › Agents & external nodes (
/agents)、VPN IP pools (/vpn/pool)、IPv6 Proxy nodes (/vpn/proxy6/nodes)。サービス自体は Services › VPN および Services › IPv6 Proxy にあります。両方のモジュールは System › Admin › License & updates で有効化します。
動作内容
NexCMPは、お客様が所有するIPアドレスおよび運用するサーバーから出力されるVPNおよびプロキシアクセスを販売します。2種類のノードが存在します:
- VPNノード。 小型Goプログラムの
cmp-agentがLinuxホスト上で実行されます。ホスト上のパブリックIPv4アドレスを検出し、販売される各アドレスでSOCKS5、HTTP、UDPリスナーを開き、顧客が接続したのと同じIP(同じIPでの出口)からトラフィックを送信します。数秒ごとにパネルに報告します。 - IPv6 proxyノード。 ホストにルーティングするIPv6プレフィックスから顧客にアドレスを付与するプロキシサービスです。パネルがSSH経由で自動インストールします。
サーバーを保有する国でクリーンなIPアドレスを再販するために使用します。
要件
VPN node
| 項目 | 要件 |
|---|---|
| オペレーティングシステム | systemdおよび4.15以降のカーネル(IPv6 free-bindサポート)を搭載したLinuxディストリビューション。同梱のエージェントバイナリは x86_64(amd64)のみです。 |
| 権限 | インストールにはrootが必要です。サービスは CAP_NET_ADMIN、CAP_NET_RAW、CAP_DAC_READ_SEARCH のみを保持します。 |
| ツール | curl または wget、および sha256sum(インストーラーはファイルのチェックなしでは続行を拒否します)。 |
| パブリックアドレス | ホストのインターフェイスに割り当てられたパブリック IPv4 アドレス(1 つの /32)、または 追加のサブネットとして追加するホストにルーティングされたプレフィックス(IPv4 /16 〜 /32、IPv6 /48 〜 /128)。プライベート、CGNAT、およびドキュメント用レンジは無視されます。 |
| ネットワーク、受信 | お客様は販売された各パブリック IP の ポート 65001-65535(SOCKS5 および HTTP の場合は TCP、UDP アソシエイトの場合は UDP)に接続します。各エンドポイントは 3 つの連続したポートのセットを使用します。 |
| ネットワーク、送信 | パネルのドメインへの HTTPS (443)。エージェントは ip-api.com(HTTP)および ipinfo.io(HTTPS)で自国の国名もルックアップします(制限時間 3.5 秒)。 |
| メール | ポート25への送信接続は常にブロックされ、これを開放する設定はありません。 |
| Docker、VPN、および仮想インターフェイス | docker*、veth*、br-*、cni*、flannel*、virbr*、cali*、tun*、tap*、wg*、tailscale* という名前のインターフェイスはアドレスを提供しません。 |
| 依存関係 | モジュール VPN、ゾーン(ホストの国から自動作成)、および HTTPS 経由でアクセス可能な NexCMP パネル。 |
IPv6プロキシノード
| 項目 | 要件 |
|---|---|
| オペレーティングシステム | systemd を搭載した x86_64 の Linux。コマンド systemctl、nft、ip、ss、sysctl、useradd が存在する必要があります。存在しない場合、インストールが停止し、不足しているコマンドの名前が表示されます。 |
| インストールのためのアクセス | パブリック IPv4 アドレス(プライベート、ループバック、CGNAT アドレスは拒否されます)、SSH ポート、root または sudo 権限を持つアカウント、およびそのパスワード。パスワードはインストールにのみ使用され、保存されません。 |
| 空きポート | 80、443、および 60000 より上のすべてのポートが空いている必要があります。インストインストーラーは、すでに実行中のサービスを停止または変更することはありません。ビジー状態のポートを報告して停止します。 |
| IPv6 | ホストがアウトバウンドトラフィックの送信元として使用できる 2000::/3 内の /32 と /64 の間のパブリックプレフィックス。ホストにルーテッド配信されるか、NDP プロキシ付きのオンリンクで配信されます(下記参照)。 |
| ネットワーク | お客様はノードのIPv4のポート80(HTTPプロキシ)、ポート443(SOCKS5)、およびポート60001〜65535(静的IPごとに1ポート)に接続します。ノードには証明書がないため、HTTPSプロキシはありません。トラフィックはIPv6経由でのみ送出され、IPv6アドレスを持つ宛先にのみ送信されます。ノードはHTTPS経由でパネルから設定を取得します。 |
| パネルサーバー上のノードソフトウェア | ノードのデーモンおよびネットワークスクリプトはNexCMPのリリースパッケージに含まれています。パネルはインストール時に、インストールフォルダー(/opt/nexcmp/releases/<version>/bin、またはカスタムビルドの場合は/opt/nexcmp/bin)から各ノードへそれらをコピーします。また、パネルサーバーにはsshpassとSSHクライアントも必要です。インストーラーがsshpassを追加しますが、1.4.2より前にインストールされたサーバーではsudo apt-get install -y sshpassを使用して追加します。 |
| 依存関係 | IPv6 Proxyモジュール、およびノードがコールバックするパネルのURL(IPv6 Proxy › Settings › Panel URL for nodes、デフォルトはhttps://<your license domain>)。 |
インフラストラクチャの準備
VPN node
ホストをプロビジョニングし、サポートされている Linux と、ネットワークインターフェイスに設定するかホストにルーティングして販売するパブリック IPv4 アドレスを設定します。
ルーティングされたブロックを販売する場合は、ノード追加時にExtra subnetとして入力するよう計画してください。エージェントはホストがブロック内のすべてのアドレス宛てのトラフィックを受け入れられるようルート
local <block> dev loをインストールし、検出したアドレスをレポートします。また、エージェントはホストの実際のルーティングテーブルも読み取り、ゲートウェイアドレスを販売したり捕捉したりすることは決してありません。ブロックにホストのルートのいずれかのネクストホップ(オンリンクブロックのルーターアドレスなど)が含まれている場合、エージェントはその周辺のブロック部分にのみlocalルートをインストールしてゲートウェイをパネルに報告し、パネルはそのアドレスをプールおよびすべての割り当てから除外します。追加サブネットが変更された場合やエージェントが停止した場合は、インストールしたルートを削除します。ファイアウォールを開きます。 パブリックアドレスでのインバウンド TCP および UDP 65001-65535、およびパネルへのアウトバウンド HTTPS を許可します。
オプション:IP ごとのバイトカウンター。 Conntrack アカウンティング(
net.netfilter.nf_conntrack_acct = 1)により、監視ロールで IP ごとのバイト数をカウントできます。パネルはエージェントにacctコマンドを送信して有効にすることができ、これにより/etc/sysctl.d/99-cmp-agent.confも書き込まれます。VPN ロール自体には必要ありません。ノードからパネルを確認する:
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://cloud.example.com/install.sh
IPv6プロキシノード
IPv6 プレフィックスは、2 つの方法のいずれかでノードに到達します。インストーラーは実際の送信接続で両方をテストし、機能するものを保持します。
| 種類 | 意味 | 設定内容 |
|---|---|---|
| ルーテッド | アップストリームがプレフィックス(例: /48 や /56)をノード自身のgetAddressにルーティングします。アウトバウンドパケットはプレフィックス内の任意のアドレスをソースとして使用でき、応答はノードに戻ります。 | 次のホップがノードであるルーティング済みプレフィックスをプロバイダーに依頼します。ノード側での追加設定は不要です。プロキシサービスはトランスペアレントソケット、固定ポリシーラウティングテーブル、および nft を使用します。 |
| On-link | 与えられた /64 はノードと同じ LAN 上に配置されます。応答は、ノードが使用中の各アドレスに対して近隣探索(NDP proxy)に応答する場合にのみ機能します。 | サービスは、そのインターフェイス上でのみ net.ipv6.conf.<if>.accept_ra=2、forwarding=1、および proxy_ndp=1 を設定し、古い値を記憶し、停止時にそれらを復元し、プールのアドレスの転送をブロックして、ノードがプールのルーターにならないようにします。 |
チェックの仕組み: ノードは、候補プレフィックスのランダムなアドレスから、パブリック IPv6 アドレス(ポート 443)への TCP 接続を 6 秒以内に試行します。候補には、/64 以下のプレフィックスを持つインターフェイス上のグローバルアドレス、および /16 と /64 の間の local、unreachable、または blackhole 型のルートが含まれます。/64 より短いプレフィックスは、内部のランダムな /64 が機能する場合、routed として受け入れられます。
同じプレフィックスを重複して使用しないでください
プレフィックスは他のノードのプレフィックスと重複してはならず、パネル自身の IPv6 プールにすでに属しているプレフィックスよりも広くすることはできません。パネルのプール内の /64 は許可されます。重複はインストール結果に「assign range … (node …)」として報告され、そのプレフィックスはスキップされます。
ノードが自身に適用する制限: 顧客はプールアドレスからのメール送信(ポート 25、465、587、2525)を行うことができず、デーモン自身の IPv4 トラフィックは応答、パネル、および DNS に制限されます。
NexCMP での接続
VPN node
System › Admin › License & updates で、スイッチ VPN をオンにします。Modules を参照してください。

Infrastructure › VPN & Proxy nodes › Agents & external nodes を開きます。ノードを追加するには 2 つの方法があります。
a. SSH 経由でインストールする。 + Add server (SSH) をクリックし、以下に入力します:
項目 入力例 サーバー IPv4 アドレス 192.0.2.50SSH ポート 22SSH ユーザー rootSSH パスワード XXXX表示名 node-ny-1(空欄: IP にちなんで命名されます)サーバーロール External VPN / Proxy Node ゾーン割り当て GeoIP による自動(ゾーンの作成 / 割り当て)、または既存のゾーン 追加サブネット(オプション) インターフェイスを自動スキャンする場合は空欄にするか、 203.0.113.0/24などのルーティング済みブロックを指定しますインストール後に販売用に有効化 検出されたすべてのアドレスを販売可能としてマークする場合はオンにします Connect & install をクリックします。パネルは SSH 経由で接続し、一回限り有効なチケットを使用してノード上でワンライナーインストーラーを実行し、ノード名、GeoIP の場所、および検出されたレンジを表示します。

b. 手動インストール。 Generate manual install tokenをクリックします。コマンドは1回のみ表示されます。これをコピーしてノード上で実行します。
bashcurl -fsSL https://cloud.example.com/install.sh | sudo sh -s -- --token XXXX --name node-ny-1トークンによるインストールでは、監視用としてのみマシンが登録されます。安全のため、パネルは共有トークンを保持するマシン自身にVPNロールを付与することを許可しません(コマンドに
--roles vpnを追加しても効果はありません)。マシンがリストに表示されたら、そのマシンを開いて手動でVPNロールを追加してください。SSH経由のインストール(オプションa)では、ノードに最初からVPNロールが付与されます。新しいトークンを生成すると古いトークンは無効になりますが、既に登録されたホストは独自のキーを使用するためそのまま動作し続けます。
インストーラーの動作: パネルから
cmp-agent-linux-amd64をダウンロードし、SHA-256を検証し、/usr/local/bin/cmp-agentにインストールし、トークンで登録し、/etc/cmp-agent/agent.jsonを書き込み、systemdサービスcmp-agentを起動します。削除する場合:curl -fsSL https://cloud.example.com/install.sh | sudo sh -s -- --uninstall。最初のハートビートの後、ノードがリストに表示されます。国はGeoIPによって検出され(ノード自身のルックアップが優先され、次にパネルのデータベースが使用されます)、その国のゾーンが存在しない場合は作成されて公開され、ホストで見つかったアドレスがプール範囲になります。
Infrastructure › VPN & Proxy nodes › VPN IP poolsを開いて範囲、そのゾーンとノードを確認し、各範囲のゾーン、ノード、またはSellableスイッチを変更します。Enable rangeでは新しい注文で空きIPを使用できるようになり、Disable rangeでは新規割り当てのみが停止され、リース中のIPは稼働し続けます。

Services › VPNを開き、料金表を設定して販売を有効にします。Subscriptionsの Sell VPN スイッチは、License & updates の VPN モジュールと同じスイッチです。
任意: サービスの名称変更。 Settings › Brandingの VPN service display name で、カスタマーメニュー、注文ページ、詳細ページ、デプロイ一覧における VPN サービスの表示名を変更できます(例:
IPv4 Proxy、Datacenter Proxy、Static Residential Proxy。最大40文字、空欄の場合はVPNを維持)。変更されるのはラベルのみであり、ルート、データ、API は変更されません。
IPv6プロキシノード
System › Admin › License & updates で、IPv6 Proxy をオンにします。
Infrastructure › VPN & Proxy nodes › IPv6 Proxy nodesを開き、Add node (SSH)をクリックします。ノードのIPv4アドレス、SSHポート、ユーザー、パスワード、任意の名前、およびReason(監査ログに記録されます)を入力し、Installをクリックします。

その後、パネルは順番に、マシンとポートのチェック、デーモン、ネットワークスクリプト、サービスユニット、およびノード固有の環境ファイル(ノードトークンとパスワード署名キー)のコピー、使用可能なプレフィックスのprobeの実行、プールへのプレフィックスの記録、サービスの開始を行い、最初のレポートを最大90秒間待ちます。Install logには各ステップが表示されます。
新しいノードは、そのゾーンを(ノードのIPv4のGeoIPから)offの状態で作成します。顧客が選択できるように、Infrastructure › Datacenter › Zoneからゾーンをオンにしてください。
ノードごとに合計のMbps capを設定します(方向ごとに10から100000)。Services › IPv6 Proxyで価格表を設定し、販売をオンにします。
IPv6 Proxy › Settings › Panel URL for nodesを確認します。ノードはこのアドレス(
https://host、パスなし)を呼び出して設定を取得し、レポートを送信します。空欄の場合はhttps://<your license domain>を意味します。ノード自身のIPv4が変更されずに到達できるよう、アドレスがパネルを直接指しているホストである必要があります。
ローテーションスケジュール
お客様は30〜600秒の自動ローテーション間隔を設定できます。NexCMPでは、パネルがそのスケジュール(および毎時の接続ログのクリーンアップ)を実行し、ノードは約5秒以内に新しいアドレスを取得します。
ノードのレポート送信方法
VPN node (cmp-agent) | IPv6プロキシノード | |
|---|---|---|
| 登録 | HTTPS経由の1回限りのチケットまたはトークン、その後は独自キー | 1回限りのSSHインストール、その後はノードトークン |
| ハートビート | 5秒ごと(モニター専用エージェントの場合は10秒)。パネルで3〜300秒に設定可能です。障害発生後は5秒刻みで最大60秒までバックオフします | ノードは約60秒ごとにレポートを送信し、設定を取得します |
| オンラインとして表示 | 過去60秒以内のハートビート | 過去120秒以内にaliveであること、そうでない場合はmissed heartbeat |
| 設定変更 | 次回のハートビート時に適用 | 約5秒以内に適用 |
| アップデート | パネルから新バージョン、URL、SHA-256を指定してupgradeコマンドを送信可能 | ノード行から再インストール |
VPNノードのデータ通信量枠
NexCMP 1.5.1 以降、VPN ノードエージェントは各ハートビート時に転送トラフィック量を送信し、パネルはそれを当請求期間のプラン使用量に加算します。同じ数値がお客様(Overview タブおよび Bandwidth タブ)と管理者(VPN › Subscriptions、Used 列、およびノード行)の双方に表示されます。
- 利用停止。 プランが当期のGB上限に達すると、パネルは該当プランのエンドポイントのエージェントへの送信を停止するため、新規接続は拒絶され、確立済みの接続は切断されます。停止処理は1ハートビート以内に行われるため、プランの上限をわずかに超過する場合があります。Unlimited枠のプランが停止されることはありません。
- 再開。 お客様が帯域幅を追加購入するか、次の利用期間が開始されると、1ハートビート以内にプランの提供が再開されます。
- Not measured:エージェントが使用状況を送信していないノード(旧バージョンのエージェントなど)はNot measuredと表示され、GB 容量を理由にプランが停止されることはありません。
- エージェントの更新。ノードではエージェント 1.5.1 を使用してください。旧バージョンのエージェントでもカウントは行われますが、失敗したハートビート、停止されたエンドポイント、または再起動時のバイト数が失われる可能性があり、プラン切断時に開いている接続を切断しません。ノードの行(Reinstall)または
upgradeコマンドで更新してください。 - カウントはプロキシを通過するペイロードが対象となるため、ネットワーク上の実際のバイト数よりもわずかに少なく(約1 %)なります。
提供終了した VPN アドオン
High IP Reputation、High Concurrency、High Priority Network は、新規注文での提供を終了しました。既存のサブスクリプションでは選択済みのアドオンが保持されますが、更新金額からは提供終了となった料金が除外されます。支払い済みの期間に対する返金はありません。この調整にはアドオンの現在のカタログ価格が使用されます。価格を変更した場合やアドオンを削除した場合は、次回の更新前に対象サブスクリプションの更新金額をご確認ください。
確認
ノード行がオンラインになっています。VPNノードの場合、Agents & external nodesにそのゾーン、国、ロール、および検出された範囲が表示されます。
VPN IP poolsには空きIPを持つ範囲がリスト表示され、ゾーンの詳細ページにはVPNインフラストラクチャが表示されます。
テスト用のVPNまたはプロキシプランを注文します。顧客にはエンドポイント
ip:port、ユーザー名、パスワードが発行されます。それ経由で接続し、表示されるパブリックIPがノードのIP(例:curl --proxy socks5h://USER:XXXX@IP:PORT https://ifconfig.me)であることを確認します。IPv6ノードで、ホスト上で次を実行します:
bashsystemctl is-active <node service> nft list tables | grep proxy6 ss -ltn | grep -E ':(80|443|6[0-9]{4})\b'
制限と注意点
- Windowsホストは監視エージェントを実行できますが、VPNロールは実行できません。
- VPNプランのデータ許容量(期間あたりのGB):NexCMP 1.5.1以降、パネルはVPNノードエージェントから報告されたトラフィックを集計し、期間のGBを使い切るとプランのプロキシを切断します(後述の「VPNノードのデータ許容量」を参照)。IPv6 ProxyプランにはGBの許容量はなく、プランごとに速度をMbps単位で制限します。
- VPNプランのIPv4アドレスはローテーションしません。お客様からブラックリスト登録されたIPの報告があった場合、管理者またはリセラーが同一ゾーンからの交換を承認します。ローテーションするのはIPv6 Proxyのみです。
- ハートビートごとに報告される範囲は最大64個です。
- 1つの販売IPにつき3つのポートがVPNエンドポイントセットに使用されます。65001〜65535のポートを使用することで、各IPは限られた数のエンドポイント(178個のポートセット)を提供します。パネルは以前に使用されたセットをスキップします。
- IPv6プロキシノードの削除は、どのプランもそのノード上でIPを保持していない場合にのみ許可されます。これによりノードのレンジとトークンが削除されますが、ホスト上のソフトウェアはアンインストールされません。
- ご自身のVMも配置されているレンジの再販は可能です。VPNは65001〜65535ポートのみを使用するため、他のサービスとIPを共有します。
トラブルシューティング
| 症状 | 原因 | 対処法 |
|---|---|---|
| "登録に失敗しました(無効なトークン、またはサーバーに到達できません)" | トークンが間違っている、すでに使用されている、またはパネルに到達できません | 新しいトークンを生成するか、SSHインストールを再試行してください。 |
| "ファイル署名の不一致 - STOP" | ダウンロードされたエージェントが公開されているSHA-256と一致しません | パネルの /dl/ フォルダを確認し、途中でダウンロードが書き換えられていないことを確認してください。 |
| "このインストーラーはLinux専用です" / "アーキテクチャ…はまだサポートされていません" | Windows、またはx86_64以外のアーキテクチャ(リリースにはx86_64用エージェントのみ同梱) | x86_64 の Linux ホストを使用してください。 |
| ノードが表示されない | ノードがHTTPS経由でパネルに到達できません | ノードから curl https://<domain>/install.sh をテストし、DNSとファイアウォールを確認してください。 |
| ノードが間違った国で表示される | 国情報のルックアップに失敗したため、パネルのアドレスデータベースが使用されました | ip-api.com および ipinfo.io へのアウトバウンドアクセスを許可するか、SSHフォームでゾーンを明示的に選択してください。 |
| レンジが検出されません | 非仮想インターフェイスにパブリックIPv4がありません | パブリックアドレスを追加するか、ルーティングされたブロックを Extra subnet として入力してください。 |
| VPNは機能するが、トラフィックが別のIPから出力される | 販売されたIPがホストに割り当てられていないか、ルーティングされていません | IPがインターフェイス上にあるか、local … dev lo でカバーされていることを確認してください。 |
| "パネルサーバーにsshpassがありません" | パネルホストがパスワードを使用してノードにログインできない | パネルサーバー上でsudo apt-get install -y sshpass openssh-clientを実行し、ノードを再インストールします。 |
| IPv6ノードのインストール時の"not found in the installed package" | パネルが1.4.2より古い、またはノードファイルを含まないカスタムビルドである | NexCMPを1.4.2以降にアップデートしてください。カスタムビルドの場合はbuild.shを使用します(現在はbrandy-proxy6dおよびbrandy-proxy6-netが同梱されています)。 |
| IPv6インストールの最初にある「SSH: …」、または「SSH to internal/loopback addresses is not allowed」 | ポート、ユーザー、またはパスワードの間違い、SSHのブロック、またはアドレスがプライベートアドレスです | ノードのパブリックIPv4を使用し、ssh -p PORT USER@IP でアクセスを手動で確認してください。 |
| "アーキテクチャ…はサポートされていません(x86_64のみ)" | ノードが x86_64ではありません | x86_64 ホストを使用してください。 |
| "ノードに必要なコマンドがありません: …" | nft、ip、ss、sysctl、systemctl、または useradd がインストールされていません | パッケージをインストールしてから、もう一度インストールを実行してください。 |
| "ノード上の別のサービスがポートを使用中: … — 80、443、60001-65535が空いている必要があります" | 80、443、または 60000 を超えるポートが使用中です | 他のサービスを移動してください。インストーラーはそれを停止しません。 |
| "ノードからインターネットにアクセス可能なIPv6プレフィックスが見つかりません(実際のエグレスプローブに失敗しました)" | ルーティングされたプレフィックスがない、NDPプロキシが使用できない、またはアウトバウンドIPv6がない | プレフィックスがノードにルーティングされていること、インターフェイスにIPv6接続があること、およびアウトバウンドトラフィックをフィルター処理しているものがないことを確認してください。 |
| "検出されたすべての範囲はすでに別のノードに属しています" | プレフィックスがすでに別のノードによって使用されています | 他のノードから削除するか、別のプレフィックスを選択してください。 |
| インストールが "no initial report received from node" で終了する | サービスは起動しましたが、90秒以内にパネルへ到達しませんでした | ノードに指定されたパネルURLと、ノードからのHTTPSパスを確認してください。Install logを参照してください。 |
| ノード行にmissed heartbeatと表示される | 120秒間レポートがありません | ノード上のサービス、時計、およびパネルへのパスを確認してください。 |
| お客様にIPv6ロケーションが表示されない | ゾーンが無効になっています | Zoneでゾーンを有効にしてください。 |