Affichage de mon site hébergé IIS sur d'autres machines de mon réseau

101

À la maison, j'ai une configuration réseau simple contenant 2 machines.

Sur une machine, j'ai un site hébergé avec IIS7. Plutôt que l' localhost/index.htmadresse standard , j'ai ajouté une entrée dans le HOSTSfichier pointant l'adresse IP locale (127.0.0.1) vers ce domaine - www.mysite.dev.

Je peux accéder au site www.mysite.devsans problème.

ce que je voudrais faire, c'est pouvoir visualiser ce site à partir de mon autre machine sur le réseau.

Au départ, j'ai supposé que cela pouvait être fait avec une URL comme celle-ci MACHINE-NAME/www.mysite.dev, mais la connexion expire toujours. Mais je peux cingler MACHINE-NAMEsans problème.

À des fins de test, j'ai désactivé le pare-feu Windows sur les deux machines, mais sans joie.

Comme un développeur Web typique, mes compétences en matériel / réseau sont assez faibles.

Quelqu'un peut-il voir où je vais mal?

Truegilly
la source
Avez-vous essayé de vous connecter à MACHINE-NAME ?
Lazarus

Réponses:

155

Comme d'autres l'ont dit, votre pare-feu doit être configuré pour accepter les appels entrants sur le port TCP 80 .

dans win 7+ (méthode magique facile)

  1. accéder au pare-feu Windows avec une sécurité avancée
  2. Règles entrantes -> Action -> Nouvelle règle
  3. sélectionnez le bouton radio prédéfini , puis sélectionnez le dernier élément - World Wide Web Services (HTTP)
  4. cliquez sur suivant et laissez les étapes suivantes telles quelles ( autorisez la connexion )

  • Parce que le trafic sortant (du serveur vers le monde extérieur) est autorisé par défaut, cela signifie par exemple les réponses http que le serveur Web renvoie aux utilisateurs et demandes externes

  • Mais le trafic entrant (provenant du monde extérieur vers le serveur) est bloqué par défaut comme les requêtes Web des utilisateurs provenant de leur navigateur qui ne peuvent pas atteindre le serveur Web par défaut et vous devez l'ouvrir.

Vous pouvez également examiner de plus près les règles entrantes et sortantes sur cette page

Iman
la source
Si cela ne fonctionne toujours pas, vous pouvez désactiver le pare-feu lui-même, au moins pour l'environnement de développement.
USER_NAME
@Contristo, mes sentiments exactement :)
Bryan Rayner
1
@hitesh, il vous suffit d'ouvrir le port 80 via votre pare-feu activé. si vous n'avez même pas l'autorisation d'ajouter des ports, vous devriez généralement demander à l'équipe de support associée d'ouvrir ce port pour ce serveur pour vous
Iman
1
@Hitesh: vous pouvez héberger votre site sur un port autre que 80 et n'autoriser que ce port pour vous. Voir ma réponse ci-dessous sur la façon de le faire.
Syed Ali Taqi
1
Accès rapide au pare-feu Windows avec sécurité avancée: Win + R puis tapez mmc.exe wf.msc.
facepalm42
35

Si vous hébergez un site Web sur un port spécifique dans IIS comme 4321, vous devez également autoriser ce port via le pare-feu Windows. Voici les étapes que j'ai suivies avec la réponse de l' imanabidi pour que cela fonctionne pour moi:

  1. Pare-feu Windows> Paramètres avancés
  2. Règles entrantes> Nouvelle règle
  3. Sélectionnez Port> Suivant
  4. Ports locaux spécifiques> Ajoutez le port que vous souhaitez autoriser
  5. Autoriser toutes les connexions
  6. Entrez un nom et une description afin de vous en souvenir plus tard
  7. Terminé
Syed Ali Taqi
la source
10

Tout d'abord, essayez de vous connecter à l'adresse IP LAN de votre serveur. Si IIS est configuré avec un seul site Web, il est probable que votre site apparaîtra.

