Acceso a localhost (xampp) desde otra computadora a través de la red LAN: ¿cómo hacerlo?

150

Acabo de configurar una red wi-fi en casa. Tengo todos mis archivos en mi computadora de escritorio (192.168.1.56) y deseo acceder a localhost desde otra computadora (192.168.1.2).

En mi escritorio puedo acceder a localhost a través del http: // localhost normal . Apache se ejecuta en el puerto 80 como de costumbre.

¿Qué debo hacer exactamente para lograr esto? Hay documentación en la red, pero no funcionan o son demasiado fragmentados y confusos para entender.

Creo que tengo que hacer cambios en el archivo httpd.conf de mi apache y el archivo hosts. ¿Alguna idea de qué cambios hacer?

bcosynot
fuente
2
Las personas que encuentren esta pregunta podrían estar interesadas en ¿Cómo me conecto a este host local desde otra computadora en la misma red? .
Martin Thoma
1
Esto es lo que hice y trabajé para mí en Windows 10: vaya a cmd y escriba ipconfig, luego busque su dirección ipv4 y cambie el nombre de la URL de su sitio web a esa ip, por ejemplo: 192.168.0.2/example . Luego busque en Windows "Permitir una aplicación a través del firewall de Windows", haga clic en él, luego haga clic en Cambiar configuración y asegúrese de que el servidor http apache esté marcado. Espero que ayude
csandreas1
Tengo un sitio llamado app.sitename.com. Ahora puedo acceder al sitio en otra PC en la misma red usando la dirección IP. Cómo acceder con subdomian. app.ipaddress.com no funciona. ¿Qué debo hacer para agregar un subdominio en una PC remota?
vicky

Respuestas:

112

Localhost es solo un nombre dado para el loopback, por ejemplo, es como referirse a ti mismo como "yo".

Para verlo desde otras computadoras, es probable que solo necesite http://192.168.1.56 o http: // myPcsName si eso no funciona, existe la posibilidad de que haya un firewall ejecutándose en su computadora o httpd.conf solo escucha en 127.0.0.1

BugFinder
fuente
httpd.conf: Escucha 80 si necesito hacer un cambio en eso, ¿qué me recomendarías?
bcosynot
1
Eso solo dice escuchar en el puerto 80, es probable que ya esté escuchando. netstat -a, busque elementos en el puerto 80, le dirá en qué IP (s) está escuchando
BugFinder
1
Ahí tienes, eso significa que está escuchando cualquier solicitud en el puerto 80, no solo localhost, por lo tanto, si tu PC se llamaba vr3609, entonces http to debería llevarte a tu sitio web.
BugFinder
1
si http a la dirección IP de su servidor desde el servidor, ¿funciona? si es así, sugiere que hay un firewall en el servidor que bloquea el acceso de otras máquinas.
BugFinder
1
Ok, 192.168.1.56, ese es el que tiene el sitio web en la derecha? Necesitas mirar la configuración de la misma. ¿Qué sistema operativo se ejecuta? El software de firewall que esté en él variará con eso. Debe averiguar qué software de firewall tiene, y luego averiguar cómo agregarle el puerto 80 para permitir que otras máquinas entren. . Si sus posibilidades de Linux son sus ipchains pero, es un área completamente nueva de pregunta.
BugFinder
46

Gracias por una explicación detallada.

Solo para elaborar, en Windows, vaya al Panel de control -> Firewall, en excepciones "agregue http y el puerto 80". Luego, en Servicios, marque "http (puerto del servidor web 80)" y "https (puerto del servidor web 443)" SOLO si necesita que https funcione también. Ok, OK, Cerrar

Luego vaya a cualquier computadora en la red y escriba http: // nombre-computadora (donde cambia el firewall y tiene el xampp ejecutándose en él) en su navegador web y días felices :)

Raja
fuente
77
Fui a Panel de control> Firewall de Windows> Permitir una aplicación a través de Firewall de Windows> Permitir otra aplicación> Navegar a: XAMPP / apache / bin / httpd.exe y lo permití. ¡Está trabajando ahora!
shasi kanth
Gracias. Funcionando bien.
jewelhuq
Para agregar la excepción de Firewall de Windows, puede visitar esto para aprender cómo: tomshardware.com/news/…
Alejandro Nava
36

