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 與代理存取服務。共有兩種節點:
- VPN 節點。 一個執行於您 Linux 主機上的小型 Go 程式
cmp-agent。它會自動偵測主機上的公開 IPv4 位址,在每個銷售的位址上開啟 SOCKS5、HTTP 與 UDP 監聽器,並從客戶連線的相同 IP 發出流量(同 IP 出口)。它會每隔幾秒向控制台回報狀態。 - IPv6 代理節點。 一個代理服務,可提供客戶來自您路由至主機之 IPv6 字首的位址。控制台會透過 SSH 為您安裝。
您可以使用它們在您擁有伺服器的國家/地區轉售乾淨的 IP 位址。
需求
VPN 節點
| 項目 | 需求 |
|---|---|
| 作業系統 | 具備 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 代理節點
| 項目 | 需求 |
|---|---|
| 作業系統 | 執行於 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>)。 |
準備基礎設施
VPN 節點
佈建主機,安裝支援的 Linux 並設定您想要出售的公開 IPv4 位址(可設定於網路介面上或路由至主機)。
若您販售路由網段,請規劃在新增節點時將其輸入為Extra subnet。Agent會安裝路由
local <block> dev lo,使主機接收該網段中每個位址的流量,隨後回報找到的位址。Agent也會讀取主機的實際路由表,絕不販售或佔用閘道位址:若該網段包含主機其中一條路由的下一躍點(例如直連網段的路由器位址),Agent僅會為周圍的網段部分安裝local路由,並將閘道回報給控制面板,而控制面板會將該位址排除在位址池及所有分配之外。當額外子網路變更或Agent停止時,它會移除已安裝的路由。**開啟防火牆。**在公開位址上允許輸入 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 前綴可以透過兩種方式之一到達節點。安裝程式會以真實的對外連線測試這兩種方式,並保留可行的方案。
| 類型 | 含意 | 您設定的內容 |
|---|---|---|
| 路由 | 您的上游將前綴(例如 /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 的前綴會被接受為路由。
切勿重複使用相同前綴
前綴不得與其他節點的前綴重疊,且不得大於面板自身 IPv6 池中已有的前綴。面板池內部的 /64 是允許的。重疊會在安裝結果中回報為「assign range … (node …)」,並且會略過該前綴。
節點自行套用的限制:客戶無法從池地址傳送郵件(連接埠 25、465、587、2525),且精靈自身的 IPv4 流量僅限於回覆以及面板和 DNS。
在 NexCMP 中連線
VPN 節點
在 System › Admin › License & updates 上,將 VPN 切換為開啟。請參閱 Modules。

開啟 Infrastructure › VPN & Proxy nodes › Agents & external nodes。您有兩種方法可以新增節點。
a. 透過 SSH 安裝。 點擊 + Add server (SSH) 並填入:
欄位 範例值 伺服器 IPv4 地址 192.0.2.50SSH 連埠 22SSH 使用者 rootSSH 密碼 XXXX顯示名稱 node-ny-1(留空:以 IP 命名)伺服器角色 外部 VPN / 代理節點 區域指派 依 GeoIP 自動(建立 / 指派區域),或現有區域 額外子網域(選填) 留空以自動掃描介面,或輸入路由網段如 203.0.113.0/24安裝後啟用銷售 啟用以將所有偵測到的位址標記為可銷售 按一下 Connect & install。面板會透過 SSH 連線、使用一次性票證在節點上執行單行安裝程式,並顯示節點名稱、GeoIP 位置與偵測到的範圍。

b. 手動安裝。按一下Generate manual install token。此指令只會顯示一次;請複製並在節點上執行:
bashcurl -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失效;已註冊的主機會繼續正常運作,因為它們使用的是自己的金鑰。
安裝程式的運作方式:從面板下載
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 偵測(先進行節點自身的查詢,接著是面板的資料庫);若該國家/地區尚無對應的 zone,則會建立並設為公開,主機上找到的位址則會成為 pool 範圍。
開啟 Infrastructure › VPN & Proxy nodes › VPN IP pools 以檢視範圍、其 zone 與節點,並可變更每個範圍的 zone、節點或 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、將前綴記錄至 pool 中,並啟動服務,同時等待最多 90 秒以接收首次回報。Install log 會顯示每個步驟。
新節點會以 off 狀態建立其 zone(根據節點 IPv4 的 GeoIP)。請至 Infrastructure › Datacenter › Zone 將 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 的一次性 ticket 或權杖,之後使用其專屬金鑰 | 一次性 SSH 安裝,之後使用節點權杖 |
| 心跳 | 每 5 秒(僅監控代理程式為 10 秒);面板可設定 3 至 300 秒。發生故障後會以 5 秒為單位逐步退避,最高至 60 秒 | 節點大約每 60 秒發送一次回報並拉取設定 |
| 顯示為線上 | 最近 60 秒內有心跳 | 最近 120 秒內 alive,否則為 missed heartbeat |
| 設定變更 | 在下一次心跳時套用 | 大約 5 秒內套用 |
| 更新 | 面板可以發送帶有新版本、URL 與 SHA-256 的 upgrade 指令 | 從節點列重新安裝 |
VPN節點上的流量配額
自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附加項目
新訂單不再提供High IP Reputation、High Concurrency與High Priority Network。現有訂閱仍會保留其加購項目選擇,但續約金額會扣除已淘汰項目的費用。已付款的週期概不退款。該調整會採用此加購項目目前的目錄價格;若您曾變更該價格或刪除該加購項目,請在下次續約前檢查訂閱的續約金額。
驗證
節點列為線上狀態。對於 VPN 節點,Agents & external nodes 會顯示其 zone、國家/地區、角色與偵測到的範圍。
VPN IP pools 會列出具有可用 IP 的範圍;zone 的詳細資料頁面會顯示 VPN 基礎架構。
訂購測試 VPN 或 proxy 方案。客戶將獲得端點
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節點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。
故障排除
| 症狀 | 原因 | 修正方式 |
|---|---|---|
| 「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下啟用區域。 |