Si vous souhaitez y accéder par son nom, vous devrez ajouter une entrée dans le fichier HOSTS de chaque PC client avec lequel vous souhaitez afficher le site (pas à 127.0.0.1 évidemment, mais à l'adresse IP locale de votre serveur).

De plus, votre pare-feu doit être configuré pour accepter les appels entrants sur le port 80.

C'est généralement le point où il est plus judicieux de mettre en place un service DNS avec lequel vous pouvez enregistrer des noms comme "mysite.dev" de manière centralisée, sans avoir à manipuler les fichiers hôtes. Mais c'est une autre histoire, et appartient à superuser.com ou serverfault.com.

Pekka
la source
1
Le pare-feu est la partie la plus importante ici.
Pierre
6

Ouvrez les paramètres du pare-feu. Ensuite, recherchez quelque chose comme - Autoriser le programme ou la fonctionnalité à autoriser le pare-feu. Si dans la liste les services du World Wide Web (HTTP) n'est pas cochée, vérifiez-la et redémarrez le système.

Notre machine est prête à accepter les demandes entrantes.

Harika Kakkireni
la source
3

Réponse très tardive mais je soulignerai un point car j'ai dû y faire face il y a des années en configurant mon site IIS sur le réseau

  1. Vos deux machines doivent être connectées au même réseau (le même réseau sans fil convient)
  2. Accédez à votre machine distante via IP 168.192.x.xou via http://his-pc-name(n'oubliez pas la partie http)
  3. Cela servira la page IIS par défaut sur la machine distante (la même que celle servie via localhost). Si vous voulez serveur un autre site, [vous devez d'abord définir cette valeur par défaut] 1 .

Assurez-vous que votre IIS fonctionne correctement sur une machine distante en vérifiant localhostlequel doit servir le site par défaut. Assurez-vous également que votre pare-feu est configuré pour permettre la connexion via le port 80 ou vous pouvez simplement désactiver le pare-feu pour le moment à des fins de test.

Hammad Khan
la source
Utiliser l'adresse IP au lieu du nom de mon poste de travail a fonctionné. À votre santé!
hatsrumandcode
3

En plus de modifier votre pare-feu, n'oubliez pas d'ajouter également une liaison de port!

Ouvrir $(SolutionDir)\.vs\config\applicationHost.configet trouver des définitions de liaison, devrait être quelque chose comme ça

<sites>
    <site name="Samples.Html5.Web" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63000:localhost" />
        </bindings>
    </site>
    ...
</sites>

Ajoutez simplement des lignes supplémentaires pour refléter l'IP de votre machine et le port désigné

<bindings>
    <binding protocol="http" bindingInformation="*:63000:localhost" />
    <binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>

Source: https://blog.falafel.com/expose-iis-express-site-local-network/

Korayem
la source
2
Port Binding a été une étape importante pour moi! J'utilisais IIS Express qui n'autorise pas l'accès via l'adresse IP par défaut (uniquement localhost). Donc, sans cette étape, les réponses les mieux notées n'allaient pas fonctionner pour moi!
JonoB
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Ça a marché pour moi

Santhosh Legent
la source
2

Il peut être tard, mais pour toute autre personne qui pourrait avoir un tel problème à l'avenir, pour toutes les connexions que vous souhaitez établir avec le serveur (dans ce cas, la machine qui héberge l'application Web, qu'il s'agisse de iis ou xampp) vous besoin d'autoriser la connexion ou le trafic via le port spécifique qui sera utilisé dans le pare-feu

1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on

et tu as fait

Antoh
la source
1

Après avoir installé l'antivirus, j'ai rencontré ce problème et j'ai remarqué que mon pare-feu était automatiquement activé.Maintenant, je viens de désactiver le pare-feu et cela a résolu mon problème. J'espère que cela aidera quelqu'un :)

Bhavin Chauhan
la source
0

127.0.0.1 pointe toujours vers localhost. Sur votre réseau domestique, vous devriez avoir une adresse IP attribuée par votre routeur Internet (dsl / cablemodem / peu importe). Vous devez lier votre site Web à cette adresse. Vous devriez alors pouvoir utiliser le nom de la machine pour accéder au site Web, mais je recommanderais en fait de modifier le fichier d'hôtes de l'ordinateur client en question pour pointer un nom spécifique sur cet ordinateur. Le fichier hosts peut être trouvé dans c: \ windows \ system32 \ drivers \ etc \ hosts (utilisez le bloc-notes) et l'entrée ressemblerait à:

192.168.1.1     mycomputername
Joël Etherton
la source
@JenishZinzuvadiya: Quoi? Votre commentaire n'a aucun sens.
Joel Etherton
-1

Vous devez suivre les étapes suivantes.

Allez dans IIS ->
Sites->
Cliquez sur votre site Web ->
En action Cliquez sur Modifier les autorisations ->
Sécurité ->
Cliquez sur AJOUTER ->
Avancé ->
Rechercher maintenant ->
Ajouter tous les utilisateurs ->
et accordez toutes les autorisations aux autres utilisateurs ->
cliquez sur Ok.

Si vous faites les choses ci-dessus correctement, vous pouvez accéder à votre site Web en utilisant votre domaine.
Suggestion - N'ajoutez pas de nom d'hôte à votre site, cela crée parfois des problèmes. Veuillez donc héberger votre site Web en utilisant l'adresse IP de votre machine.

Sondage Rakesh
la source