Visualizzazione del mio sito ospitato IIS su altre macchine sulla mia rete


101

A casa ho una semplice configurazione di rete contenente 2 macchine.

Su una macchina ho un sito ospitato con IIS7. Invece localhost/index.htmdell'indirizzo standard ho aggiunto una voce nel HOSTSfile che punta l'IP locale (127.0.0.1) a questo dominio - www.mysite.dev.

Posso accedere al sito www.mysite.devsenza problemi.

quello che vorrei fare è poter visualizzare questo sito dall'altra mia macchina sulla rete.

Inizialmente pensavo che ciò potesse essere fatto con un URL in questo modo MACHINE-NAME/www.mysite.dev, ma la connessione scade sempre. Ma posso eseguire il ping MACHINE-NAMEsenza problemi.

A scopo di test ho disabilitato il firewall di Windows su entrambe le macchine, ma senza gioia.

Come un tipico sviluppatore web, le mie capacità hardware / di rete sono piuttosto scarse.

Qualcuno può vedere dove sto sbagliando?


Hai provato a connetterti a MACHINE-NAME ?
Lazarus

Risposte:


155

Come altri hanno detto, il tuo firewall deve essere configurato per accettare le chiamate in arrivo sulla porta TCP 80 .

in win 7+ (facile modo magico)

  1. vai a Windows Firewall con sicurezza avanzata
  2. Regole in entrata -> Azione -> Nuova regola
  3. selezionare il pulsante di opzione predefinito e quindi selezionare l'ultimo elemento - World Wide Web Services (HTTP)
  4. fare clic su Avanti e lasciare i passaggi successivi così come sono ( consentire la connessione )

  • Poiché il traffico in uscita (dal server al mondo esterno) è consentito per impostazione predefinita, significa, ad esempio, le risposte http che il server Web sta inviando a richieste e utenti esterni

  • Ma il traffico in entrata (proveniente dal mondo esterno al server) è bloccato per impostazione predefinita come le richieste web dell'utente provenienti dal suo browser che non può raggiungere il server web per impostazione predefinita e devi aprirlo.

Puoi anche dare un'occhiata più da vicino alle regole in entrata e in uscita in questa pagina


Se ancora non funziona, puoi disattivare il firewall stesso, almeno per l'ambiente di sviluppo.
USER_NAME

@Contristo, esattamente i miei sentimenti :)
Bryan Rayner

1
@hitesh, devi solo aprire la porta 80 attraverso il firewall attivato. se non hai nemmeno il permesso di aggiungere porte, di solito dovresti chiedere al team di supporto correlato di aprire questa porta per questo server per te
Iman

1
@ Hitesh: puoi ospitare il tuo sito su una porta diversa da 80 e consentire solo quella porta per te. Vedi la mia risposta qui sotto su come farlo.
Syed Ali Taqi

1
Accesso rapido a Windows Firewall con sicurezza avanzata: Win + R quindi digita mmc.exe wf.msc.
facepalm42

35

Se stai ospitando un sito Web su una porta specifica in IIS come 4321, dovresti consentire anche questa porta tramite Windows Firewall. Ecco i passaggi che ho seguito insieme alla risposta di imanabidi per farlo funzionare per me:

  1. Windows Firewall> Impostazioni avanzate
  2. Regole in entrata> Nuova regola
  3. Seleziona Porta> Avanti
  4. Porte locali specifiche> Aggiungi la porta che desideri consentire
  5. Consenti tutte le connessioni
  6. Immettere un nome e una descrizione in modo da ricordarlo in seguito
  7. Fatto

10

Prima di tutto, prova a connetterti all'IP LAN del tuo server. Se IIS è configurato con un solo sito Web, è probabile che il tuo sito venga visualizzato.

