как подключиться к вебрику с другого компьютера

Этот вопрос задавался несколько раз раньше при переполнении стека, и я испробовал различные рекомендации, но все еще не могу заставить его работать.

Я использую OSX 10.11, домашнюю сеть Wi-Fi, использую Chrome. Если я загружаю webrick со следующим:

rails server -b 0.0.0.0

Сервер запускается, и я могу получить доступ к моему приложению через http://0.0.0.0:3000/ на том же компьютере. но с другого компьютера (также с современной OSX в той же сети Wi-Fi) я получаю ERR_CONNECTION_REFUSED.

whatismyip.com говорит, что мой IP-адрес 76.14.66.137. Когда я пытаюсь сделать что-либо из следующего

rails s -b 76.14.66.137
rails s -b 76.14.66.137 -p 80
rails s -b 76.14.66.137 -p 3000
rails s -b 76.14.66.137 -p 3002

Каждый раз я получаю одну и ту же ошибку: Не удается назначить запрошенный адрес - bind(2) для 76.14.66.137:80 (Errno::EADDRNOTAVAIL)

Есть ли настройка OSX, которую мне нужно изменить? Что я делаю неправильно?


person Tim Koelkebeck    schedule 11.01.2016    source источник


Ответы (1)


0.0.0.0 означает прослушивание всех сетевых интерфейсов.

https://www.whatismyip.com/ дает вам внешний IP-адрес маршрутизатора. Это не тот IP-адрес, который вы бы использовали для подключения к локальному серверу с отдельной локальной машины. Вам нужно получить реальный внутренний IP-адрес вашей машины. (В OSX это легко, просто откройте «Сетевые настройки», и ваш внутренний IP-адрес будет указан вверху в разделе «Статус: подключен». Вы также можете найти IP-адрес, войдя в администрацию вашего маршрутизатора.) Предположим, что ваша машина, на которой работает сервер rails, имеет внутренний IP-адрес 191.166.0.100.

Таким образом, вы должны запустить свой локальный сервер с IP-адресом 0.0.0.0 на машине A. Затем на машине B вы должны подключиться к http://191.166.0.100:3000.. внутренний IP-адрес машины A. Затем вы получите ответ от вашего приложения rails. Если нет, то вам нужно проверить настройки брандмауэра сервера и настройки маршрутизатора.

person axvm    schedule 11.01.2016
comment
Я использовал rails server -b 0.0.0.0 для запуска сервера, а затем попытался подключиться со своим IP-адресом на другом компьютере: 76.14. 66.137:3000. Все еще не работает. Я не знаю, какие настройки брандмауэра и/или настройки маршрутизатора могут вызвать проблему. Есть ли что-то особенное, что я должен искать, или я могу поискать в Google? - person Tim Koelkebeck; 13.01.2016
comment
если вы пытаетесь подключиться к Webrick из Интернета, вам необходимо включить переадресацию портов на вашем маршрутизаторе. Вы можете найти, как это сделать в Google с помощью поискового запроса, такого как «(модель маршрутизатора) переадресация портов» или «(модель маршрутизатора) доступ к интрасети из Интернета» - person axvm; 13.01.2016
comment
спасибо за вашу помощь, ваш последний комментарий привел меня к выводу, что я использовал свой общедоступный IP-адрес маршрутизатора, а не собственный внутренний IP-адрес моего компьютера для загрузки Webrick. Довольно глупо, я знаю, просто показывает, как легко запутаться в этом, когда вы ничего не знаете об этих серверных/сетевых вещах. - person Tim Koelkebeck; 16.01.2016
comment
вы в основном сказали это в своем первоначальном ответе, но мне это было непонятно. Я попытался отредактировать ваш ответ, чтобы сделать его немного более понятным, как только редактирование будет опубликовано, я приму его. - person Tim Koelkebeck; 16.01.2016
comment
надеюсь, редактирование не слишком обширно, чтобы его можно было принять - person Tim Koelkebeck; 16.01.2016