Comment puis-je me connecter à cet localhost depuis un autre ordinateur sur le même réseau?

Je travaille actuellement sur un projet et j’aimerais le tester sur deux ordinateurs portables à la maison, où un ordinateur portable se connecte à l’hôte local de l’autre. J’utilise XAMPP. Comment puis-je faire cela?

C’est certainement possible. Nous allons prendre un cas général avec Apache ici.

Disons que vous êtes un grand fan de Symfony2 et que vous souhaitez accéder à votre site Web symfony à l’ http://symfony.local/ partir de 4 ordinateurs différents (le principal hébergeant votre site Web, ainsi qu’un Mac, un Windows et un Linux). distro connecté (sans fil ou non) à l’ordinateur principal.

Esquisse Générale:

entrer la description de l'image ici


1 Configurez un hôte virtuel :

Vous devez d’abord configurer un hôte virtuel dans votre fichier Apache httpd-vhosts.conf . Sur XAMP , vous pouvez trouver ce fichier ici: C:\xampp\apache\conf\extra\httpd-vhosts.conf . Sur MAMP , vous pouvez trouver ce fichier ici: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf . Cette étape prépare le serveur Web sur votre ordinateur pour gérer les requêtes symfony.local . Vous devez fournir le nom de l’hôte virtuel ainsi que le dossier racine / principal de votre site Web. Pour ce faire, ajoutez la ligne suivante à la fin de ce fichier. Vous devez changer le DocumentRoot à l’endroit où se trouve votre dossier principal. J’ai pris ici /Applications/MAMP/htdocs/Symfony/ tant que racine de mon site Web.

  DocumentRoot "/Applications/MAMP/htdocs/Symfony/" ServerName symfony.local  

2 Configurez votre fichier hosts :

Pour que le client (votre navigateur dans ce cas) comprenne ce symfony.local signifie vraiment symfony.local , vous devez éditer le fichier hosts sur votre ordinateur. Chaque fois que vous tapez une URL dans votre navigateur, votre ordinateur essaie de comprendre ce que cela signifie! symfony.local ne signifie rien pour un ordinateur. Donc, il va essayer de résoudre le nom symfony.local en une adresse IP. Cela se fera en regardant d’abord dans le fichier hosts sur votre ordinateur pour voir s’il peut faire correspondre une adresse IP à ce que vous avez tapé dans la barre d’adresse. Si ce n’est pas le cas, les serveurs DNS seront interrogés. L’astuce consiste à append les éléments suivants à votre fichier hosts.

  • Sur MAC , ce fichier est dans /private/etc/hosts ;
  • Sur LINUX , ce fichier se trouve dans /etc/hosts ;
  • Sur WINDOWS , ce fichier se trouve dans \Windows\system32\private\etc\hosts ;
  • Sur Windows 7 , ce fichier se trouve dans \Windows\system32\drivers\etc\hosts ;
  • Sous Windows 10 , ce fichier se trouve dans \Windows\system32\drivers\etc\hosts ;

Fichier Hosts

 ## # Host Database # localhost is used to configure the loopback interface ## #... 127.0.0.1 symfony.local 

A partir de maintenant, chaque fois que vous tapez symfony.local sur cet ordinateur, votre ordinateur utilisera l’interface de bouclage pour se connecter à symfony.local. Il comprendra que vous voulez travailler sur localhost (127.0.0.1).

3 Accédez à symfony.local depuis un autre ordinateur :

Nous arrivons enfin à votre question principale qui est:

Comment puis-je maintenant accéder à mon site Web via un autre ordinateur?

Eh bien, c’est maintenant facile! Nous avons juste besoin de dire aux autres ordinateurs comment ils pourraient trouver symfony.local ! Comment faisons-nous cela?

3a Obtenez l’adresse IP de l’ordinateur hébergeant le site Web :

Nous devons d’abord connaître l’adresse IP sur l’ordinateur qui héberge le site Web (celui sur lequel nous travaillons depuis le tout début). Dans le terminal, sur MAC et LINUX, tapez ifconfig |grep inet , sur WINDOWS tapez ipconfig . Supposons que l’adresse IP de cet ordinateur est 192.168.1.5 .

3b Modifiez le fichier d’hôtes sur l’ordinateur à partir duquel vous essayez d’accéder au site Web. :

Encore une fois, sur MAC , ce fichier se trouve dans /private/etc/hosts ; sur LINUX , dans /etc/hosts ; et sur WINDOWS , dans \Windows\system32\private\etc\hosts (si vous utilisez WINDOWS 7 , ce fichier se trouve dans \Windows\system32\drivers\etc\hosts ). L’astuce consiste maintenant à utiliser l’adresse IP de l’ordinateur auquel nous essayons d’accéder / de parler:

 ## # Host Database # localhost is used to configure the loopback interface ## #... 192.168.1.5 symfony.local 

4 Enfin, profitez des résultats dans votre navigateur

