Ver mi sitio alojado en IIS en otras máquinas de mi red

101

En casa tengo una configuración de red simple que contiene 2 máquinas.

En una máquina tengo un sitio alojado con IIS7. En lugar de la localhost/index.htmdirección estándar , agregué una entrada en el HOSTSarchivo que apunta a la IP local (127.0.0.1) a este dominio - www.mysite.dev.

Puedo acceder al sitio www.mysite.devsin ningún problema.

lo que me gustaría hacer es poder ver este sitio desde mi otra máquina en la red.

Inicialmente asumí que esto se podría hacer con una URL como esta MACHINE-NAME/www.mysite.dev, pero la conexión siempre se agota. Pero puedo hacer ping MACHINE-NAMEsin problemas.

Para propósitos de prueba, he desactivado el firewall de Windows en ambas máquinas, pero no me gustó.

Como un desarrollador web típico, mis habilidades de hardware / redes son bastante pobres.

¿Alguien puede ver dónde me estoy equivocando?

Truegilly
fuente
¿Ha intentado conectarse a MACHINE-NAME ?
Lázaro

Respuestas:

155

Como dijeron otros, su Firewall debe configurarse para aceptar llamadas entrantes en el puerto TCP 80 .

en win 7+ (forma fácil de hechicería)

  1. ir al firewall de Windows con seguridad avanzada
  2. Reglas de entrada -> Acción -> Nueva regla
  3. seleccione el botón de opción Predefinido y luego seleccione el último elemento: Servicios World Wide Web (HTTP)
  4. haga clic en siguiente y deje los siguientes pasos como están ( permitir la conexión )

  • Debido a que el tráfico saliente (desde el servidor al mundo exterior) está permitido de forma predeterminada, significa, por ejemplo, respuestas http que el servidor web envía a usuarios y solicitudes externos.

  • Pero el tráfico entrante (que se origina desde el mundo exterior al servidor) está bloqueado de forma predeterminada, al igual que las solicitudes web del usuario que se originan en su navegador, que no pueden llegar al servidor web de forma predeterminada y debe abrirlo.

También puede echar un vistazo más de cerca a las reglas de entrada y salida en esta página.

Iman
fuente
Si aún no funciona, puede desactivar el firewall, al menos para el entorno de desarrollo.
USER_NAME
@Contristo, exactamente mis sentimientos :)
Bryan Rayner
1
@hitesh, solo necesita abrir el puerto 80 a través de su firewall encendido. Si ni siquiera tiene permiso para agregar puertos, generalmente debe solicitar al equipo de soporte relacionado que abra este puerto para este servidor para usted
Iman
1
@Hitesh: puede alojar su sitio en un puerto diferente al 80 y permitir solo ese puerto para usted. Vea mi respuesta a continuación sobre cómo hacerlo.
Syed Ali Taqi
1
Acceso rápido al Firewall de Windows con seguridad avanzada: Win + R y luego escriba mmc.exe wf.msc.
facepalm42
35

Si está alojando un sitio web en un puerto específico en IIS como 4321 , también tendrá que permitir este puerto a través del Firewall de Windows. Estos son los pasos que seguí junto con la respuesta del imanabidi para que me funcionara:

  1. Firewall de Windows> Configuración avanzada
  2. Reglas de entrada> Nueva regla
  3. Seleccione Puerto> Siguiente
  4. Puertos locales específicos> Agregue el puerto que desea permitir
  5. Permitir todas las conexiones
  6. Ingrese un nombre y alguna descripción para que lo recuerde más adelante
  7. Hecho
Syed Ali Taqi
fuente
10

En primer lugar, intente conectarse a la IP LAN de su servidor. Si IIS está configurado con un solo sitio web, es probable que su sitio aparezca.

Si desea acceder a él por su nombre, tendrá que agregar una entrada en el archivo HOSTS de cada PC cliente con la que desee ver el sitio (no a 127.0.0.1 obviamente, sino a la dirección IP local de su servidor).

Además, su Firewall debe configurarse para aceptar llamadas entrantes en el puerto 80.

Este suele ser el punto en el que tiene más sentido configurar un servicio DNS con el que pueda registrar nombres como "mysite.dev" de forma centralizada, sin tener que incursionar en archivos de hosts. Pero esa es una historia diferente, y pertenece a superuser.com o serverfault.com.

