Je souhaite spécifier des noms d'hôte avec deux ports différents dans le fichier Windows hosts
.
Y a-t-il un moyen de le faire? Ou n'est-ce pas autorisé par Windows lui-même?
Je perds mon temps à chercher la solution depuis 8 heures.
Est-il possible de spécifier des ports dans le fichier hôte, hosts
? Exemple: 127.0.0.1:80
et 127.0.0.1:9211
Vous ne pouvez pas associer un numéro de port à un nom d'hôte associé à une adresse IP dans le fichier hosts. Vous pouvez y parvenir avec Fiddler en utilisant FiddlerScript:
if (oSession.HostnameIs("somesite.com")){
oSession.bypassGateway = true;
oSession["x-overrideHost"] = "1.2.3.4:8080";
}
Utilisez simplement des adresses IP sans ports. Exemple:
192.168.2.50 example.com
Ensuite, pour accéder à 192.168.2.50:5555 depuis votre navigateur (ou un autre programme):
http://example.com:5555/
(Le fichier hosts
peut être trouvé à C:\Windows\System32\drivers\etc\hosts
.)
hosts
concerne uniquement la résolution du nom d'hôte.<hostname>:<port>
, par défaut sur le port 80
127.0.0.1
aka localhost
(définie dans le fichier hosts) .pour éviter toute collision entre d’autres serveurs existants ou en cours d’exécution, l’application vous permet généralement de changer le port, mais pas l’adresse IP.
2a. Si vous pouvez changer l'adresse IP du serveur en une autre dans l'espace d'adressage réservé en boucle127.0.0.0/8
, alors vous ne tenterait probablement pas de définir des ports dans le fichier hosts.
Vous pouvez contourner ce problème en utilisant Windows inclus Outil de mise en réseau netsh
en tant que proxy de port.
example.app
| <--browser defaults to port 80
+--> example.app:80
| <--Hostname resolution by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> 127.0.0.1:8081
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
peut être utilisée.127.65.43.21:80
n'est pas occupé par un autre service.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Notes:
- Ces modifications de commandes/fichier doivent être exécutées avec droits d'administrateur
- netsh portproxy a besoin des bibliothèques ipv6 même uniquement pour utiliser v4tov4. Généralement, ils seront également inclus par défaut. Sinon, installez-les en procédant comme suit: commande: netsh interface ipv6 install
Vous pouvez voir l'entrée que vous avez ajoutée avec la commande:
netsh interface portproxy show v4tov4
Vous pouvez supprimer l'entrée à l'aide de la commande suivante:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Remarque: cette réponse est une duplication de ma réponse décrite dans cette question/réponse similaire sur stackoverflow.