попробуйте rails server -b 0.0.0.0, а затем браузер это на вашем iPhone.
zx1986
Ответы:
37
Сначала вам нужно определить IP-адрес или имя компьютера, на котором вы запускаете веб-сервер. Я предполагаю, что вы запускаете веб-сервер на Mac, так как вы пометили свой пост, macosxхотя инструкции похожи на машины Linux. Итак, на вашем Mac:
Open Terminal.app. Это под Applications->Utilities.
Запустите ifconfigв терминале. Это показывает вам все сетевые интерфейсы на машине. Одним из них является сеть, к которой ваша машина активно подключена. Если у вас Mac подключен по проводной сети, это должно быть en0. Запишите адрес после inet- это должен быть адрес, используемый вашей машиной.
Предположим, вы обнаружили, что это 192.168.10.1.
Убедитесь, что вы можете подключиться к этому адресу с вашего сервера с помощью nc -v 192.168.10.1 3000.
Вы должны увидеть сообщение, как Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
Если это не сработает, см. Ниже.
Если это работает, нажмите, ctrl-Cчтобы выйти из сеанса nc.
Теперь попробуйте подключиться на вашем клиентском компьютере.
Если это веб-приложение, вы сможете подключиться через браузер
Если вы не можете подключиться к своему приложению по реальному адресу сервера, это означает, что ваше приложение не прослушивает этот адрес. Вам нужно будет изучить, как изменить конфигурацию приложения, чтобы изменить это поведение. Поскольку я не знаю, какое приложение вы используете, я не могу предложить какие-либо хорошие идеи по этому поводу.
10x приятель ... какая разница, когда речь идет о системе на базе Windows с Wamp-сервером на нем ... есть ли разница?
Sagive SEO
Я использую Mac Sierra. Я могу получить доступ к серверу с моего компьютера Mac (на котором работает сервер) через 10.55.18.22:3000, но не могу получить к нему доступ с другого компьютера, даже если оба находятся в одной сети. Опция веб-обмена недоступна в Sierra. Как мы можем сделать эту работу?
Сантош Кумар
saanthosh: посмотрите на переадресацию портов на вашем роутере. Именно этим я и занимался до того, как обнаружил функцию общего доступа к Интернету в OSX (которая, по-видимому, была доступна по крайней мере с OSX 10.6). Я проводил тестирование локального хоста на множестве мобильных устройств в той же комнате / сети, где находился мой компьютер с OSX, что стало возможным благодаря стандартным / небольшим изменениям конфигурации маршрутизатора (т. Е. Переадресации портов). Другие статьи и темы SO содержат информацию о конфигурации маршрутизатора. В конечном счете, я нахожусь в новом месте и не имею доступа к маршрутизатору, поэтому вместо этого я использую общий доступ к Интернету через OSX (High Sierra), чтобы добиться того же.
MarsAndBack
12
Найдите имя вашего Mac с помощью hostname(в окне терминала) и используйте его в своем URL. Например, http: //Tonys-iMac.local: 3000 /
Если по какой-то причине Bonjour не работает в вашей среде, найдите адрес Аэропорта на iMac или MacBook с
Этот ответ имеет несколько хороших оптимизаций относительно моего имени хоста и IP-адреса.
Фил Холленбек
2
почему Bonjour не работает? Я нахожу мое имя хоста gm20152.local. Но когда я пытаюсь gm20152.local: 3000 на той же машине, он открывает действительную страницу. Но когда я пытаюсь запустить gm20152.local: 3000 на моем телефоне с Android, браузер на моем телефоне не может найти хост. Я думаю, это потому, что у моего телефона нет способа сопоставления gm20152.local с ip addr моего macbook. Как я могу сделать это?
По сути, в настройках брандмауэра вы можете разрешить определенному приложению (например, ruby) принимать входящие соединения. Кроме того, чтобы разрешить доступ к внешнему миру (например, www), вам необходимо перенаправить трафик на ваш внутренний шлюз: порт через настройки маршрутизатора.
Mac-> Sys Preferences-> Security-> разрешить вашему приложению (например, ruby) принимать входящее соединение
Откройте порт на маршрутизаторе (через 192.168.1.1) для пересылки трафика с your_web_ip: порт на local_gateway: порт
Например, из настроек маршрутизатора моего Verizon -> Переадресация портов -> создать правило: пересылка на локальный шлюз (например, 192.168.1.4), пользовательский порт, протокол tcp, источник = любой, пункт назначения = 3280, все типы соединений, пересылка на порт = 3000.
Выполнено. Теперь с удаленного компьютера откройте в браузере свой IP-адрес (найдите через http://www.whatismyip.com/ ) + порт назначения № выше, например, 72.189.194.65:3280, он будет подключен к вашему локальному 192.168.1.4. : 3000
127.0.0.1 - это локальный адрес, который каждый компьютер имеет для себя. Вы должны выяснить, каков реальный IP-адрес (или имя хоста / имени Bonjour) машины. Перейдите в «Системные настройки», «Сеть» и найдите IP-адрес устройства, либо для порта Ethernet, если вы используете кабель, либо в аэропорту, если вы используете WLAN. Затем откройте этот адрес вместе с: 3000 часть в Safari на iPhone.
Кроме того, на панели настроек общего доступа всегда отображается имя или адрес, по которым можно связаться с вашим компьютером.
Джеймс
2
Если приложение прослушивает только 127.0.0.1:3000, вы не сможете получить к нему доступ с другого компьютера. Для этого вам нужно изменить конфигурацию, чтобы прослушивать IP или 0.0.0.0 (все доступные интерфейсы). Это первый вариант.
Второй вариант - использовать прокси.
Третий вариант - если вы можете использовать ssh с iphone, вы также можете использовать ssh forwarding.
rails server -b 0.0.0.0
, а затем браузер это на вашем iPhone.Ответы:
Сначала вам нужно определить IP-адрес или имя компьютера, на котором вы запускаете веб-сервер. Я предполагаю, что вы запускаете веб-сервер на Mac, так как вы пометили свой пост,
macosx
хотя инструкции похожи на машины Linux. Итак, на вашем Mac:Terminal.app
. Это подApplications->Utilities
.ifconfig
в терминале. Это показывает вам все сетевые интерфейсы на машине. Одним из них является сеть, к которой ваша машина активно подключена. Если у вас Mac подключен по проводной сети, это должно бытьen0
. Запишите адрес послеinet
- это должен быть адрес, используемый вашей машиной.nc -v 192.168.10.1 3000
.Connection to 192.168.10.1 3000 port [tcp/http] succeeded!
.ctrl-C
чтобы выйти из сеанса nc.Если вы не можете подключиться к своему приложению по реальному адресу сервера, это означает, что ваше приложение не прослушивает этот адрес. Вам нужно будет изучить, как изменить конфигурацию приложения, чтобы изменить это поведение. Поскольку я не знаю, какое приложение вы используете, я не могу предложить какие-либо хорошие идеи по этому поводу.
источник
Найдите имя вашего Mac с помощью
hostname
(в окне терминала) и используйте его в своем URL. Например, http: //Tonys-iMac.local: 3000 /Если по какой-то причине Bonjour не работает в вашей среде, найдите адрес Аэропорта на iMac или MacBook с
ipconfig getifaddr en1
или вообще с
ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')
источник
По сути, в настройках брандмауэра вы можете разрешить определенному приложению (например, ruby) принимать входящие соединения. Кроме того, чтобы разрешить доступ к внешнему миру (например, www), вам необходимо перенаправить трафик на ваш внутренний шлюз: порт через настройки маршрутизатора.
Вот как это сделать:
Откройте порт на маршрутизаторе (через 192.168.1.1) для пересылки трафика с your_web_ip: порт на local_gateway: порт
Выполнено. Теперь с удаленного компьютера откройте в браузере свой IP-адрес (найдите через http://www.whatismyip.com/ ) + порт назначения № выше, например, 72.189.194.65:3280, он будет подключен к вашему локальному 192.168.1.4. : 3000
Примечание: я работаю на Mac OSX 10.7.5
источник
127.0.0.1 - это локальный адрес, который каждый компьютер имеет для себя. Вы должны выяснить, каков реальный IP-адрес (или имя хоста / имени Bonjour) машины. Перейдите в «Системные настройки», «Сеть» и найдите IP-адрес устройства, либо для порта Ethernet, если вы используете кабель, либо в аэропорту, если вы используете WLAN. Затем откройте этот адрес вместе с: 3000 часть в Safari на iPhone.
источник
Если приложение прослушивает только 127.0.0.1:3000, вы не сможете получить к нему доступ с другого компьютера. Для этого вам нужно изменить конфигурацию, чтобы прослушивать IP или 0.0.0.0 (все доступные интерфейсы). Это первый вариант.
Второй вариант - использовать прокси.
Третий вариант - если вы можете использовать ssh с iphone, вы также можете использовать ssh forwarding.
ssh user @ host -L 3000: 127.0.0.1: 3000
Затем на вашем iPhone откройте 127.0.0.1:3000
источник
0.0.0.0
! Как я мог не думать об этом?Вы пробовали это, это работало на меня (я не связан с этим):
https://github.com/progrium/localtunnel
источник