Pekka
fuente
1
El firewall es la parte más importante aquí.
Pierre
6

Abra la configuración del firewall. Luego busque algo como: Permitir que el programa o la función permitan a través del firewall. Si en la lista Servicios de la World Wide Web (HTTP) no está marcada, márquela y reinicie el sistema.

Nuestra máquina está lista para aceptar solicitudes entrantes.

Harika Kakkireni
fuente
3

Respuesta muy tardía, pero destacaré algún punto, ya que tuve que lidiar con eso hace años al configurar mi sitio IIS en toda la red

  1. Ambas máquinas deben estar conectadas a la misma red (la misma red inalámbrica está bien)
  2. Acceda a su máquina remota vía IP 168.192.x.xo vía http://his-pc-name(no olvide la parte http)
  3. Esto servirá la página IIS predeterminada en la máquina remota (la misma que se sirve a través de localhost). Si desea servir a otro sitio, [debe establecerlo como predeterminado] primero 1 .

Asegúrese de que su IIS esté funcionando bien en una máquina remota verificando localhostcuál debería servir al sitio predeterminado. También asegúrese de que su firewall esté configurado para permitir la conexión a través del puerto 80 o simplemente puede deshabilitar el firewall por el momento con fines de prueba.

Hammad Khan
fuente
Usar la IP en lugar del nombre de mi estación de trabajo funcionó. ¡Salud!
hatsrumandcode
3

Además de modificar su firewall, ¡no olvide agregar el enlace de puertos también!

Abrir $(SolutionDir)\.vs\config\applicationHost.configy encontrar definiciones vinculantes, debería ser algo como esto

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

Simplemente agregue líneas adicionales para reflejar la IP de su máquina y el puerto designado

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

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

Korayem
fuente
2
¡Port Binding fue un paso importante para mí! Estaba usando IIS Express, que no permitirá el acceso a través de la dirección IP de forma predeterminada (solo localhost). ¡Así que sin este paso las respuestas mejor calificadas no iban a funcionar para mí!
JonoB
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Ha funcionado para mi

Santhosh Legent
fuente
2

Puede que sea tarde, pero para cualquier otra persona que pueda tener un problema de este tipo en el futuro, para cualquier conexión que desee realizar con el servidor (en este caso, la máquina que aloja la aplicación web, independientemente de si es iis o xampp), necesidad de permitir la conexión o el tráfico a través del puerto específico que se utilizará en el 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

y has hecho

Antoh
fuente
1

Después de instalar el antivirus, me enfrenté a este problema y noté que mi firewall se configuraba automáticamente como encendido, ahora simplemente desactivo el firewall y resolvió mi problema. Espero que ayude a alguien :)

Bhavin Chauhan
fuente
0

127.0.0.1 siempre apunta a localhost. En su red doméstica, debe tener una dirección IP asignada por su enrutador de Internet (dsl / cablemodem / lo que sea). Debe vincular su sitio web a esta dirección. Luego, debería poder usar el nombre de la máquina para acceder al sitio web, pero recomendaría editar el archivo de hosts de la computadora cliente en cuestión para señalar un nombre específico en esa computadora. El archivo de hosts se puede encontrar en c: \ windows \ system32 \ drivers \ etc \ hosts (use el bloc de notas) y la entrada se vería así:

192.168.1.1     mycomputername
Joel Etherton
fuente
@JenishZinzuvadiya: ¿Qué? Tu comentario no tiene sentido.
Joel Etherton
-1

Tienes que seguir los siguientes pasos.

Vaya a IIS ->
Sitios->
Haga clic en Su sitio web ->
En acción Haga clic en Editar permisos ->
Seguridad ->
Haga clic en AÑADIR ->
Avanzado ->
Buscar ahora ->
Agregar todos los usuarios en él ->
y otorgue todos los permisos a otros usuarios ->
haga clic en Aceptar.

Si hace las cosas anteriores correctamente, puede acceder a su sitio web utilizando su dominio.
Sugerencia: no agregue un nombre de host a su sitio, ya que crea problemas en algún momento. Por lo tanto, aloje su sitio web utilizando la dirección IP de su máquina.

Rakesh Surve
fuente