[Django]-Django 0.0.0.0:80; can't access remotely

46πŸ‘

βœ…

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.

πŸ‘€Karl Wenzel

11πŸ‘

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

To find the IP address on a Mac

πŸ‘€Ryan Walton

6πŸ‘

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.

πŸ‘€nitred

2πŸ‘

Sounds like it is a firewall issue then. Did you make sure to open port 80 on your server computer?

πŸ‘€Mitch Dempsey

0πŸ‘

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.

0πŸ‘

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
πŸ‘€gtujan

0πŸ‘

sudo ufw allow 8000/tcp

You can try this, it also worked for me.

0πŸ‘

I’ve tried:

python3 ./manage.py runserver_plus LAN.LAN.LAN.LAN:8010

But can get an HTTP 200 reply without a path:

http://LAN.LAN.LAN.LAN:8010/

If remote client do a GET request with a path :

http://LAN.LAN.LAN.LAN:8010/login


VPN.CLIENT - - [30/Aug/2023 15:31:35] "GET /favicon.ico HTTP/1.1" 404 -
VPN.CLIENT - - [30/Aug/2023 15:31:45] "GET /login/ HTTP/1.1" 200 -
VPN.CLIENT - - [30/Aug/2023 15:31:48] "GET /login/ HTTP/1.1" 200 -

I can see the request is reaching the server but client just wait forever for the reply that never came.

The most crazy thing is both server and client can reach each other i.e. ssh works.

Django version 4.2.3


[SOLVED] telling ovpn server to use TCP instead of UDP

πŸ‘€user2239318

-6πŸ‘

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.

πŸ‘€Gary D

Leave a comment