Se vuoi accedervi per nome, dovresti aggiungere una voce nel file HOSTS di ogni PC client con cui vuoi visualizzare il sito (non a 127.0.0.1 ovviamente, ma all'indirizzo IP locale del tuo server).

Inoltre, il firewall deve essere configurato per accettare le chiamate in arrivo sulla porta 80.

Questo è di solito il punto in cui ha più senso impostare un servizio DNS con cui registrare centralmente nomi come "miosito.dev", senza dover dilettarsi con i file host. Ma questa è una storia diversa e appartiene a superuser.com o serverfault.com.


1
Il firewall è la parte più importante qui.
Pierre

6

Apri le impostazioni del firewall. Quindi cerca qualcosa come - Consenti al programma o alla funzione di consentire il firewall. Se nell'elenco servizi World Wide Web (HTTP) è deselezionato, selezionalo e riavvia il sistema.

La nostra macchina è pronta per accettare le richieste in entrata.


3

Risposta molto tarda, ma evidenzierò un punto poiché ho dovuto affrontarlo anni fa impostando il mio sito IIS attraverso la rete

  1. Entrambe le macchine dovrebbero essere connesse alla stessa rete (la stessa rete wireless va bene)
  2. Accedi alla tua macchina remota tramite IP 168.192.x.xo tramite http://his-pc-name(non dimenticare la parte http)
  3. Questo servirà la pagina IIS predefinita sulla macchina remota (la stessa che viene servita tramite localhost). Se vuoi server un altro sito, [devi impostare quello predefinito] prima 1 .

Assicurati che il tuo IIS localhostfunzioni correttamente sulla macchina remota controllando quale dovrebbe servire il sito predefinito. Assicurati anche che il tuo firewall sia configurato per consentire la connessione tramite la porta 80 o puoi semplicemente disabilitare il firewall per il momento a scopo di test.


L'utilizzo dell'IP invece del nome della mia stazione di lavoro ha funzionato. Saluti!
hatsrumandcode

3

Oltre a modificare il firewall, non dimenticare di aggiungere anche il binding della porta!

Apri $(SolutionDir)\.vs\config\applicationHost.confige trova definizioni di binding, dovrebbe essere qualcosa di simile

<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>

Basta aggiungere linee extra per riflettere l'IP della macchina e la porta designata

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

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


2
Port Binding è stato un passo importante per me! Stavo usando IIS Express che non consente l'accesso tramite l'indirizzo IP per impostazione predefinita (solo localhost). Quindi senza questo passaggio le risposte con il punteggio più alto non avrebbero funzionato per me!
JonoB

2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Ha funzionato per me


2

Potrebbe essere tardi, ma per qualsiasi altra persona che potrebbe riscontrare un problema del genere in futuro, per qualsiasi connessione che desideri effettuare al server (in questo caso la macchina che ospita l'applicazione web, indipendentemente dal fatto che sia iis o xampp) tu è necessario consentire la connessione o il traffico attraverso la porta specifica che verrà utilizzata nel firewall

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

e hai fatto


1

Dopo aver installato l'antivirus ho affrontato questo problema e ho notato che il mio firewall si attivava automaticamente, ora ho semplicemente disattivato il firewall e ha risolto il mio problema. Spero che possa aiutare qualcuno :)


0

127.0.0.1 punta sempre a localhost. Sulla tua rete domestica dovresti avere un indirizzo IP assegnato dal tuo router internet (dsl / cablemodem / qualunque cosa). Devi vincolare il tuo sito web a questo indirizzo. Dovresti quindi essere in grado di utilizzare il nome della macchina per accedere al sito Web, ma consiglierei di modificare effettivamente il file hosts del computer client in questione per puntare un nome specifico a quel computer. Il file hosts si trova in c: \ windows \ system32 \ drivers \ etc \ hosts (usa il blocco note) e la voce sarebbe simile a:

192.168.1.1     mycomputername

@JenishZinzuvadiya: cosa? Il tuo commento non ha senso.
Joel Etherton

-1

Devi fare i seguenti passaggi.

Vai su IIS ->
Siti->
Fai clic sul tuo sito Web ->
In azione Fai clic su Modifica autorizzazioni ->
Sicurezza ->
Fai clic su AGGIUNGI ->
Avanzate ->
Trova ora ->
Aggiungi tutti gli utenti al suo interno ->
e concedi tutte le autorizzazioni ad altri utenti ->
fare clic su Ok.

Se esegui queste operazioni correttamente puoi accedere al tuo sito web utilizzando il tuo dominio.
Suggerimento - Non aggiungere il nome host al tuo sito a volte crea problemi. Quindi, per favore ospita il tuo sito web utilizzando l'indirizzo IP della tua macchina.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.