es muy fácil

  1. Vaya a su panel de control XAMPP
  2. Haga clic en apache> config> Apache (httpd.conf) ingrese la descripción de la imagen aquí
  3. Busque Listen 80 y reemplácelo con Listen 8080
  4. Después de eso, verifique su ip local usando el comando ipconfig (consola cmd)
  5. Busque ServerName localhost: 80 y reemplácelo con su ip local: 8080 (ex.192.168.1.156: 8080)
  6. Después de eso, abra apache> config> Apache (httpd-xampp.conf) ingrese la descripción de la imagen aquí
  7. Buscar

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. Vaya a xampp> config> haga clic en servicio y configuración de puerto y cambie el puerto apache 8080

  9. reiniciar xampp
  10. luego presione su IP: 8080 (ex.192.168.1.156: 8080) desde otra computadora
Rahul Shewale
fuente
si en lugar de todos los graneados ... jsut una IP estática. como seria
Alejandro Maliachi Quintana
no funciona. en mi pc funciona bien pero no funciona desde otra pc.
MH Fuad
Esto no funciona para mi. Recibo un error de certificado: el certificado del servidor NO incluye una identificación que coincida con el nombre del servidor
Jon Vote
18

Estos son los pasos a seguir cuando desea que su aplicación PHP se instale en un servidor LAN (no en la web)

  1. Obtenga la IP interna o la IP estática del servidor (Ej: 192.168.1.193)
  2. Abra XAMPP> apache> conf> archivo httpd.conf en el bloc de notas
  3. Buscar Listen 80
  4. La línea anterior se leería como: # Escucha 0.0.0.0:80 / 12.34.56.78:80
  5. Cambie la dirección IP y reemplácela con la IP estática.
  6. Guarde el archivo httpd.conf asegurándose de que el servidor apunte a #Liste 192.168.1.193:80
  7. En la aplicación root config.php (conexión db) reemplace localhost con la dirección IP del servidor

Nota: Si el firewall está instalado, asegúrese de agregar el puerto http 80 y 8080 a las excepciones y permita escuchar. Vaya a Panel de control> Firewall de Windows> Permitir que un programa se comunique a través del firewall de Windows> Agregar otro nombre del programa: Puerto http: 80 Agregar uno más como http - 8080

Si IIS (Microsoft .Net Application Internet Information Server) está instalado con cualquier aplicación Microsoft .Net que ya esté en el servidor, entonces ya habría ocupado el puerto 80. En ese caso, cambie #Listen 192.168.1.193:80 a #Listen 192.168.1.193:8080

¡Espero que esto ayude! :)

Shreedhar Bhat
fuente
Esto lo resolvió para mí. ¡Buena cosa! Siempre había eliminado el #frente de la dirección IP local y no funcionaba, cuando incluí el hash de comentarios #funcionó de inmediato sin reiniciar la máquina virtual invitada, solo el servicio XAMPP Apache y todo está ahí. Buena esa. Ahora, ¿cómo consigo que se vincule a mis VirutalHosts asignados en la máquina Host?
lowtechsun
Para acceder a los VirtualHosts asignados en la máquina Host desde el invitado, simplemente tuve que ingresar la IP del Host y el nombre de los servidores VirtualHost en el archivo HOSTS del Guest. Hecho. Alguien sabe cómo recoger el tráfico del navegador del Guest al servidor Hosts Apache con Fiddler. Trabaje en el host pero no obtenga tráfico del invitado.
lowtechsun
Hola, ¿qué pasa con un rango de direcciones IP para, por ejemplo, 192.168.1-100? ¿Cómo configurar eso?
dkjain
6

Esto debería ser todo lo que necesita para una configuración básica

Este tipo de configuración no rompe phpMyAdmin en localhost

Se recomienda una IP estática en el dispositivo que ejecuta el servidor

