2010-05-25 39 views
16

Estoy intentando acceder a mi servidor Django desde otra computadora en la misma red. Configuré mi servidor y puedo ver todo correctamente usando python manage.py runserver y yendo a http://127.0.0.1:8000 pero cuando trato de usar python manage.py runserver 0.0.0.0:80, no puedo ver mi página de Django desde otra computadora. La computadora que aloja el servidor de Django tiene una intranet IP 192.168.1.146. En mi computadora secundaria, enciendo un navegador e intento acceder al http://192.168.1.146:80 en vano. También he reenviado el puerto 80 (y también he probado 8000) también en vano :(. AYUDA!Django 0.0.0.0:80; no puedo acceder de forma remota

Respuesta

31

Tuve la misma pregunta en una computadora con Windows e inicié el servidor de Django con python manage.py runserver 192.168.1.146:80, en lugar de la 0.0.0.0. (Usé una dirección IP diferente, por supuesto).

Después de eso, apareció un cuadro de diálogo de Windows Firewall y me preguntó si debería desbloquear el puerto (sí). Otras computadoras en la LAN podrían acceder al servidor de Django usando 192.168.1.146:80.

2

Parece que es un problema de firewall entonces. ¿Se aseguró de abrir el puerto 80 en su servidor? computadora?

+3

este fue mi problema. Para usuarios de linux, necesitas permitir el puerto 8000 o cualquier puerto al que estés sirviendo usando comandos como 'sudo ufw allow 8000/tcp' – oat

+0

@tao Eso resolvió mi problema. Gracias. –

+0

@tao Gracias. deberías publicar eso como una respuesta. –

0

Por su mención del puerto de reenvío 80, parece que su segunda computadora está en una red diferente (enrutador) de la que está ejecutando Django. En ese caso, debe navegar a la IP del enrutador de la red Django - la dirección 192.168 solo es visible desde detrás de ese enrutador, y el reenvío de puertos asegurará que su solicitud vaya a la máquina correcta.

0

¿con qué sistema operativo está ejecutando esto? ¿Has intentado dar al comando privilegios de administrador? (Suponiendo que lo está funcionando en Ubuntu/Linux)

vuelva a emitir este lugar:

sudo python manage.py runserver 0.0.0.0:80 
-3

Por lo que yo entiendo, 0.0.0.0 es una dirección IP no enrutable.

Solo funcionará en la máquina local, si enlaza un socket a la dirección.

+0

En realidad, '0.0.0.0' significa todas las direcciones IP posibles. De hecho, no es enrutable, pero tiene este significado especial. –

+0

0.0.0.0 significa vincular todas las interfaces. Por lo tanto, localmente se vinculará a 127.0.0.1 y se vinculará a cualquier interfaz en cualquier tarjeta. También es una buena opción si está detrás de un NAT con los puertos de reenvío NAT, ya que django no se confundirá acerca de por qué se trata con IP incorrecta. – Shayne

7

Para que funcione para mí, ejecuté sudo python manage.py runserver 0.0.0.0:80 en la terminal (Mac OS X 10.8.2), y luego en su navegador ipad (o iphone), vaya a http://[your dirección IP] /. Me hizo no tiene que hacer esto: Testing Django website on iphone

To find the IP address on a Mac

2

Cuando se ejecuta desde Ubuntu, agregó permiso denegado cuando traté de hacer esto:

python manage.py runserver 0.0.0.0:80 

Ya que era un permiso cuestión de que lo siguiente funcionó bien como Ryan y gtujan dijo.

sudo python manage.py runserver 0.0.0.0:80 

NOTA: que está ejecutando un servidor en el puerto 80, que es un puerto HTTP. Por lo tanto, al escribir la URL desde su navegador web, no necesariamente debe escribir ": 80" en su URL.

http://192.168.1.146:80/ 

Lo siguiente debería ser suficiente. Incluso si escribe ": 80", se considera lo mismo.

http://192.168.1.146/ 

Sin embargo, para otros números de puerto como 8000, etc., se requiere que 8000 forme parte de la URL.

Cuestiones relacionadas