Utilisation du numéro de port dans le fichier hôte Windows

Après avoir installé TeamViewer, j’ai changé le port wampserver à 8080, l’adresse est donc http://localhost:8080.

Pour le fichier hôte situé dans C: \ WINDOWS \ system32 \ drivers \ etc \, j’ai également apporté la modification ci-dessous

AVANT
127.0.0.1 www.example.com

APRÈS
127.0.0.1:8080 www.example.com

Lorsque j’accède à www.example.com, je n’ai pas directement access à mon serveur wamps, comment puis-je le réparer?

Le fichier hosts sert uniquement à la résolution des noms d’hôte (sous Windows et sur les systèmes de type Unix). Vous ne pouvez pas y placer de numéros de port et vous ne pouvez pas faire ce que vous voulez avec une configuration générique au niveau du système d’exploitation – le navigateur est ce qui sélectionne le port à choisir.

Donc, utilisez des signets ou quelque chose comme ça.
(Certains logiciels de pare-feu / de routage peuvent autoriser la redirection des ports sortants, mais cela ne semble pas être une option attrayante pour cela.)

Vous pouvez obtenir ce que vous souhaitez en modifiant le fichier hosts via l’application Fiddler 2 .

Suivez ces étapes:

  1. Installez Fiddler2
  2. Accédez au menu Fiddler2: – Outils > HÔTES .. (Cliquez pour sélectionner)
  3. Ajoutez une ligne comme celle-ci: –

    localhost:8080 www.mydomainname.com

  4. Enregistrez le fichier et vérifiez www.mydomainname.com dans le navigateur.

J’ai réussi à atteindre cet objective en utilisant l’outil de réseau Windows inclus , netsh .

Comme le souligne Mat: Le fichier hosts ne concerne que la résolution des noms d’hôte, alors une combinaison des deux a fait l’affaire.

Exemple


Vue d’ensemble

 example.app:80 | <--Link by Hosts File +--> 127.65.43.21:80 | <--Link by netsh Utility +--> localhost:8081 

actes

  • J’ai démarré mon serveur sur localhost:8081
  • Ajout de mon “DNS local” dans le fichier hosts en tant que nouvelle ligne
    • 127.65.43.21 example.app
      • Toute adresse gratuite dans le réseau 127.0.0.0/8 peut être utilisée.
      • Note: Je suppose que 127.65.43.21:80 n’est pas occupé par un autre service.
      • Vous pouvez vérifier avec netstat -a -n -p TCP | grep "LISTENING" netstat -a -n -p TCP | grep "LISTENING"
  • ajout de la configuration réseau suivante avec l’utilitaire de commande netsh
    • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
  • Je peux maintenant accéder au serveur à http://example.app

Remarques:
– Ces commandes / modifications de fichiers doivent être exécutées avec des droits d’administrateur

– netsh portproxy a besoin des librairies ipv6 pour utiliser uniquement v4tov4, généralement elles seront également incluses par défaut, sinon installez-les en utilisant la commande suivante: 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 avec la commande suivante:

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21


Liens aux ressources:

  • Utiliser Netsh
  • Commandes Netsh pour l’interface IP
  • Commandes Netsh pour Interface Portproxy
  • Exemple de transfert de port Windows

Fiddler2 -> Règles -> Règles personnalisées

puis trouvez la fonction OnBeforeRequest sur put dans le script suivant à la fin:

 if (oSession.HostnameIs("mysite.com")){ oSession.host="localhost:39901"; } 

-Vous pouvez utiliser n’importe quelle adresse gratuite dans le réseau 127.0.0.0/8, dans mon cas, cela était nécessaire pour le flask de python et c’est ce que j’ai fait: ajoutez cette ligne dans le fichier hosts (vous pouvez trouver qu’il s’agit de Windows sous: C: \ Windows \ System32 \ drivers \ etc):

 127.0.0.5 flask.dev 
  • Assurez-vous que le port est le port par défaut “80” dans mon cas, c’est ce que app.run("127.0.0.5","80") flask de python: app.run("127.0.0.5","80")

  • maintenant, lancez votre code et parcourez flask.dev

Si ce qui se passe est que vous avez un autre serveur en cours d’exécution sur localhost et que vous voulez donner à ce nouveau serveur un nom d’hôte local différent comme http://teamviewer/

Je pense que ce que vous recherchez réellement, c’est la fonctionnalité Virtual Hosts. J’utilise Apache donc je ne sais pas comment les autres démons Web supportent cela. Peut-être s’appelle-t-il Alias. Voici la documentation Apache:

Exemples d’Apache Virtual Hosts

Le moyen le plus simple consiste à utiliser Ergo comme proxy inverse: https://github.com/cristianoliveira/ergo

Vous définissez vos services et son adresse IP: PORT et ergo la route pour vous :).

Vous pouvez obtenir la même chose en utilisant nginx ou apache mais vous devrez les configurer.

Utiliser netsh avec connectaddress = 127.0.0.1 ne fonctionnait pas pour moi.

Même si je cherchais partout sur Internet, je ne trouvais pas la solution qui résout ce problème, à savoir utiliser connectaddress = 127.xxx (c’est-à-dire toute adresse ipv4 de 127., mais pas 127.0.0.1), car cela semble renvoyer à localhost. le même mais sans la ressortingction, de sorte que le bouclage fonctionne dans netsh.

Vous devez disposer d’un serveur HTTP NGNIX ou Apache en tant que serveur proxy pour transférer les requêtes http vers l’application appropriée -> qui écoute un port particulier (ou le faire avec CNAME qui fournit la société d’hébergement). C’est la solution la plus puissante et c’est juste un moyen très simple de continuer à append de nouveaux sous-domaines ou d’append de nouveaux domaines automatiquement lorsque les enregistrements DNS sont dirigés vers le serveur.