Este ejemplo utiliza la IP 192.168.1.x. La configuración de su red podría usar una IP diferente

En httpd.conf en Apache deberías tener:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

Dejaría en blanco el nombre para que obtenga los valores predeterminados:

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#

Permita las máquinas invitadas y usted mismo. Como precaución de seguridad, puede evitar Permitir de todos, pero en su lugar usar una IP de invitado específica, por ejemplo, Permitir desde 192.168.1.xxx donde xxx es la IP de la máquina de invitado. En este caso, es posible que también deba considerar IP estáticas en máquinas invitadas

# Controls who can get stuff from this server.
#
#    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
#     Deny from all
     Allow from all 
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
     Allow from 192.168.1.*YOURguestIP*
     Allow from 192.168.1.*YOURselfIP*
</Directory>

Reinicia todos los servicios y ponlos en línea desde el ícono de la bandeja

Razaman
fuente
5

A veces su firewall puede ser el problema. Asegúrese de haber deshabilitado la supervisión del firewall antivirus. Funcionó para mi.

Mateo Jovani
fuente
5

Vaya a xampp-control en la barra de tareas

xampp-control -> Apache --> Config --> httpd.conf

El Bloc de notas se abrirá con el archivo de configuración

Buscar

Escuchar 80

Una línea encima de ella, habrá algo como esto: 12.34.56: 80

Cambialo

12.34.56:80 --> <your_ip_address eg:192.168.1.5>:80

Reinicie el servicio apache y verifíquelo. Esperemos que funcione ...

Joish
fuente
4

Si está utilizando XAMPP 1.8.3 Vaya al archivo httpd-xampp.conf y busque "# # Nuevo concepto de seguridad XAMPP # estado-servidor | información-servidor))">

     Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     </LocationMatch>

"

Corte este código y guárdelo en algún lugar para su uso posterior, es decir, restaurar esta función (recuerde que eliminar este código hace que su computadora sea vulnerable). Guarde los cambios en httpd-xampp.conf, reinicie los servicios en XAMPP y listo.

OnsareTM
fuente
Para XAMPP Versión 7, el "Requerir local" se encuentra en el archivo apache / conf / extra / httpd-vhosts.conf
vivanov
3

Si está conectado a una red Wi-Fi, entonces es mucho más simple. Simplemente encuentre el Ip en el que se conectó al Wi-Fi. P.ej:

your-ip es "10.10.55.67".

Luego, inicie el servidor xampp en su máquina.

Luego, en cualquier otra computadora conectada al mismo Wi-Fi n / w, escriba

http://your-ip

P.ej:http://10.10.55.67

Krishna M
fuente
3

Esta herramienta me ahorró mucho, ya que no tengo permiso de administrador en mi máquina y ya tenía nodejs instalados. Por alguna razón, la configuración en mi red no me da acceso a otras máquinas simplemente apuntando la IP en el navegador.

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

Thiago C. S Ventura
fuente
3

Acceda a localhost desde un dispositivo remoto

Requisito previo : su sitio web está actualmente en funcionamiento con una herramienta como live-serverhttp://localhost:8081/

a) Publicar en la misma red

Dentro de la misma red, puede acceder a su máquina con su dirección IP o nombre de host actual. Puede encontrar la dirección IP en ejecución ipconfig | grep IPv4o el nombre de host enviando una ping -aa esa ip.

http://192.128.1.18:80/
http://hostname:80/

Nota : Para obtener mejores resultados, use el puerto 80, conéctese a una red privada y verifique la configuración de su firewall.

b) Publicar en cualquier red (más fácil)

  1. Opción 1 : puede usar ngrok para proporcionar el reenvío de puertos a través de los puertos públicos de ngrok

    Descargue ngrok y ejecute el siguiente comando:

    $ ./ngrok http 8081
    

  2. Opción 2 : puede usar localhost.run para crear un túnel ssh con el siguiente comando:

    ssh -R 80:localhost:8081 kylemit@ssh.localhost.run
    


Acceda a dispositivos remotos desde herramientas locales de desarrollo

