Django 0.0.0.0:80; can't access remotely
I'm try开发者_如何学JAVAing to access my Django server from another computer on the same network. I've set up my server and can view everything correctly usingpython manage.py runserver
and going to http://127.0.0.1:8000
but when I try to use python manage.py runserver 0.0.0.0:80
, I can't view my Django page from another computer. The computer hosting the Django server has intranet IP 192.168.1.146. On my secondary computer, I fire up a browser and try to access http://192.168.1.146:80
to no avail. I've also forwarded port 80 (and I've tried 8000 as well) also to no avail :(. HELP!
I had the same question on a Windows computer, and started the Django server with python manage.py runserver 192.168.1.146:80
, instead of the 0.0.0.0. (I used a different IP address of course).
After that, a Windows Firewall dialog popped up and asked if I should unblock the port (yes). Other computers in the LAN could then access the Django server using 192.168.1.146:80.
In order for it to work for me, I ran sudo python manage.py runserver 0.0.0.0:80
in terminal (Mac OS X 10.8.2), and then in your ipad (or iphone) browser, go to http://[your ip address]/. I didn't have to do this: Testing Django website on iphone
When running it from Ubuntu, it said permission denied when I tried to do this:
python manage.py runserver 0.0.0.0:80
Since it was a permission issue the following worked just fine like Ryan and gtujan said.
sudo python manage.py runserver 0.0.0.0:80
NOTE: that you are running a server on port 80, which is a HTTP Port. So when typing the URL from your web-browser you do not necessarily need to type ":80" in your URL.
http://192.168.1.146:80/
The following should suffice. Even if you do type ":80" it is considered the same.
http://192.168.1.146/
However for other port numbers such as 8000 etc, :8000 is required to be part of the URL.
Sounds like it is a firewall issue then. Did you make sure to open port 80 on your server computer?
From your mention of forwarding port 80, it sounds like your second computer is on a different network (router) from the one running Django. In that case, you should browse to the IP of the Django network's router - the 192.168 address is only visible from behind that router, and port forwarding will ensure that your request goes to the right machine.
what OS are you running this on? have you tried to give the command root privileges? (assuming you're running it on ubuntu/linux)
try running this instead:
sudo python manage.py runserver 0.0.0.0:80
sudo ufw allow 8000/tcp
You can try this, it also worked for me.
As far as I understand, 0.0.0.0 is a non-routable IP.
It will only work on the local machine, if you bind a socket to the address.
精彩评论