Я пытаюсь разрешить моему телефону доступ к локальному веб-сайту на моем Macbook Pro по мере его разработки! он работает 127.0.0.1 на порту 5000 локально в среде танго (мне сказали, что 127.0.0.1 не имеет значения), и IP, который мне дал мой беспроводной маршрутизатор, это 192.168.1.172. Из того, что мне сказали, я должен быть в состоянии получить доступ к сайту со своего телефона в той же беспроводной сети, перейдя к 192.168.1.172:5000, однако safari никогда не сможет найти сервер! Быстрое сканирование портов на моем компьютере также показывает, что порт 5000 даже не открыт. Как я могу открыть этот порт, чтобы получить доступ к сайту, работающему на моем компьютере? Большое спасибо за Вашу помощь! Запуск последней версии Mavericks.

2 ответа2

1

Я пытаюсь разрешить моему телефону доступ к локальному веб-сайту на моем Macbook Pro по мере его разработки!

Хорошо. поэтому у нас есть как минимум два разных устройства здесь.

он работает 127.0.0.1 на порту 5000 локально в среде танго (мне сказали, что 127.0.0.1 не имеет значения)

Вам сказали неправильно или, возможно, с недостаточной детализацией.
Неважно, используете ли вы 127.0.0.1:5000 или 192.168.1.172:5000 при подключении со своего macbook.

Это имеет значение, когда вы пытаетесь подключиться с телефона. 127.1 является * локальным ** хостом. Для телефона это означает сам телефон. Для MacBook это означает сам MacBook. Попытка подключиться к 127.0.0.1:5000 с телефона будет пытаться получить доступ к чему-то на телефоне, а не к веб-серверу на вашем MacBook.

Из того, что мне сказали, я должен быть в состоянии получить доступ к сайту со своего телефона в той же беспроводной сети, перейдя к 192.168.1.172:5000

Если вы также разместите его на 192.168.1.172:5000, то да. Но вам нужно будет сообщить веб-серверу, какие IP-адреса слушать. Очень разумным значением по умолчанию будет привязка только к локальному хосту (поэтому только к 127.1:5000 или ::1 5000). Если вы не изменили это в конфигурации, то на этой паре IP:порт ничего не прослушивается.

Быстрое сканирование портов на моем компьютере также показывает, что порт 5000 даже не открыт. Как я могу открыть этот порт, чтобы получить доступ к сайту, работающему на моем компьютере?

Перейдите к своему программному обеспечению веб-сервера и привяжите его к 192.168.1.172:5000

0

В коммуникациях 127.0.0.1 - это самообслуживание: установление контакта с 127.0.0.1:5000 означает соединение с вашим собственным компьютером через порт 5000. Если вы сделаете это со второго компьютера, он попытается связаться с самим собой, а не с первым компьютером. Если с первого компьютера вы замените 127.0.0.1, вы получите тот же эффект, потому что первый компьютер пытается связаться с самим собой через порт 5000.

Но теперь, если вы пытаетесь связаться со своим первым компьютером по порту 5000 со второго компьютера, это уже не вызов самому себе, и никакая служба не сможет вам ответить.

Это мера безопасности: пока ваш веб-сервер не защищен, он не подвергается воздействию всего мира. Вам нужно будет научиться делать его доступным в определенный момент в будущем.

Итак, что вам нужно сделать на этом этапе разработки, чтобы сделать его доступным извне, это настроить переадресацию портов на первом компьютере, указав ему перенаправлять все запросы на IP_Address_of_Web_server: от 5000 до 127.0.0.1:5000.

Вы можете сделать это временно, что характерно для меры безопасности, описанной выше. Предположим, что IP-адрес веб-сервера 192.168.1.10, а затем эти две команды

  mkfifo mypipe
  nc -l 5000 0<backpipe | nc localhost 5000 1>backpipe

перенаправляет порт 5000 с вашего IP-адреса на себя. Это должно работать сейчас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .