3

Я разработчик Android, и часто мои приложения требуют серверного кода. Обычно я использую Ruby on Rails для веб-приложения и во время разработки запускаю сервер на моей локальной машине (Mac OS X) с WEBrick. Утром, когда я доберусь до офиса, я буду запускать ifconfig в консоли, чтобы посмотреть, какой IP получил мой ноутбук в тот день. Я буду использовать этот IP-адрес в своем приложении для Android при запросах к соответствующему веб-приложению.

Это все отлично работает, когда я в своем офисе.

Когда я возвращаюсь домой, я пытаюсь сделать то же самое, найти IP-адрес моего ноутбука через ifconfig, установить его в конфигурационном файле моего приложения, но пункт назначения так и не может быть найден. Чтобы исключить мое приложение из набора препятствий, я пытаюсь зайти на IP-адрес веб-сервера (например, http://192.168.1.4:3000) из браузера моего телефона, и оно не может подключиться. Если я попробую с моего ноутбука, на котором работает веб-сервер, он работает нормально. Если я попробую с другой машины, в той же сети, он также не сможет подключиться.

Учитывая это, я думаю, что я сузил это до некоторой конфигурации в моей домашней сети, но я, честно говоря, понятия не имею, в чем причина. У меня нет ничего особенного дома, ваш базовый маршрутизатор / модем Verizon FiOS со всем, что связано через Wi-Fi (Wi-Fi для телефона и ноутбука на работе, к вашему сведению). Я попытался отключить брандмауэр на своем маршрутизаторе Verizon, включить переадресацию портов и почти все, что я мог сделать для порта 3000, и ничего не изменилось.

Уважаемые гении серверной ошибки, пожалуйста, помогите бедному разработчику. :)

Редактировать:

Некоторые последующие пункты, чтобы добавить. Брандмауэр моего Mac не активен, и все входящие запросы разрешены. Я также проверил на своем телефоне и ноутбуке, что они находятся в одной сети (192.168.1.4 Mac, 192.168.1.9 Phone). Я понятия не имею, почему это не работает.

Изменить 2:

Я вошел в Системные настройки, включил веб-общий доступ и попытался просмотреть веб-сайт со своего телефона, но он не подключился. Так что это не WEBrick и не связано с Rails. Брандмауэр на моем компьютере выключен, а брандмауэр на моем маршрутизаторе выключен.

Изменить 3:

Некоторый прогресс. Я настроил переадресацию портов для порта 3000 на свой ноутбук, нашел внешний IP-адрес и использовал его, и он подключился нормально. Итак, определенно что-то не совсем правильно настроено в моей внутренней сети.

3 ответа3

0

Вы пробовали запустить WEBrick как этот rails s -p 80 для форсирования порта 80. Если у вас есть проблемы с вашим маршрутизатором, попытка другого порта может помочь.

Я бы предложил подключить ваш компьютер напрямую и получить к нему доступ с компьютера, подключенного напрямую. Ваш маршрутизатор может быть одним из тех забавных, которые имеют две сети; основная беспроводная сеть и гостевая беспроводная сеть. Даже если все ваши устройства подключены к одному и тому же физическому маршрутизатору, вы находитесь в разных сетях, которые отделены друг от друга. Я бы проверил ваши настройки беспроводной сети на ноутбуке и убедился, что это не так.

0

Некоторые маршрутизаторы имеют возможность отключить связь между беспроводными клиентами. Проверьте настройки беспроводного соединения для вашего маршрутизатора и посмотрите, включена ли такая опция. Это можно назвать режимом "Изоляция" или аналогичным. Если вы можете указать фактический изготовитель / модель # для маршрутизатора, возможно, будет возможно найти документацию и посмотреть, доступна ли такая опция на маршрутизаторе.

Если ваш телефон и ноутбук оба имеют 192.168.1.4 в качестве IP - адреса (как описано выше), то они не находятся на одной и той же сети (или серьезно неверно и не может получить доступ к Интернету).

0

Я знаю, что на некоторых машинах с Windows 7 у вас разные сети (Public, Home, Work). Ваша машина может быть подключена как общедоступная, что может привести к тому, что сайт не будет отображаться. Однако в вашем офисе соединение установлено на «Работа» или «Дом», что открыло вебрик. Я бы попробовал отключить ваше подключение к вашему дому и забыть это. Попробуйте установить новый и установить его на дом.

В разделе «Сеть» щелкните ссылку «Домашняя сеть», «Рабочая сеть» или «Общая сеть» в зависимости от того, что вы в данный момент выбрали в качестве сетевого расположения. (см. скриншот ниже)

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