---
title: VPN 與 IPv6 代理節點
description: 將 Linux 主機準備為 VPN 節點（cmp-agent）與 IPv6 代理節點：包含作業系統、IP 位址與 IPv6 字首、連接埠、sysctl、安裝及心跳訊號。
url: https://nexcmp.com/zh-tw/docs/infrastructure/vpn-proxy-nodes/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# VPN 與 IPv6 代理節點 {#vpn-and-ipv6-proxy-nodes}

> **管理員位置：** 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 中啟用。

## 功能 {#what-it-does}

NexCMP 銷售從**您擁有的 IP 位址**（在您運作的伺服器上）發出流量的 VPN 與代理存取服務。共有兩種節點：

- **VPN 節點。** 一個執行於您 Linux 主機上的小型 Go 程式 `cmp-agent`。它會自動偵測主機上的公開 IPv4 位址，在每個銷售的位址上開啟 SOCKS5、HTTP 與 UDP 監聽器，並從客戶連線的**相同 IP** 發出流量（同 IP 出口）。它會每隔幾秒向控制台回報狀態。
- **IPv6 代理節點。** 一個代理服務，可提供客戶來自您路由至主機之 IPv6 字首的位址。控制台會透過 SSH 為您安裝。

您可以使用它們在您擁有伺服器的國家/地區轉售乾淨的 IP 位址。

## 需求 {#requirements}

### VPN 節點 {#vpn-node}

| 項目 | 需求 |
|---|---|
| 作業系統 | 具備 systemd 與 4.15（或更新版本）核心的 Linux 發行版本（支援 IPv6 自由繫結）。隨附的代理程式二進位檔僅支援 **x86_64** (amd64)。 |
| 權限 | root（用於安裝）。服務僅保留 `CAP_NET_ADMIN`、`CAP_NET_RAW` 與 `CAP_DAC_READ_SEARCH`。 |
| 工具 | `curl` 或 `wget`，以及 `sha256sum`（安裝程式未檢查檔案將拒絕繼續）。 |
| 公開位址 | 指派在主機介面上的公開 IPv4 位址（每個 `/32` 一個），**或者**路由至主機並作為額外子網路新增的前綴（IPv4 /16 至 /32，IPv6 /48 至 /128）。私有位址、CGNAT 及說明文件範圍將被忽略。 |
| 網路，輸入 | 客戶連線至每個出售的公開 IP 之 **65001-65535 連接埠**（SOCKS5 與 HTTP 使用 TCP，UDP 關聯使用 UDP）。每個端點使用一組三個連續的連接埠。 |
| 網路，輸出 | HTTPS (443) 連線至您的面板網域。代理程式亦會透過 `ip-api.com` (HTTP) 與 `ipinfo.io` (HTTPS) 查詢其自身國家，逾時時間為 3.5 秒。 |
| 郵件 | 對外連接port 25一律封鎖；沒有可開啟的設定選項。 |
| Docker、VPN 與虛擬介面 | 名為 `docker*`、`veth*`、`br-*`、`cni*`、`flannel*`、`virbr*`、`cali*`、`tun*`、`tap*`、`wg*` 及 `tailscale*` 的介面不提供位址。 |
| 相依於 | **VPN** 模組、一個區域（根據主機國家自動建立）以及透過 HTTPS 存取的 NexCMP 面板。 |

### IPv6 代理節點 {#ipv6-proxy-node}