Vous pouvez maintenant aller dans votre navigateur et tapez http://symfony.local pour voir votre site Web sur différents ordinateurs! Notez que vous pouvez appliquer la même stratégie si vous êtes un utilisateur OSX pour tester votre site Web sur Internet Explorer via Virtual Box (si vous ne souhaitez pas utiliser un ordinateur Windows). Ceci est magnifiquement expliqué dans Crafting Windows / IE Test Environment sur OSX .


Vous pouvez également accéder à votre localhost à partir d’appareils mobiles

Vous pourriez vous demander comment accéder à votre site Web localhost depuis un appareil mobile. Dans certains cas, vous ne pourrez pas modifier le fichier hosts (iPhone, iPad,…) sur votre appareil (sauf jailbreaking).

Eh bien, la solution consiste alors à installer un serveur proxy sur la machine hébergeant le site Web et à vous connecter à ce proxy à partir de votre iphone. C’est en fait très bien expliqué dans les articles suivants et n’est pas si long à mettre en place:

Sur Mac, je recommanderais: Tester un site Web Mac OS X en utilisant un nom d’hôte local sur un périphérique mobile : utiliser SquidMan comme proxy. C’est une solution 100% gratuite. Certaines personnes peuvent également utiliser Charles comme serveur proxy, mais il s’agit de 50 $.

Sous Linux, vous pouvez adapter la méthode Mac OS ci-dessus en utilisant Squid comme serveur proxy.

Sous Windows, vous pouvez le faire en utilisant Fiddler . La solution est décrite dans le post suivant: Surveillance du trafic iPhone avec Fiddler


Edit 23/11/2017: Hey je ne veux pas modifier mon fichier Hosts

@Dre. Un moyen possible d’accéder au site Web à partir d’un autre ordinateur en ne modifiant pas le fichier hôte manuellement? disons que j’ai 100 ordinateurs voulaient accéder au site Web

C’est une question intéressante, et comme elle est liée à la question de l’OP, laissez-moi vous aider.

Vous devrez modifier votre réseau pour que chaque machine sache où votre site Web est hébergé. La plupart des routeurs quotidiens ne le font pas . Vous devrez donc exécuter votre propre serveur DNS sur votre réseau.

Imaginons que vous ayez un routeur (192.168.1.1). Ce routeur possède un serveur DHCP et alloue des adresses IP à 100 machines sur le réseau.

Maintenant, disons que vous avez, comme ci-dessus, sur le même réseau, une machine à 192.168.1.5 qui a votre site Web. Nous appellerons cette machine à pompei .

 $ echo $HOSTNAME pompei 

Comme précédemment, cette machine à pompei à 192.168.1.5 exécute un serveur HTTP qui dessert votre site web symfony.local .

Pour que chaque machine sache que symfony.local est hébergé sur pompei, il nous faut maintenant un serveur DNS personnalisé sur le réseau qui sait où symfony.local est hébergé. Les appareils sur le réseau pourront alors résoudre les noms de domaine servis par Pompéi en interne.

3 étapes simples.

Étape 1: serveur DNS

Configurez un serveur DNS sur votre réseau. Avons-le sur Pompéi pour plus de commodité et utilisons quelque chose comme Dnsmasq .

Dnsmasq fournit le redirecteur DNS (Domain Name System) , ….

Nous voulons que Pompéi lance DNSmasq pour gérer les requêtes DNS Hey, pompei, where is symfony.local et répondez Hey, sure think, it is on 192.168.1.5 but don't take my word for it .

Allez-y, installez dnsmasq, le fichier de configuration dnsmasq se trouve généralement dans /etc/dnsmasq.conf selon votre environnement.

J’utilise personnellement no-resolv et google servers server=8.8.8.8 server=8.8.8.4 .

* Remarque: * TOUJOURS redémarrer DNSmasq si vous modifiez le fichier / etc / hosts car aucune modification ne prendra effet.

Étape 2: Pare-feu

Pour fonctionner, Pompéi doit autoriser les paquets «domaine» entrants et sortants qui vont et viennent du port 53. Bien sûr! Ce sont des paquets DNS et si Pompéi ne les permet pas, votre serveur DNS ne peut pas être atteint du tout. Allez-y et ouvrez ce port 53. Sous linux, vous utiliseriez classiquement iptables pour cela.

Partage ce que je suis venu avec mais vous devrez très probablement plonger dans votre pare-feu et bien comprendre tout.

 # # Allow outbound DNS port 53 # iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT iptables -A OUTPUT -p udp --sport 53 -j ACCEPT 

Étape 3: Routeur

Dites à votre routeur que votre serveur DNS est sur 192.168.1.5 maintenant. La plupart du temps, vous pouvez simplement vous connecter à votre routeur et le modifier manuellement très facilement.

