Image

Base de connaissances → Redirection de port d'IPv4 vers IPv6 sous Linux Debian 12

[Serveurs virtuels]
Date de publication: 06.06.2025

Si vous devez configurer le transfert de port d’un port IPv4 vers un autre port IPv6, nous utiliserons socat.

Il est supposé que IPv6 est déjà configuré et fonctionne. Vous pouvez le vérifier avec les commandes ping6 <domaine> sous Linux ou ping -6 <domaine> sous Windows.

Dans de rares cas, le ping peut fonctionner, mais le trafic ne passe pas réellement. Vous pouvez vérifier la connectivité plus en détail en utilisant la commande curl --ipv6 -k -I https://ipv6.google.com pour Linux et Windows (si curl n’est pas disponible dans l’invite de commandes, ouvrez PowerShell).

Supposons que nous ayons pour tâche de rediriger le port 443 d’IPv4 vers le port 4445 sur IPv6.

1. Installation de socat

apt install socat

2. Transfert de port

socat TCP6-LISTEN:4445,fork,reuseaddr TCP4:127.0.0.1:443

Assurez-vous que le port 443 est accessible localement, ou changez-le pour une IP externe.

telnet 127.0.0.1 443

2.1 Vérification

telnet <ipv6> 4445

3. Création d’un service

Maintenant, créons un fichier de service pour que le transfert redémarre automatiquement après un redémarrage, sans avoir à le lancer manuellement. Nous veillerons également à ce que le service nginx démarre avant notre commande.

nano /etc/systemd/system/socat-portforward.service
[Unit]
Description=Transfert de port IPv6 vers IPv4 avec Socat
After=network.target
After=nginx.service
Requires=nginx.service

[Service]
ExecStart=/usr/bin/socat TCP6-LISTEN:4445,fork,reuseaddr TCP4:127.0.0.1:443
Restart=always
RestartSec=3
User=root
Group=root
KillMode=process

[Install]
WantedBy=multi-user.target

3.1 Arrêt du service

Appuyez sur Ctrl + C ou, si vous l’avez lancé avec & :

killall socat

3.2 Lancement en tant que service

systemctl daemon-reload
systemctl enable --now socat-portforward
systemctl status socat-portforward

3.3 Séquence de démarrage

Nous avons ajouté des lignes à la section [Unit] pour garantir la bonne séquence de démarrage :

After=nginx.service
Requires=nginx.service

C’est terminé ! Cette commande peut être utilisée pour configurer le transfert de ports dans diverses configurations.





Aucun commentaire pour l'instant