| 項目 | 需求 |
|---|---|
| 作業系統 | 執行於 **x86_64** 架構且具備 systemd 的 Linux。必須存在 `systemctl`、`nft`、`ip`、`ss`、`sysctl` 與 `useradd` 指令；否則安裝將會停止並列出缺少的指令。 |
| 安裝存取權 | 公開 IPv4 位址（私有、迴圈與 CGNAT 位址將被拒絕）、SSH 連接埠、具備 root 或 `sudo` 權限的帳戶及其**密碼**。該密碼僅用於安裝，不會被儲存。 |
| 可用連接埠 | **80、443 以及 60000 以上的所有連接埠**必須為可用狀態。安裝程式絕不會停止或變更已經在執行的服務；它會回報被佔用的連接埠並停止執行。 |
| IPv6 | 位於 `2000::/3` 內介於 **/32 與 /64** 之間的公開前綴，可供主機用作對外流量來源，透過**路由**傳遞至主機，或**透過**帶有 NDP 代理的 on-link 傳遞（見下方）。 |
| 網路 | 客戶連接至節點的IPv4 port 80（HTTP proxy）、port 443（SOCKS5）與port 60001-65535（每個固定IP對應一個port）。節點沒有憑證，因此沒有HTTPS proxy。流量僅透過IPv6送出，且只送往具有IPv6位址的目的地。節點會透過HTTPS從控制面板拉取設定。 |
| 面板伺服器上的節點軟體 | 節點守護程序（daemon）及其網路指令碼隨附於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>`）。 |


## 準備基礎設施 {#prepare-the-infrastructure}

### VPN 節點 {#vpn-node-1}

1. **佈建主機**，安裝支援的 Linux 並設定您想要出售的公開 IPv4 位址（可設定於網路介面上或路由至主機）。
2. **若您販售路由網段**，請規劃在新增節點時將其輸入為**Extra subnet**。Agent會安裝路由`local <block> dev lo`，使主機接收該網段中每個位址的流量，隨後回報找到的位址。Agent也會讀取主機的實際路由表，絕不販售或佔用**閘道**位址：若該網段包含主機其中一條路由的下一躍點（例如直連網段的路由器位址），Agent僅會為周圍的網段部分安裝`local`路由，並將閘道回報給控制面板，而控制面板會將該位址排除在位址池及所有分配之外。當額外子網路變更或Agent停止時，它會移除已安裝的路由。
3. **開啟防火牆。**在公開位址上允許輸入 TCP 與 UDP **65001-65535**，以及輸出至面板的 HTTPS。
4. **選用：每個 IP 的位元組計數器。**Conntrack 會計（`net.netfilter.nf_conntrack_acct = 1`）可讓監控角色計算每個 IP 的位元組數。面板可透過向代理程式傳送 `acct` 指令來開啟此功能，該指令亦會寫入 `/etc/sysctl.d/99-cmp-agent.conf`。VPN 角色本身不需要此功能。
5. **從節點檢查面板：**

   ```bash
   curl -fsS -o /dev/null -w '%{http_code}\n' https://cloud.example.com/install.sh
   ```

### IPv6 代理節點 {#ipv6-proxy-node-1}

IPv6 前綴可以透過兩種方式之一到達節點。安裝程式會以真實的對外連線測試這兩種方式，並保留可行的方案。

| 類型 | 含意 | 您設定的內容 |
|---|---|---|
| **路由** | 您的上游將前綴（例如 /48 或 /56）路由**至節點自身的地址**。外發封包可以使用前綴中的任何地址作為來源，且回覆會返回該節點。 | 請向您的提供商索取一個下一個躍點為該節點的路由前綴。節點上無需額外設定：代理服務使用透明通訊 SOCKET、固定的策略路由表以及 `nft`。 |
| **On-link** | /64 位於與節點相同的 LAN 上。回覆唯有在節點針對使用中的每個地址回應鄰居探索時才能運作（**NDP proxy**）。 | 該服務僅在該介面上設定 `net.ipv6.conf.<if>.accept_ra=2`、`forwarding=1` 與 `proxy_ndp=1`，會記住舊的值、在停止時還原它們，並封鎖該池地址的轉發，以便節點不會成為該池的路由器。 |

檢查運作方式：節點在 6 秒內嘗試從候選前綴的隨機地址對公共 IPv6 地址（連接埠 443）建立 TCP 連線。候選者為介面上前綴為 /64 或更短的全域地址，以及 /16 與 /64 之間的 `local`、`unreachable` 或 `blackhole` 類型路由。如果其中一個隨機 /64 運作正常，則短於 /64 的前綴會被接受為**路由**。

::: warning 切勿重複使用相同前綴
前綴不得與其他節點的前綴重疊，且不得大於面板自身 IPv6 池中已有的前綴。面板池**內部**的 /64 是允許的。重疊會在安裝結果中回報為「assign range … (node …)」，並且會略過該前綴。
:::

節點自行套用的限制：客戶無法從池地址傳送郵件（連接埠 25、465、587、2525），且精靈自身的 IPv4 流量僅限於回覆以及面板和 DNS。

## 在 NexCMP 中連線 {#connect-in-nexcmp}

### VPN 節點 {#vpn-node-2}

1. 在 **System › Admin › License & updates** 上，將 **VPN** 切換為開啟。請參閱 [Modules](https://nexcmp.com/zh-tw/docs/infrastructure/modules/)。

      ![帶有 VPN 與 IPv6 Proxy 開關的模組卡片](https://nexcmp.com/zh-tw/docs/images/infrastructure/vpn-proxy-nodes-01-modules.webp)

2. 開啟 **Infrastructure › VPN & Proxy nodes › Agents & external nodes**。您有兩種方法可以新增節點。

   **a. 透過 SSH 安裝。** 點擊 **+ Add server (SSH)** 並填入：

   | 欄位 | 範例值 |
   |---|---|
   | 伺服器 IPv4 地址 | `192.0.2.50` |
   | SSH 連埠 | `22` |
   | SSH 使用者 | `root` |
   | SSH 密碼 | `XXXX` |
   | 顯示名稱 | `node-ny-1`（留空：以 IP 命名） |
   | 伺服器角色 | 外部 VPN / 代理節點 |
   | 區域指派 | 依 GeoIP 自動（建立 / 指派區域），或現有區域 |
   | 額外子網域（選填） | 留空以自動掃描介面，或輸入路由網段如 `203.0.113.0/24` |
   | 安裝後啟用銷售 | 啟用以將所有偵測到的位址標記為可銷售 |

   按一下 **Connect & install**。面板會透過 SSH 連線、使用一次性票證在節點上執行單行安裝程式，並顯示節點名稱、GeoIP 位置與偵測到的範圍。

      ![透過 SSH 新增節點對話方塊，帶有範例伺服器地址與角色](https://nexcmp.com/zh-tw/docs/images/infrastructure/vpn-proxy-nodes-02-add-server-ssh.webp)

   **b. 手動安裝。**按一下**Generate manual install token**。此指令只會顯示**一次**；請複製並在節點上執行：

   ```bash
   curl -fsSL https://cloud.example.com/install.sh | sudo sh -s -- --token XXXX --name node-ny-1
   ```

   使用Token安裝僅會註冊機器以供監控：基於安全考量，控制面板不允許持有共用Token的機器自行指派VPN角色（在指令中加入`--roles vpn`無效）。機器出現在清單中後，請開啟該機器並手動為其新增**VPN**角色。透過SSH安裝（選項a）則會從一開始就賦予節點VPN角色。產生新Token會使舊Token失效；已註冊的主機會繼續正常運作，因為它們使用的是自己的金鑰。

      ![顯示一次性憑證指令的安裝指令對話方塊](https://nexcmp.com/zh-tw/docs/images/infrastructure/vpn-proxy-nodes-03-install-command.webp)

   安裝程式的運作方式：從面板下載 `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`。

3. 首次心跳後，節點會出現在列表中。其國家/地區透過 GeoIP 偵測（先進行節點自身的查詢，接著是面板的資料庫）；若該國家/地區尚無對應的 **zone**，則會建立並設為公開，主機上找到的位址則會成為 pool 範圍。
4. 開啟 **Infrastructure › VPN & Proxy nodes › VPN IP pools** 以檢視範圍、其 zone 與節點，並可變更每個範圍的 zone、節點或 **Sellable** 開關。**Enable range** 允許新訂單使用其可用 IP；**Disable range** 僅停止新配置，已租用的 IP 仍會繼續運作。

      ![VPN IP 池與節點回報的範圍](https://nexcmp.com/zh-tw/docs/images/infrastructure/vpn-proxy-nodes-04-vpn-pool.webp)

5. 開啟**Services › VPN**，設定價格表並啟用銷售。**Subscriptions**上的**Sell VPN**開關與License & updates中的VPN模組開關相同。
6. **選用：重新命名服務。**在**Settings › Branding**中，**VPN service display name**可變更VPN服務在客戶選單、訂單頁面、詳細資訊頁面與部署清單中的名稱（例如`IPv4 Proxy`、`Datacenter Proxy`或`Static Residential Proxy`；最多40個字元，留空則保留`VPN`）。此設定僅變更標籤：路由、資料與API均不會改變。

### IPv6 代理節點 {#ipv6-proxy-node-2}

1. 在 **System › Admin › License & updates** 上，將 **IPv6 Proxy** 切換為開啟。
2. 開啟 **Infrastructure › VPN & Proxy nodes › IPv6 Proxy nodes** 並點擊 **Add node (SSH)**。輸入節點的 IPv4 位址、SSH 連接埠、使用者、密碼、選填的名稱以及 **Reason**（將記錄至稽核日誌），然後點擊 **Install**。

      ![新增 IPv6 節點對話方塊，帶有範例地址與原因](https://nexcmp.com/zh-tw/docs/images/infrastructure/vpn-proxy-nodes-05-proxy6-add-node.webp)

3. 隨後面板會依序執行：檢查機器與連接埠、複製背景程式、網路腳本、服務單元與節點專屬的環境檔案（節點權杖與密碼簽章金鑰）、執行可用前綴的 **probe**、將前綴記錄至 pool 中，並啟動服務，同時等待最多 90 秒以接收首次回報。**Install log** 會顯示每個步驟。
4. 新節點會以 **off** 狀態建立其 zone（根據節點 IPv4 的 GeoIP）。請至 **Infrastructure › Datacenter › Zone** 將 zone 開啟，以便客戶進行選擇。
5. 設定每個節點的總 **Mbps cap**（每個方向 10 到 100000）。在 **Services › IPv6 Proxy** 下設定價目表並啟用銷售。
6. 檢查**IPv6 Proxy › Settings › Panel URL for nodes**。節點會連線至此位址（`https://host`，無路徑）拉取設定並回報狀態。留空表示`https://<your license domain>`。該主機位址必須直接指向控制面板，使節點自身的IPv4能原封不動地連線至面板。