Para conectar las herramientas de desarrollo de su navegador con un dispositivo conectado, siga las instrucciones en Comenzar con la depuración remota de dispositivos Android

  1. En su teléfono, habilite Opciones de desarrollador y Depuración de USB
  2. Conecte su teléfono a su computadora a través de USB y configure el protocolo (no Transferencia de archivos / medios)
  3. Abra Dev Tools> Más herramientas> Depuración remota (intente aquí si no se detecta el dispositivo )

  4. Encuentre su sitio y haga clic en Inspeccionar, lo que abrirá una nueva ventana de inspección


Otras lecturas:

KyleMit
fuente
1

Esto es lo que hice y trabajé para mí en Windows 10 :

1) Presione windows + r y escriba cmd . En el símbolo del sistema, escriba ipconfig
2) encuentre su dirección ipv4 y cambie el nombre de la URL de su sitio web a esa ip, por ejemplo: http://192.168.0.2/example .
3) Ahora asegúrese de que su firewall tenga acceso al Servidor Apache HTTP . Busque en Windows " Permitir una aplicación a través del firewall de Windows ", haga clic en él y luego en la parte superior derecha, haga clic en cambiar la configuración y asegúrese de que el Servidor Apache HTTP tenga una marca a la izquierda y otra en privado o público. Espero eso ayude

Ahora puede acceder al sitio web desde otras PC en el LAN

csandreas1
fuente
1

Primero vaya al centro de redes y recursos compartidos de su máquina con Windows y simplemente siga algunos pasos para obtener su dirección IPv4. Solo vea la ilustración de la imagen

Ponga la dirección IPv4 en otro navegador de computadora. ejemplo, http // 192.168.0.102

Nota

  • Apague su Firewall de Windows (si no funciona, de lo contrario es opcional)
Esa es Enam
fuente
0

Primero vas a Símbolo del sistema y escribes

Notepad C:/windows/system32/drivers/etc/hosts

luego agregue su dirección IP a continuación, luego la URL de su sitio.

En segundo lugar, vaya al símbolo del sistema y escriba notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

luego agregue esto a continuación

documentroot "Directory of your site"
Allow from all
Require all granted
Carl James Omandam
fuente
0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>
asd
fuente
<Archivos ".ht *"> Requerir local #Requiere todos los denegados </Files>
asd
3
¡Bienvenido a Stack Overflow! Si bien este fragmento de código puede resolver la pregunta, incluir una explicación realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y que esas personas podrían no conocer los motivos de su sugerencia de código. Por favor, también trate de no saturar su código con comentarios explicativos, ¡esto reduce la legibilidad tanto del código como de las explicaciones!
kayess
0

Reemplazar Require Localcon Require all granteden el xampp\apache\conf\extra\httpd-xampp.confarchivo.

Sumit
fuente
0

Estaba teniendo este problema. Estaba usando XAMPP en una máquina virtual que tenía la configuración de red como "NAT". Lo cambié a "Bridged" y el problema se resolvió.

Vidhyadhar Dharmadhikari
fuente
0

Host en IP local,

CMD abierto: ipconfig

Adaptador LAN inalámbrico Wi-Fi: Dirección IPv4. . . . . . . . . . . : xx.xxx.xx.xxx

Vineesh TP
fuente
0

Sólo inténtalo:

http://ipaddressofpcwhichhasdatabase:portnumber(80 by default)/filename.extension
Chinthan Narayan
fuente
0

Si a alguien todavía le resulta difícil, esto simple me funcionó:

  1. En su sistema principal, digamos Hosting PC ... Vaya a Panel de control> Firewall de Windows Defender> Permitir una aplicación o función a través de Firewall de Windows Defender> Cambiar configuración> Buscar "Servidor Apache HTTP"> Marque ambas casillas de verificación (en Privado y Público). Ver captura de pantalla

    • En mi caso, había dos entradas de "Servidor HTTP Apache", así que marqué ambas casillas de verificación para ambas entradas.
  2. En cualquier otro sistema conectado a través de una misma red ... Abra el navegador> escriba: la dirección IP de su PC de alojamiento seguido del nombre de su proyecto en la barra de direcciones. Ejemplo: 192.168.72.111/example.com/

