Avertissement : Ce guide a été traduit par un système automatique. A tout moment, en cas de doute, vous devez consulter la version anglaise en changeant la langue en « EN » et en ouvrant une nouvelle fenêtre.
Les problèmes courants exigent parfois des solutions inhabituelles
Occasionnellement, l'une ou l'autre application (non mise à jour/paresseuse) peut ne pas supporter l'utilisation directe lorsque le point de départ est une adresse IPv6, parce qu'elles sont conçues pour utiliser une adresse formatée IPv4. Malgré cela, elles sont généralement tolérantes à la plage IPv4 que vous utilisez, vous permettant de spécifier des IPv4 internes (qui sont dans la plage 10.x.x.x/8, 172.16.x.x/12 - 172.32.x.x/12, ou 192.168.x.x/16), comme vous l'auriez déjà fait sur n'importe quel autre VPS NAT acheté, puisqu'ils ne font pas de distinction entre les adresses.
La seule différence entre C-Servers et les autres fournisseurs de VPS NAT est que, alors que les autres fournissent par défaut une adresse interne NAT IPv4 (qui n'est pas publique, seulement privée), nous préférons fournir une adresse publique IPv6 à double fonction (qui envoie/reçoit également des requêtes IPv4) et ensuite traduire + router en interne votre requête vers/depuis l'IPv4 du serveur principal.
En raison du fait que les templates SolusVM 2 et les images cloud-init ne prévoient pas d'adresse IPv4 interne alternative, et de la position de C-Servers en tant qu'entreprise privilégiant l'IPv6, nous ne fournissons pas de telles adresses par défaut. Cependant, dans ce guide, nous vous montrerons comment avoir une connectivité IPv4 sur des applications qui demandent une adresse IPv4 uniquement. Pour ce faire, il suffit de suivre un processus en trois étapes :
- désactiver cloud-init sur votre VPS ;
- ajouter l'adresse IPv4 interne au système ;
- créer un socat interne entre cette adresse IPv4 et IPv6 pour une connectivité complète.
Les paquets qui arrivent dans votre SPV en provenance d'IPv6 sont déjà complets, la redirection est entièrement interne au niveau du socket TCP/IP, et cette solution est utilisée depuis un certain temps déjà.
Comment avoir une connectivité IPv4 interne native sur MultiVPS
Tout d'abord, désactivons les changements de cloud-init pour votre VPS. Il s'agit simplement d'un exemple ; vous pouvez vouloir éditer manuellement une zone différente pour désactiver cloud-init ou même éditer directement la section réseau de votre distro Linux.
Connectez-vous en SSH ou en VNC à votre serveur et créez un fichier pour empêcher cloud-init de s'exécuter lors des démarrages suivants :
sudo touch /etc/cloud/cloud-init.disabled
Si cela ne fonctionne pas, vous pouvez éditer directement votre fichier pour éviter toute recréation d'interface qui effacerait ce que nous sommes sur le point de faire. Comme cloudinit (parfois formaté comme cloud-init) est simplement un script exécuté par SolusVM 2 à la fin de chaque redémarrage, vous pouvez simplement faire
which cloudinit
ou
which cloud-init
afin de voir où se trouve votre script sur le disque - parfois il est chargé à partir de la section du fichier de configuration du réseau, parfois c'est un script complet à part entière. Une autre solution consiste à vérifier directement le journal du système Linux. Il suffit d'écrire, sur votre ligne de commande
journalctl
et utilisez la touche PgDn / Page Down de votre clavier pour faire défiler vers le bas jusqu'au dernier journal de démarrage que vous avez fait sur votre VPS - qui est exactement l'écran que vous voyez lors de chaque démarrage de Linux. Faites attention à l'heure et au jour indiqués sur le côté gauche de chaque journal pour suivre les actions et les emplacements du démarrage du nuage.
Pour plus d'assistance, vous pouvez toujours utiliser Google ou une IA lors de la configuration.
Ajoutez une adresse IPv4 statique à votre interface réseau. Il s'agit simplement d'un exemple pour Enterprise Linux et les distributions basées sur Debian, veuillez vérifier le processus spécifique nécessaire pour le système d'exploitation et la version que vous avez choisis Éditer le fichier de configuration du réseau (l'emplacement dépend de votre distribution) :
Pour Ubuntu 22.04/24.04 (avec Netplan) :
sudo nano /etc/netplan/01-netcfg.yaml
Dans ce fichier, ne supprimez rien d'autre, et ajoutez (encore une fois, c'est juste un exemple, vérifiez le processus pour votre système d'exploitation) :
network :
version : 2
ethernets :
eth0 : # Votre nom d'interface peut être différent
adresses :
- 10.0.0.10/24 # Ajoutez l'entrée et remplacez éventuellement par votre plage IPv4 interne et votre sous-réseau (blocs 172.16.x.x/12, 192.168.x.x/16).
Ctrl+O pour sauvegarder, Enter pour confirmer, Ctrl+X pour quitter l'éditeur Nano.
Pour Enterprise Linux (RHEL/CentOS/Tencent/AlmaLinux/Rocky Linux, exemple pour RHEL 9/AlmaLinux 9), sur une ligne de commande normale via SSH ou VNC, écrivez :
nmcli con mod eno1 ipv4.addresses 192.168.1.100/24 [vous pouvez insérer n'importe quelle autre plage IPv4 privée, assurez-vous que le sous-réseau et l'IP sont corrects]
nmcli con mod eno1 ipv4.gateway 192.168.1.1 [à l'intérieur de la même plage IPv4 privée choisie, toujours la première adresse de celle-ci]
nmcli con mod eno1 ipv4.dns 8.8.8.8 [utiliser n'importe quel DNS IPv4 normal]
nmcli con mod eno1 ipv4.method manual [n'insérez PAS auto, il s'agit d'une adresse non DHCP].
Pour établir la connexion, il suffit d'insérer
nmcli con up eno1
Installez socat s'il n'est pas déjà installé :
sudo apt update && sudo apt install socat -y # Pour Debian/Ubuntu, OU
sudo dnf install socat # Pour les distros basées sur RHEL (l'exemple fonctionne pour les distros basées sur RHEL8/RHEL9)
Et activez le support des redirections IPv4 et IPv6 dans sysctl :
echo « net.ipv4.ip_forward=1 » | sudo tee -a /etc/sysctl.conf
echo « net.ipv6.conf.all.forwarding=1 » | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Créez un service systemd pour exécuter socat et transférer le trafic de votre IPv4 interne vers l'IPv6 :
sudo nano /etc/systemd/system/ipv4-to-ipv6-routing.service
Ajoutez le contenu suivant :
[Unit]
Description=IPv4 to Service de routage Socat IPv6
Après=réseau.cible
[Service]
Type=simple
ExecStart=/usr/bin/socat TCP4-LISTEN:PORT,bind=10.0.0.10,reuseaddr,su=nobody,fork TCP6 :[VOTRE_ADRESSE_IPV6]:PORT
Restart=toujours
RestartSec=5
[Installer]
WantedBy=multi-user.target
Remplacer :
10.0.0.10 par votre adresse IPv4 interne souhaitée
[VOTRE_ADRESSE_IPV6] par l'adresse IPv6 publique fournie pour votre VPS
PORT par un numéro de port que vous souhaitez transférer
Activez et démarrez le service :
sudo systemctl enable ipv4-to-ipv6-proxy.service
sudo systemctl start ipv4-to-ipv6-proxy.service
Ce service démarrera automatiquement à chaque démarrage.
Si vous avez besoin que plusieurs ports soient transférés, vous pouvez soit créer plusieurs fichiers de service, soit modifier la commande socat pour gérer plusieurs ports.
Socat fonctionne en TCP/UDP, de IPv4 à IPv6, et de IPv6 à IPv4. Voici quelques exemples de commandes :
socat UDP4-LISTEN:10683,bind=10.0.0.10,reuseaddr,su=nobody,fork UDP6 :[2a00::212:4b00:615:a1f7]:10683 « dit d'écouter UDP au port 10683 sur la connexion IPv4 interne, les routes vers une adresse IPv6 publique à l'adresse donnée et au même port.
socat TCP6-LISTEN:10022,bind=[2a00::212:4b00:615:a1f7],reuseaddr,su=nobody,fork TCP4:10.0.0.10:10022 « dit d'écouter TCP sous IPv6 au port 10022 sur l'adresse IPv6 publique donnée, les routes vers la pile IP interne du VPS IPv4 au même port.
Avertissement
Cette solution est persistante et restera en place à chaque redémarrage.
Cependant, si cela échoue pour une raison quelconque (par exemple, des mises à jour qui modifient systemd, socat ou les fonctions réseau), vous devrez peut-être créer un script à exécuter à chaque démarrage - crontab ou des outils de script similaires peuvent être intéressants pour cela - de telle sorte que l'IPv4 soit réinséré à chaque démarrage de votre SPV. Si cela est nécessaire, il peut être judicieux de faire de même avec socat.
Solus VM 2 dispose de cloud-init, qui fournit généralement les informations réseau à chaque démarrage, en effaçant les informations précédentes - à moins qu'un utilisateur ne le désactive et automatise le processus d'inclusion d'une IP au démarrage de son VPS (qui, puisqu'il provient de l'espace utilisateur, n'entre jamais en collision avec cloud-init).
Si tout va mal, il suffit d'utiliser notre service de sauvegarde GoBack de C-Servers pour restaurer votre VPS à un point antérieur dans le temps, ou simplement réinstaller le VPS en utilisant l'un de nos modèles de système d'exploitation, à partir de zéro.
Une chose est sûre
Cette solution résoudra la plupart des problèmes avec les applications IPv4-only.