::: tip 輪換排程
客戶可設定30至600秒的自動輪換間隔。在NexCMP中，控制面板負責執行該排程（以及每小時清理連線記錄）；節點會在大約5秒內採用新位址。
:::

### 節點回報方式 {#how-a-node-reports}

| | VPN node (`cmp-agent`) | IPv6 代理節點 |
|---|---|---|
| 註冊 | 透過 HTTPS 的一次性 ticket 或權杖，之後使用其專屬金鑰 | 一次性 SSH 安裝，之後使用節點權杖 |
| 心跳 | 每 **5 秒**（僅監控代理程式為 10 秒）；面板可設定 3 至 300 秒。發生故障後會以 5 秒為單位逐步退避，最高至 60 秒 | 節點大約每 60 秒發送一次回報並拉取設定 |
| 顯示為線上 | 最近 **60 秒**內有心跳 | 最近 **120 秒**內 **alive**，否則為 **missed heartbeat** |
| 設定變更 | 在下一次心跳時套用 | 大約 5 秒內套用 |
| 更新 | 面板可以發送帶有新版本、URL 與 SHA-256 的 `upgrade` 指令 | 從節點列重新安裝 |

### VPN節點上的流量配額 {#data-allowance-on-a-vpn-node}

自NexCMP **1.5.1**起，VPN節點agent會在每次活動訊號回報所承載的流量，控制台會將其計入當期方案用量。客戶端（Overview與Bandwidth分頁）以及您（VPN › Subscriptions、Used欄位與節點列）看到的數值完全相同。

