Nœuds VPN et proxy IPv6
Où trouver dans l'admin : Infrastructure › VPN & Proxy nodes › Agents & external nodes (
/agents), VPN IP pools (/vpn/pool), IPv6 Proxy nodes (/vpn/proxy6/nodes). Les services eux-mêmes se trouvent sous Services › VPN et Services › IPv6 Proxy. Les deux modules sont activés dans System › Admin › License & updates.
Description
NexCMP vend des accès VPN et proxy sortant depuis des adresses IP vous appartenant, sur des serveurs que vous exploitez. Il existe deux types de nœuds :
- Nœud VPN. Un petit programme Go,
cmp-agent, s'exécute sur votre hôte Linux. Il détecte les adresses IPv4 publiques de l'hôte, ouvre un écouteur SOCKS5, HTTP et UDP sur chaque adresse vendue, et achemine le trafic depuis la même IP que celle à laquelle le client s'est connecté (même sortie IP). Il transmet des rapports au panneau toutes les quelques secondes. - Nœud proxy IPv6. Un service proxy qui attribue aux clients des adresses provenant d'un préfixe IPv6 routé vers l'hôte. Le panneau l'installe pour vous via SSH.
Utilisez-les pour revendre des adresses IP propres dans les pays où vous possédez des serveurs.
Prérequis
Nœud VPN
| Élément | Prérequis |
|---|---|
| Système d'exploitation | Une distribution Linux avec systemd et un noyau 4.15 ou plus récent (prise en charge du free-bind IPv6). Le binaire de l'agent fourni est uniquement x86_64 (amd64). |
| Privilèges | root, pour l'installation. Le service conserve uniquement CAP_NET_ADMIN, CAP_NET_RAW et CAP_DAC_READ_SEARCH. |
| Outils | curl ou wget, et sha256sum (l'installateur refuse de continuer sans vérifier le fichier). |
| Adresses publiques | Adresses IPv4 publiques assignées sur une interface de l'hôte (une /32 chacune), ou un préfixe routé vers l'hôte que vous ajoutez en tant que sous-réseau supplémentaire (IPv4 /16 à /32, IPv6 /48 à /128). Les plages privées, CGNAT et de documentation sont ignorées. |
| Réseau, entrant | Les clients se connectent à chaque IP publique vendue sur les ports 65001-65535 (TCP pour SOCKS5 et HTTP, UDP pour l'association UDP). Chaque point de terminaison utilise un ensemble de trois ports consécutifs. |
| Réseau, sortant | HTTPS (443) vers le domaine de votre panneau. L'agent interroge aussi son pays sur ip-api.com (HTTP) et ipinfo.io (HTTPS), avec une limite de 3.5 secondes. |
| Messagerie | Les connexions sortantes vers le port 25 sont toujours bloquées ; il n'existe aucun paramètre pour l'ouvrir. |
| Docker, VPN et interfaces virtuelles | Les interfaces nommées docker*, veth*, br-*, cni*, flannel*, virbr*, cali*, tun*, tap*, wg* et tailscale* ne fournissent pas d'adresses. |
| Dépend de | Le module VPN, une zone (créée automatiquement à partir du pays de l'hôte) et le panneau NexCMP accessible en HTTPS. |
Nœud proxy IPv6
| Élément | Prérequis |
|---|---|
| Système d'exploitation | Linux avec systemd sur x86_64. Les commandes systemctl, nft, ip, ss, sysctl et useradd doivent exister, sinon l'installation s'arrête en indiquant la commande manquante. |
| Accès pour l'installation | Une adresse IPv4 publique (les adresses privées, de boucle locale et CGNAT sont refusées), le port SSH, un compte avec des droits root ou sudo et son mot de passe. Le mot de passe est utilisé uniquement pour l'installation et n'est pas stocké. |
| Ports libres | 80, 443 et tous les ports supérieurs à 60000 doivent être libres. L'installateur n'arrête ni ne modifie jamais les services déjà en cours d'exécution ; il signale les ports occupés et s'arrête. |
| IPv6 | Un préfixe public compris entre /32 et /64 dans 2000::/3 que l'hôte peut utiliser comme source pour le trafic sortant, livré soit routé vers l'hôte, soit on-link avec proxy NDP (voir ci-dessous). |
| Réseau | Les clients se connectent à l'IPv4 du nœud sur le port 80 (proxy HTTP), le port 443 (SOCKS5) et les ports 60001-65535 (un port par IP statique). Le nœud n'a pas de certificat, il n'y a donc pas de proxy HTTPS. Le trafic sort uniquement en IPv6, et seulement vers les destinations disposant d'une adresse IPv6. Le nœud récupère sa configuration depuis le panneau via HTTPS. |
| Logiciel de nœud sur le serveur du panneau | Le démon du nœud et son script réseau sont inclus dans le package de publication de NexCMP. Le panneau les copie depuis son dossier d'installation (/opt/nexcmp/releases/<version>/bin, ou /opt/nexcmp/bin sur un build personnalisé) vers chaque nœud pendant l'installation. Le serveur du panneau a également besoin de sshpass et d'un client SSH ; le programme d'installation ajoute sshpass, et sur un serveur installé avant la 1.4.2, vous l'ajoutez avec sudo apt-get install -y sshpass. |
| Dépend de | Le module IPv6 Proxy, et l'URL du panneau que les nœuds rappellent (IPv6 Proxy › Settings › Panel URL for nodes, par défaut https://<your license domain>). |
Préparer l'infrastructure
Nœud VPN
Provisionnez l'hôte avec un Linux pris en charge et les adresses IPv4 publiques que vous souhaitez vendre, soit configurées sur l'interface réseau, soit routées vers l'hôte.
Si vous vendez un bloc routé, prévoyez de le saisir en tant qu'Extra subnet lors de l'ajout du nœud. L'agent installe une route
local <block> dev loafin que l'hôte accepte le trafic pour chaque adresse du bloc, puis signale les adresses trouvées. L'agent lit également la table de routage réelle de l'hôte et ne vend ni ne capture jamais une adresse de passerelle : si le bloc contient le saut suivant de l'une des routes de l'hôte (par exemple l'adresse du routeur d'un bloc on-link), l'agent installe des routeslocaluniquement pour les parties du bloc qui l'entourent, signale la passerelle au panneau, et le panneau exclut cette adresse du pool et de chaque allocation. Il supprime les routes installées lorsque le sous-réseau supplémentaire change ou que l'agent s'arrête.Ouvrez le pare-feu. Autorisez le trafic TCP et UDP entrant 65001-65535 sur les adresses publiques, et HTTPS sortant vers le panneau.
Facultatif : compteurs d'octets par IP. La comptabilité Conntrack (
net.netfilter.nf_conntrack_acct = 1) permet au rôle de surveillance de compter les octets par IP. Le panneau peut l'activer en envoyant une commandeacctà l'agent, ce qui écrit également/etc/sysctl.d/99-cmp-agent.conf. Le rôle VPN en lui-même n'en a pas besoin.Vérifiez le panneau depuis le nœud :
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://cloud.example.com/install.sh
Nœud proxy IPv6
Un préfixe IPv6 atteint le nœud de l'une de ces deux manières. L'installateur teste les deux avec de vraies connexions sortantes et conserve ce qui fonctionne.
| Type | Signification | Configuration |
|---|---|---|
| Routé | Votre opérateur achemine un préfixe (par exemple /48 ou /56) vers la propre adresse du nœud. Les paquets sortants peuvent utiliser n'importe quelle adresse du préfixe comme source et les réponses reviennent au nœud. | Demandez à votre fournisseur un préfixe routé dont le saut suivant est le nœud. Rien de plus sur le nœud : le service proxy utilise des sockets transparents, une table de routage par politique fixe et nft. |
| On-link | Le /64 se trouve sur le même réseau local que le nœud. Les réponses ne fonctionnent que si le nœud répond aux requêtes de découverte de voisins pour chaque adresse utilisée (proxy NDP). | Le service définit, sur cette interface uniquement, net.ipv6.conf.<if>.accept_ra=2, forwarding=1 et proxy_ndp=1, mémorise les anciennes valeurs, les restaure à l'arrêt et bloque le transfert des adresses du pool afin que le nœud ne devienne pas un routeur pour le pool. |
Fonctionnement de la vérification : le nœud tente une connexion TCP vers une adresse IPv6 publique (port 443) à partir d'une adresse aléatoire du préfixe candidat, dans un délai de 6 secondes. Les candidats sont des adresses globales sur les interfaces avec un préfixe de /64 ou plus court, ainsi que des routes de type local, unreachable ou blackhole entre /16 et /64. Un préfixe plus court que /64 est accepté comme routé si un /64 aléatoire à l'intérieur fonctionne.
Ne pas utiliser le même préfixe deux fois
Un préfixe ne doit pas chevaucher le préfixe d'un autre nœud et ne doit pas être plus large qu'un préfixe appartenant déjà au propre pool IPv6 du panneau. Un /64 à l'intérieur du pool du panneau est autorisé. Les chevauchements sont signalés comme « assign range … (node …) » dans le résultat de l'installation et le préfixe est ignoré.
Restrictions appliquées par le nœud lui-même : les clients ne peuvent pas envoyer d'e-mails (ports 25, 465, 587, 2525) à partir des adresses du pool, et le trafic IPv4 du démon est limité aux réponses ainsi qu'au panneau et au DNS.
Connecter dans NexCMP
Nœud VPN
Sur System › Admin › License & updates, activez VPN. Voir Modules.

Ouvrez Infrastructure › VPN & Proxy nodes › Agents & external nodes. Vous disposez de deux méthodes pour ajouter un nœud.
a. Installation via SSH. Cliquez sur + Add server (SSH) et remplissez :
Champ Exemple de valeur Adresse IPv4 du serveur 192.0.2.50Port SSH 22Utilisateur SSH rootMot de passe SSH XXXXNom d'affichage node-ny-1(vide : nommé d'après l'IP)Rôle du serveur External VPN / Proxy Node Attribution de zone Automatique par GeoIP (créer / assigner une zone) ou zone existante Sous-réseau supplémentaire (optionnel) laisser vide pour analyser automatiquement les interfaces ou spécifier un bloc routé tel que 203.0.113.0/24Activer la vente après l'installation activer pour marquer chaque adresse détectée comme vendue Cliquez sur Connect & install. Le panneau se connecte en SSH, exécute l'installateur en une ligne sur le nœud avec un jeton à usage unique, et affiche le nom du nœud, son emplacement GeoIP et les plages détectées.

b. Installation manuelle. Cliquez sur Generate manual install token. La commande s'affiche une seule fois ; copiez-la et exécutez-la sur le nœud :
bashcurl -fsSL https://cloud.example.com/install.sh | sudo sh -s -- --token XXXX --name node-ny-1Une installation par jeton inscrit la machine uniquement pour la surveillance : par sécurité, le panneau ne permet pas à une machine détenant le jeton partagé de s'attribuer le rôle VPN (l'ajout de
--roles vpnà la commande est sans effet). Une fois la machine visible dans la liste, ouvrez-la et attribuez-lui vous-même le rôle VPN. L'installation via SSH (option a) attribue d'emblée le rôle VPN au nœud. Un nouveau jeton annule l'ancien ; les hôtes déjà inscrits continuent de fonctionner car ils utilisent leur propre clé.
Ce que fait l'installateur : il télécharge
cmp-agent-linux-amd64depuis votre panneau, en vérifie le SHA-256, l'installe vers/usr/local/bin/cmp-agent, s'enrôle avec le jeton, écrit/etc/cmp-agent/agent.jsonet démarre le service systemdcmp-agent. Pour le désinstaller :curl -fsSL https://cloud.example.com/install.sh | sudo sh -s -- --uninstall.Après le premier signal de vie, le nœud apparaît dans la liste. Son pays est détecté par GeoIP (d'abord via la recherche propre du nœud, puis par la base de données du panneau). Une zone pour ce pays est créée et rendue publique si elle n'existe pas, et les adresses trouvées sur l'hôte deviennent des plages de pools.
Ouvrez Infrastructure › VPN & Proxy nodes › VPN IP pools pour voir les plages, leur zone et leur nœud, ainsi que pour modifier la zone, le nœud ou le commutateur Sellable de chaque plage. Enable range permet aux nouvelles commandes d'utiliser ses IP libres ; Disable range arrête seulement les nouvelles allocations, les IP louées continuent de fonctionner.

Ouvrez Services › VPN, définissez la grille tarifaire et activez les ventes. L'interrupteur Sell VPN sur Subscriptions est identique au module VPN dans License & updates.
Facultatif : renommer le service. Dans Settings › Branding, VPN service display name modifie la façon dont le service VPN est nommé dans le menu client, la page de commande, la page de détail et la liste de déploiement (par exemple
IPv4 Proxy,Datacenter ProxyouStatic Residential Proxy; jusqu'à 40 caractères, vide conserveVPN). Cela ne modifie que les libellés : les routes, les données et l'API restent inchangées.
Nœud proxy IPv6
Sur System › Admin › License & updates, activez IPv6 Proxy.
Ouvrez Infrastructure › VPN & Proxy nodes › IPv6 Proxy nodes et cliquez sur Add node (SSH). Saisissez l'adresse IPv4 du nœud, le port SSH, l'utilisateur, le mot de passe, un nom facultatif et un Reason (qui est consigné dans le journal d'audit), puis cliquez sur Install.

Le panneau effectue ensuite, dans l'ordre : vérifie la machine et les ports, copie le démon, le script réseau, l'unité de service et un fichier d'environnement spécifique au nœud (un jeton de nœud et une clé de signature de mot de passe), exécute la sonde (probe) pour trouver les préfixes utilisables, enregistre les préfixes dans le pool, démarre le service et attend jusqu'à 90 secondes pour le premier rapport. Install log affiche chaque étape.
Un nouveau nœud crée sa zone à l'état off (à partir du GeoIP de l'IPv4 du nœud). Activez la zone sous Infrastructure › Datacenter › Zone pour que les clients puissent la choisir.
Définissez une Mbps cap totale par nœud (de 10 à 100000 par direction). Sous Services › IPv6 Proxy, définissez la liste de prix et activez les ventes.
Vérifiez IPv6 Proxy › Settings › Panel URL for nodes. Les nœuds appellent cette adresse (
https://host, sans chemin) pour récupérer leur configuration et envoyer des rapports. Laisser vide équivaut àhttps://<your license domain>. Il doit s'agir d'un hôte dont l'adresse pointe directement vers le panneau, afin que l'IPv4 propre au nœud l'atteigne sans modification.
Calendrier de rotation
Les clients peuvent définir un intervalle de rotation automatique de 30 à 600 secondes. Dans NexCMP, le panneau exécute ce calendrier (ainsi que le nettoyage horaire des journaux de connexion) ; les nœuds adoptent une nouvelle adresse en 5 secondes environ.
Fonctionnement des rapports d'un nœud
Nœud VPN (cmp-agent) | Nœud proxy IPv6 | |
|---|---|---|
| Enregistrement | Ticket ou jeton unique via HTTPS, puis sa propre clé | Installation SSH unique, puis jeton de nœud |
| Signal de vie | Toutes les 5 secondes (10 s pour un agent de surveillance uniquement) ; le panneau peut définir une valeur de 3 à 300 s. Après un échec, il observe un recul par paliers de 5 s jusqu'à 60 s | Le nœud envoie un rapport toutes les 60 secondes environ et récupère la configuration |
| Affiché comme en ligne | Un signal de vie au cours des 60 dernières secondes | alive au cours des 120 dernières secondes, sinon missed heartbeat |
| Modification de configuration | Appliquée au prochain signal de vie | Appliquée en 5 secondes environ |
| Mises à jour | Le panneau peut envoyer une commande upgrade avec la nouvelle version, l'URL et le code SHA-256 | Réinstallation depuis la ligne du nœud |
Quota de données sur un nœud VPN
Depuis NexCMP 1.5.1, l'agent du nœud VPN transmet le trafic acheminé à chaque heartbeat, et le panneau l'ajoute à la consommation du forfait pour la période en cours. La même valeur est présentée au client (onglets Overview et Bandwidth) ainsi qu'à vous (VPN › Subscriptions, colonne Used, et ligne du nœud).
- Interruption. Lorsqu'un forfait a consommé ses Go pour la période, le panneau cesse d'envoyer les points de terminaison de ce forfait à l'agent, de sorte que les nouvelles connexions sont refusées et les connexions actives sont fermées. La coupure intervient dans l'intervalle d'un heartbeat, un forfait peut donc dépasser légèrement sa limite. Les forfaits avec un palier Unlimited ne sont jamais coupés.
- Rétablissement. Le forfait est de nouveau desservi dans l'intervalle d'un heartbeat après l'achat de bande passante supplémentaire par le client ou dès le début de la période suivante.
- Non mesuré. Un nœud dont l'agent n'a pas transmis de consommation (par exemple un agent plus ancien) affiche Not measured, et ses plans ne sont jamais interrompus en raison des Go.
- Mettez à jour l'agent. Utilisez l'agent 1.5.1 sur les nœuds. Les versions antérieures de l'agent sont toujours comptabilisées, mais elles peuvent perdre les octets d'un heartbeat ayant échoué, d'un endpoint arrêté ou d'un redémarrage, et elles ne ferment pas les connexions ouvertes lorsqu'un forfait est coupé. Mettez à jour depuis la ligne du nœud (Reinstall) ou avec la commande
upgrade. - Le décompte porte sur la charge utile transitant par le proxy, il est donc légèrement inférieur (environ 1 %) aux octets circulant sur le réseau.
Options VPN retirées
High IP Reputation, High Concurrency et High Priority Network ne sont plus proposées pour les nouvelles commandes. Les abonnements existants conservent leurs options sélectionnées, mais les frais retirés sont supprimés de leurs montants de renouvellement. Les périodes déjà payées ne font l'objet d'aucun remboursement. L'ajustement utilise le prix catalogue actuel de l'option ; si vous avez modifié ce prix ou supprimé l'option, vérifiez le montant de renouvellement de l'abonnement avant sa prochaine échéance.
Vérification
La ligne du nœud est en ligne. Pour un nœud VPN, Agents & external nodes affiche sa zone, son pays, son rôle et les plages détectées.
VPN IP pools liste les plages avec des IP libres ; la page de détail de la zone affiche l'infrastructure VPN.
Commandez un plan VPN ou proxy de test. Le client obtient un point de terminaison
ip:port, un nom d'utilisateur et un mot de passe ; connectez-vous par ce biais et vérifiez que l'adresse IP publique visible est bien celle du nœud (par exemplecurl --proxy socks5h://USER:XXXX@IP:PORT https://ifconfig.me).Sur un nœud IPv6, exécutez sur l'hôte :
bashsystemctl is-active <node service> nft list tables | grep proxy6 ss -ltn | grep -E ':(80|443|6[0-9]{4})\b'
Limites et remarques
- Les hôtes Windows peuvent exécuter l'agent de surveillance mais pas le rôle VPN.
- Quota de données (Go par période) d'un forfait VPN : à partir de NexCMP 1.5.1, le panel additionne le trafic rapporté par l'agent du nœud VPN et coupe les proxys du forfait lorsque les Go de la période sont épuisés (voir « Quota de données sur un nœud VPN » ci-dessous). Les forfaits IPv6 Proxy n'ont pas de quota en Go ; ils limitent la vitesse en Mbps par forfait.
- Les adresses IPv4 d'un forfait VPN ne font pas l'objet d'une rotation. Un client signale une IP sur liste noire ; vous ou le revendeur approuvez un remplacement depuis la même zone. Seul IPv6 Proxy effectue une rotation.
- Au maximum 64 plages sont signalées par signal de vie.
- Un ensemble de points de terminaison VPN utilise trois ports par IP vendue. Avec les ports 65001-65535, chaque IP dessert un nombre limité de points de terminaison (178 ensembles de ports) ; le panneau ignore les ensembles déjà utilisés auparavant.
- La suppression d'un nœud proxy IPv6 n'est autorisée que lorsqu'aucune offre n'y détient d'IP. Cela supprime les plages et le jeton du nœud ; le logiciel sur l'hôte n'est pas désinstallé.
- Il est possible de revendre une plage qui héberge également vos propres machines virtuelles : le VPN n'utilise que les ports 65001-65535, il partage donc l'IP avec d'autres services.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| "échec de l'enrôlement (jeton invalide ou serveur inaccessible)" | Jeton erroné ou déjà utilisé, ou panneau inaccessible | Générez un nouveau jeton ou réessayez l'installation SSH. |
| "incompatibilité de signature de fichier - ARRÊT" | L'agent téléchargé diffère du SHA-256 publié | Vérifiez le dossier /dl/ du panneau et assurez-vous qu'aucun élément ne réécrit le téléchargement en cours de route. |
| "cet installateur est réservé à Linux" / "l'architecture … n'est pas encore prise en charge" | Windows, ou une architecture autre que x86_64 (la version fournit l'agent pour x86_64 uniquement) | Utilisez un hôte Linux x86_64. |
| Le nœud n'apparaît pas | Le nœud ne peut pas joindre le panneau via HTTPS | Testez curl https://<domain>/install.sh depuis le nœud ; vérifiez le DNS et le pare-feu. |
| Le nœud apparaît avec le mauvais pays | Les recherches de pays ont échoué, la base de données d'adresses du panneau a donc été utilisée | Autorisez l'accès sortant vers ip-api.com et ipinfo.io, ou choisissez explicitement la zone dans le formulaire SSH. |
| Aucune plage détectée | Aucune IPv4 publique sur une interface non virtuelle | Ajoutez une adresse publique ou saisissez le bloc routé en tant que Extra subnet. |
| Le VPN fonctionne, le trafic sort d'une autre IP | L'IP vendue n'est pas assignée ou routée vers l'hôte | Assurez-vous que l'IP se trouve sur une interface ou est couverte par local … dev lo. |
| "le serveur du panel ne dispose pas de sshpass" | L'hôte du panel ne peut pas se connecter aux nœuds avec un mot de passe | Exécutez sudo apt-get install -y sshpass openssh-client sur le serveur du panel, puis réinstallez le nœud. |
| "not found in the installed package" lors de l'installation d'un nœud IPv6 | Le panel est antérieur à la version 1.4.2, ou il s'agit d'un build personnalisé sans les fichiers du nœud | Mettez à jour NexCMP vers la version 1.4.2 ou ultérieure ; pour un build personnalisé, utilisez build.sh, qui intègre désormais brandy-proxy6d et brandy-proxy6-net. |
| "SSH: …" au début d'une installation IPv6, ou "SSH to internal/loopback addresses is not allowed" | Port, utilisateur ou mot de passe erroné, SSH bloqué, ou adresse privée | Utilisez l'IPv4 publique du nœud et vérifiez l'accès manuellement avec ssh -p PORT USER@IP. |
| "architecture … non prise en charge (x86_64 uniquement)" | Le nœud n'est pas en x86_64 | Utilisez un hôte x86_64. |
| "commande manquante sur le nœud : …" | nft, ip, ss, sysctl, systemctl ou useradd non installé | Installez les paquets, puis relancez l'installation. |
| "ports utilisés par un autre service sur le nœud : … — 80, 443, 60001-65535 doivent être libres" | Le port 80, 443 ou un port supérieur à 60000 est occupé | Déplacez l'autre service ; l'installateur ne l'arrête pas. |
| "aucun préfixe IPv6 avec accès Internet trouvé sur le nœud (échec de la sonde de sortie réelle)" | Aucun préfixe routé, proxy NDP impossible ou absence d'IPv6 sortant | Vérifiez que le préfixe est routé vers le nœud, que l'interface dispose d'une connectivité IPv6 et qu'aucun élément ne filtre le trafic sortant. |
| "toutes les plages détectées appartiennent déjà à un autre nœud" | Le préfixe est déjà utilisé par un autre nœud | Retirez-le de l'autre nœud ou choisissez un autre préfixe. |
| L'installation se termine par "no initial report received from node" | Le service a démarré mais n'a pas joint le panneau en l'espace de 90 secondes | Vérifiez l'URL du panneau fournie aux nœuds et le chemin HTTPS du nœud vers celui-ci ; consultez le Install log. |
| La ligne du nœud affiche missed heartbeat | Aucun rapport pendant 120 secondes | Vérifiez le service sur le nœud, son horloge et son chemin vers le panneau. |
| Les clients ne voient aucun emplacement IPv6 | La zone est désactivée | Activez la zone sous Zone. |