Подтвердить что ты не робот

О IP 0.0.0.0 в Django

У нас есть сервер, над которым мы запускаем сайт с Django. Поскольку мы хотим протестировать сайт, мы используем встроенный сервер разработки Django (т.е. runserver). Но мне любопытно ввести ip следующей команды:

python manage.py runserver 0.0.0.0:80

Это приводит к запуску сайта, на котором мы можем удаленно посетить сервер ip. Но при использовании 127.0.0.1 вместо этого:

python manage.py runserver 127.0.0.1:80

Никто не может посещать сайт с помощью сервера ip с другого компьютера.

Так почему? Что означает 0.0.0.0 в точности (Google говорит, что это маршрут по умолчанию)? Почему невозможно удалять 127.0.0.1:80 удаленно?

4b9b3361

Ответ 1

0.0.0.0:80 - это ярлык, означающий "привязка ко всем IP-адресам, поддерживаемым этим компьютером". 127.0.0.1:80 связывает только с интерфейсом "lo" или "loopback". Если у вас есть только один сетевой адаптер с одним IP-адресом, вы можете привязать его явно, скажем, 192.168.1.1:80 (if 192.168.1.1 был вашим IP-адресом), или вы можете указать все IP-адреса, на которые отвечает ваш компьютер, но 0.0.0.0:80 - это ярлык для этого.

Ответ 2

127.0.0.1 - это loopback interface, также известный как localhost; это адрес, доступный только с одного компьютера, так как ничего не происходит по сети. 0.0.0.0 означает "прослушивать все интерфейсы" и, таким образом, будет прослушивать соединения на всех IP-адресах, которые есть у машины (вероятно, только одна).

Ответ 3

127.0.0.1 - это локальный (loopback) ip, а не ip этого компьютера в сети. Чтобы получить доступ к серверу по сети, вам нужно знать его "IP-адрес сети"