- **中斷服務。**當方案用完當期的GB配額時，控制面板會停止向Agent發送該方案的端點，進而拒絕新連線並關閉已建立的連線。切斷會在一次活動訊號內生效，因此方案可能會略微超出上限。設有Unlimited層級的方案絕不會被中斷。
- **恢復服務。**客戶加購頻寬或進入下一計費週期後，方案會在一次活動訊號內恢復提供服務。
- **未計量。**代理程式尚未回傳用量的節點（例如較舊版本的代理程式）會顯示為**Not measured**，且其方案絕不會因GB用量而中斷。
- **更新agent。**節點上請使用agent **1.5.1**。較舊版本的agent仍會計量，但可能會遺失失敗心跳、已停止端點或重啟時的位元組數，且在方案被切斷時不會關閉已開啟的連線。請從節點列（Reinstall）或使用`upgrade`指令更新。
- 計量是以通過Proxy的有效負載為準，因此會略低於實體線路上的傳輸位元組數（約1 %）。

### 已淘汰的VPN附加項目 {#retired-vpn-add-ons}

新訂單不再提供High IP Reputation、High Concurrency與High Priority Network。現有訂閱仍會保留其加購項目選擇，但續約金額會扣除已淘汰項目的費用。已付款的週期概不退款。該調整會採用此加購項目目前的目錄價格；若您曾變更該價格或刪除該加購項目，請在下次續約前檢查訂閱的續約金額。

## 驗證 {#verify}

