Вопрос

У нас есть сервер, на котором у нас работает сайт с поддержкой 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 получить удаленный доступ?

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top