Ça y est, quand vous êtes sur une machine et demandez symfony.local , cela demandera à votre serveur DNSsymfony.local est hébergé, et dès qu’il aura reçu sa réponse du serveur DNS, il enverra alors la requête HTTP correcte à pompei sur 192.168.1.5 .

Je vous laisse jouer avec ça et profiter de la balade. Ces 2 étapes sont les lignes direcsortingces principales, vous devrez donc déboguer et passer quelques heures si c’est la première fois que vous le faites. Disons que c’est un réseau un peu plus avancé, il y a le serveur DNS primaire, les serveurs DNS secondaires, etc. Bonne chance!

Si les deux machines sont dans le même groupe de travail, ouvrez cmd.exe sur la machine à laquelle vous souhaitez vous connecter, tapez ipconfig et notez l’adresse IP sur la ligne d’ IPv4 Address .

Ensuite, sur la machine avec laquelle vous souhaitez vous connecter, utilisez http:// + the IP of the target machine .

Ça devrait le faire.

Pour tester les deux ordinateurs portables sur le même réseau sans fil et sur Internet, vous pouvez utiliser un service tel que http://localhost.run/ ou https://ngrok.com/

il se peut que vos pare-feu vous empêchent d’accéder au serveur Web de l’hôte local.
Placez les adresses IP de la sécurité du réseau antivirus de sécurité Internet de votre ordinateur en tant qu’adresses IP sécurisées si nécessaire.
Comment trouver l’adresse IP de votre PC Windows: Démarrer> (Exécuter) tapez: cmd (Entrée)
(Cela ouvre l’invite de commande de la boîte noire)
tapez ipconfig (Entrée)
Disons que votre serveur Web Apache ou IIS est installé sur votre PC: 192.168.0.3
et vous souhaitez accéder à votre serveur Web avec votre ordinateur portable. (IP de l’ordinateur portable est 192.168.0.5)
Sur votre PC, vous tapez: http: // localhost / dans votre navigateur Firefox ou Internet Eplorer pour accéder à vos données sur votre serveur Web.
Sur votre ordinateur portable, tapez http://192.168.0.3/ pour accéder à votre serveur Web sur votre PC.

Pour que tout cela fonctionne, vous devez avoir installé un serveur Web correctement (par exemple, IIS, Apache, XAMP, WAMP, etc.).

Si cela ne fonctionne pas, essayez de faire un ping sur votre PC depuis votre ordinateur portable:
Ouvrez la commande propmt sur votre ordinateur portable: Démarrer> cmd (Entrée)
ping 192.168.1.3 (Entrée)
Si le ping échoue, les pare-feu bloquent votre connexion ou votre câblage réseau est défectueux. Redémarrez votre modem ou commutateur réseau et vos machines.
Fermez les programmes tels que les programmes de discussion qui utilisent vos ports.
Vous pouvez également essayer un numéro de port différent: http: 192.168.0.3: 80 ou http: 192.168.0.3: 81 ou tout nombre aléatoire à la fin

Cet outil m’a sauvé beaucoup, car je n’ai aucune permission d’administrateur sur ma machine et que déjà nodejs était installé. Pour certaines raisons, la configuration de mon réseau ne me permet pas d’accéder à d’autres machines en pointant simplement l’IP sur le navigateur.

 # Using a local.dev vhost $ browser-sync start --proxy # Using a local.dev vhost with PORT $ browser-sync start --proxy local.dev:8001 # Using a localhost address $ browser-sync start --proxy localhost:8001 # Using a localhost address in a sub-dir $ browser-sync start --proxy localhost:8080/site1 

http://www.browsersync.io/docs/command-line/

Ceci est une remarque si on ne peut toujours pas accéder à localhost depuis un autre appareil après avoir suivi l’étape ci-dessus. Cela peut être dû à apache ports.conf a été configuré pour servir localement (127.0.0.1) et non à l’extérieur.

vérifiez les éléments suivants (pour ubuntu apache2)

  $ cat /etc/apache2/ports.conf 

si ce qui suit est défini,

 NameVirtualHost *:80 Listen 127.0.0.1:80 

puis revenez à la valeur par défaut

 NameVirtualHost *:80 Listen 80 

Sur Mac OS X:

  1. Dans le terminal, exécutez ifconfig | grep 192. ifconfig | grep 192. pour obtenir l’adresse IP interne de votre machine sur son réseau actuel. C’est peut-être quelque chose comme 192.168.1.140

  2. Démarrer un serveur. Par exemple, node server.js peut démarrer un serveur sur un port.

  3. Sur votre téléphone, visitez le 192.168.1.140:3000 ou le port sur 192.168.1.140:3000 votre serveur s’exécute.

Si vous êtes sous Windows, utilisez ipconfig pour obtenir l’adresse IPv4 locale, puis spécifiez-la sous votre fichier de configuration Apache: httpd.conf , par exemple:

 Listen: 10.20.30.40:80 

Redémarrez votre serveur Apache et testez-le à partir d’un autre ordinateur du réseau.