¡Espero eso ayude! Gracias.

nareshsr
fuente
-1

Así que estaba tratando de resolver un problema similar al conectarme a un servidor totalmente diferente en mi propia LAN para que cuando se interrumpe la alimentación y luego se restablezca, mi servidor vuelva a estar en línea y otros sistemas puedan tener conectividad con la automatización. Sin embargo, mi problema era que DHCP le daba a mi servidor una IP diferente en ocasiones. Este hilo respondió mi problema con el NAMESERVER que Windows tiene de forma nativa. Me estaba conectando directamente a mis servidores IP agregar http://192.168.1.5 través de un archivo por lotes para inicializar la conexión, pero cuando ocurren problemas de alimentación no se conecta. Cambié el archivo .bat para que apunte a http: // DESKTOP-actualnamewhereserver: porty hecho. Problema resuelto. SI no cambio los nombres de mis computadoras, cuando DHCP le da a DESKTOP-actualnamewesresverver una nueva dirección IP, todavía se identificará como su propio nombre en la LAN y, por lo tanto, podrá aceptar la conexión independientemente de su dirección IP. Simplemente dé a las otras personas en su LAN inalámbrica el nombre de su PC que aloja el servidor Apache y digamos que su nombre es DESKTOP-DOUGHFACTORYHUT, escribirán http: // DOUGHFACTORYHUT: 80 o el número de puerto que su configuración de Apache esté configurado para alojar como LOCALHOST: 80, que son esencialmente lo mismo conectado a su dirección IP dinámica local asignada por DHCP o IP ESTÁTICA que ha configurado en el servidor.

Mark Hartman
fuente
-2

Estoy totalmente de acuerdo con BugFinder.

En palabras simples, simplemente ingrese la dirección IP 192.168.1.56 en su navegador que se ejecuta en 192.168.1.2 .

Si no funciona, existen los siguientes motivos posibles:

  1. Problema de conectividad de red:

    • En primer lugar, verifique la conectividad de su red con el comando ping 192.168.1.56 en el símbolo del sistema / terminal en la computadora 192.168.1.2.
  2. Problema de firewall: la configuración del firewall de Windows no tiene una regla de autorización para XAMPP (apache). (Problema más probable)

    • (solución) vaya a la configuración avanzada del firewall y agregue reglas entrantes y salientes para el archivo ejecutable de Apache.
  3. Problema de configuración de Apache. : Su apache está configurado para escuchar solo las solicitudes locales.

    • (Solución) puede abrir el archivo httpd.conf y reemplazar Listen 127.0.0.1:80 para Listen 80 o * Listen : 80
  4. Conflicto de puertos con otros servidores (IIS, etc.)

    • (Solución) Apague el servidor apache y luego abra el host local en el navegador. Si se obtiene alguna respuesta, apague ese servidor y luego inicie Apache.

si todo lo anterior no funciona, entonces probablemente haya algún problema de configuración en su servidor apache. Intente descubrirlo; de lo contrario, vuelva a instalarlo y transfiera todos los archivos php (htdocs) a la nueva instalación de XAMPP / WAMP.

Smit Patel
fuente
1
En primer lugar, esta publicación tiene 5 años, por lo que esta respuesta probablemente no será útil para el OP. En segundo lugar, puede usar Markdown para mejorar el formato de su respuesta para que sea más legible y más fácil de seguir. Confía en mí porque es bueno saberlo. :-)
Isiah Meadows
-3

Para ejecutar el servidor Nodejs en la red

const port = process.env.PORT || 3000; 
const server = http.createServer( 
server.listen(port, '0.0.0.0', ()  => console.log(`Server started on port ${port}`)
));

ejecute http: // yournetworkipaddress: 3000 para acceder a su aplicación a través de la red de área local (LAN)

Pasos para encontrar su ip de red.

Mac OS

  1. Vaya a Preferencias del sistema> Red
  2. Verifique la dirección IP de la red debajo del conectado.
Sumit Kasana
fuente