Я пытаюсь разрешить моему телефону доступ к локальному веб-сайту на моем 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 ответа
Я пытаюсь разрешить моему телефону доступ к локальному веб-сайту на моем 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
В коммуникациях 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-адреса на себя. Это должно работать сейчас.