J'essaie d'utiliser la commande NETSH PORTPROXY pour transférer les paquets envoyés à mon XP PC (IP 192.168.0.10
) sur le port 8001 vers le port 80 (j'ai un serveur XAMPP Apache écoutant le port 80).
J'ai délivré ce qui suit:
netsh interface portproxy add v4tov4 listenport=8001 listenaddress=192.168.0.10 connectport=80 connectaddress=192.168.0.10
Tout afficher confirme que tout est correctement configuré:
netsh interface portproxy show all
Listen on IPv4: Connect to IPv4:
Address Port Address Port
--------------- ---------- --------------- ----------
192.168.0.10 8001 192.168.0.10 80
Cependant, je ne parviens pas à accéder au site Web Apache à partir de http://localhost:8001
. Je peux accéder via le port direct à http://localhost
comme indiqué ci-dessous.
De plus, j'ai également essayé ce qui suit: 1. Accédez au site Web Apache à partir d'un PC distant en utilisant le lien: http://192.168.0.10:8001
. Pare-feu désactivé. 2. Modification de l’adresse d’écoute et de la connexion de l’adresse à 127.0.0.1
.
Sans plus d'informations, je ne trouve pas de moyen de résoudre le problème. Existe-t-il un moyen de déboguer NETSH PORTPROXY?
Remarque: au fait, si vous vous demandez pourquoi je fais cela, je veux en fait mapper les connexions client MySQL distantes d'un port personnalisé au port 3306 du serveur MySQL par défaut.
J'ai réussi à le faire fonctionner en émettant:
netsh interface ipv6 install
De plus, pour mon objectif, il n'est pas nécessaire de définir listenaddress et mieux de définir connectaddress = 127.0.0.1, par ex.
netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1
J'ai le problème avec toi. Je l'ai résolu tout à l'heure. Il existe un Service Windows nommé "IP Helper" qui fournit les connexions du tunnel de fonctions. Vous devez vous assurer qu'il a été démarré.
Vous devez d'abord exécuter Command.exe en tant qu'administrateur, en cliquant avec le bouton droit sur l'icône d'invite de commandes et en choisissant Exécuter en tant qu'administrateur. Vous devrez confirmer.
Collez votre commande netsh
dans la fenêtre command.exe et appuyez sur Entrée.
Si aucun message d'erreur ne s'affiche, la commande a fonctionné.
Dans votre navigateur Web, accédez à http://your-up:8001
pour voir ça marche.
Le journal des événements Windows peut contenir des informations pour vous aider à trouver la cause d'un échec.
Si le proxy de port de netsh
ne fonctionne pas comme prévu, vous devez vérifier les éléments suivants, de préférence dans cet ordre:
Cela peut sembler trivial, mais juste au cas où, prenez le temps de revoir votre configuration avant d'aller plus loin.
À partir d'une invite de commande ou d'une invite PowerShell, exécutez la commande suivante:
netsh interface portproxy show all
Le résultat devrait ressembler à ceci:
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
24.12.12.24 3306 192.168.0.100 3306
24.12.12.24 8080 192.168.0.100 80
Examinez attentivement ces paramètres. Assurez-vous que vous pouvez en effet vous connecter aux adresses sur le côté droit de cette liste, à partir de l'ordinateur local. Par exemple, pouvez-vous ouvrir localement un navigateur Web et atteindre 192.168.0.100:80
? Si le protocole n'est pas HTTP, utilisez telnet: telnet 192.168.0.100 3306
(voir ici pour savoir comment installer le client Telnet sous Windows).
Alors, les valeurs du côté gauche sont-elles correctes? L'adresse IP est-elle valide pour votre machine? Est-ce le numéro de port auquel vous essayez de vous connecter, depuis la machine externe?
Sur les dernières versions de Windows, le proxy de port de netsh
est géré par un service Windows nommé "IP Helper" ou "iphlpsvc". Le proxy ne fonctionnera évidemment pas si ce service est arrêté. J'ai également fait face à des situations qui se sont avérées être résolues en redémarrant ce service.
Pour ce faire dans les dernières versions de Windows:
Sur les versions précédentes de Windows, recherchez Services dans Outils d'administration , à l'intérieur le panneau de configuration.
La prise en charge du protocole IPv6 est requise pour activer le proxy de port de netsh
, y compris pour les proxys IPv4 à IPv4 (voir l'article de support de Microsoft - ici ).
À partir d'une invite de commande ou d'une invite PowerShell, exécutez la commande suivante:
netsh interface ipv6 install
Un pare-feu local peut potentiellement bloquer le port avant même qu'il n'atteigne le service d'assistance IP. Pour faire valider cette hypothèse, désactivez temporairement tout pare-feu local (y compris le pare-feu natif de Windows), puis retestez. Si cela fonctionne, ajoutez simplement une exclusion de port à votre configuration de pare-feu.