1. 節點列為線上狀態。對於 VPN 節點，**Agents & external nodes** 會顯示其 zone、國家/地區、角色與偵測到的範圍。
2. **VPN IP pools** 會列出具有可用 IP 的範圍；zone 的詳細資料頁面會顯示 VPN 基礎架構。
3. 訂購測試 VPN 或 proxy 方案。客戶將獲得端點 `ip:port`、使用者名稱與密碼；透過其連線並檢查可見的公開 IP 是否為節點的 IP（例如 `curl --proxy socks5h://USER:XXXX@IP:PORT https://ifconfig.me`）。
4. 在 IPv6 節點的主機上執行：

   ```bash
   systemctl is-active <node service>
   nft list tables | grep proxy6
   ss -ltn | grep -E ':(80|443|6[0-9]{4})\b'
   ```

## 限制與注意事項 {#limits-and-notes}

- Windows 主機可以執行監控代理程式，但無法執行 VPN 角色。
- VPN方案的流量配額（每期GB數）：自NexCMP 1.5.1起，控制台會加總VPN節點agent回報的流量，並在當期GB數用盡時切斷該方案的Proxy（請參閱下方的「Data allowance on a VPN node」）。IPv6 Proxy方案沒有GB配額限制；其依方案限制Mbps速率。
- VPN方案的IPv4位址不會輪替。當客戶回報IP被列入黑名單時，由您或經銷商核准從同一區域更換。只有IPv6 Proxy會輪替。
- 每個心跳最多回報 64 個範圍。
- 每個售出的IP會使用一組三個VPN端點。透過65001-65535連接埠，每個IP僅提供有限數量的端點（178個連接埠組）；面板會略過先前使用過的連接埠組。
- 僅在沒有任何方案擁有該IP時，才允許刪除IPv6代理節點。這會移除節點的位址區段與權杖；主機上的軟體不會被解除安裝。
- 轉售同時承載您自身虛擬機的位址區段是可行的：VPN僅使用65001-65535連接埠，因此它會與其他服務共用該IP。

## 故障排除 {#troubleshooting}

| 症狀 | 原因 | 修正方式 |
|---|---|---|
| 「enrollment failed (invalid token or server unreachable)」（註冊失敗：權杖無效或伺服器無法連線） | 權杖錯誤或已被使用，或者無法連線至面板 | 產生新的權杖，或重新嘗試SSH安裝。 |
| 「file signature mismatch - STOP」（檔案簽章不符 - 已停止） | 下載的代理程式與發布的SHA-256不符 | 檢查面板的`/dl/`資料夾，並確保下載過程中沒有任何東西被覆寫。 |
| 「this installer is for Linux only」/「architecture … is not supported yet」（此安裝程式僅適用於 Linux / 架構 … 尚不支援） | Windows，或非x86_64的架構（發行版本僅隨附x86_64的agent） | 請使用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`手動檢查存取權限。 |
| 「architecture … not supported (x86_64 only)」（架構 … 不支援，僅限 x86_64） | 節點不是x86_64架構 | 請使用x86_64主機。 |
| 「node missing command: …」（節點缺少指令：…） | 未安裝`nft`、`ip`、`ss`、`sysctl`、`systemctl`或`useradd` | 請安裝這些套件，然後再次執行安裝。 |
| 「ports in use by another service on node: … — 80、443、60001-65535 必須是空閒的」 | 80、443或60000以上的連接埠已被佔用 | 移動其他服務；安裝程式不會自動停止它。 |
| 「no IPv6 prefix with Internet access found from node (real egress probe failed)」（找不到節點具有網際網路存取的 IPv6 前綴：實際連線探測失敗） | 沒有路由字首、無法使用NDP代理，或沒有對外的IPv6 | 檢查字首是否已路由至節點、介面是否具備IPv6連線能力，且沒有任何東西過濾對外流量。 |
| 「all detected ranges already belong to another node」（所有偵測到的範圍皆已屬於其他節點） | 該字首已被其他節點使用 | 從其他節點移除它，或選擇其他字首。 |
| 安裝結束時顯示「no initial report received from node」 | 服務已啟動，但在90秒內未連線至控制面板 | 檢查提供給節點的面板URL以及節點至該處的HTTPS路徑；請參閱**Install log**。 |
| 節點列顯示**missed heartbeat** | 120秒內無回報 | 檢查節點上的服務、其時鐘以及至面板的路徑。 |
| 客戶未看到IPv6位置 | 區域已關閉 | 在**Zone**下啟用區域。 |
