Назад | Перейти на главную страницу

Как мне получить доступ к локальному веб-серверу на моем ноутбуке с другого компьютера?

У меня на компьютере запущено приложение 127.0.0.1:3000

Я хотел бы получить доступ к этому приложению с iPhone, подключенного к той же сети. Я делал это раньше, но не понимаю, как я это сделал. Любые идеи?

Сначала вам нужно определить IP-адрес или имя машины, на которой работает веб-сервер. Я предполагаю, что вы используете веб-сервер на Mac, так как вы отметили свое сообщение macosx хотя инструкции для машин с Linux аналогичны. Итак, на вашем Mac:

  • открыто 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.
  • Теперь попробуйте подключиться на своей клиентской машине.
    • Если это веб-приложение, у вас должна быть возможность подключиться через браузер.
    • Например, попробуйте http://192.168.10.1:3000

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

Найдите имя своего 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), вам необходимо перенаправить трафик на ваш внутренний шлюз: порт в настройках вашего маршрутизатора.

Вот как это сделать:

  1. Mac-> Sys Preferences-> Sharing-> Enable «Web Sharing».
  2. Mac-> Sys Preferences-> Security-> разрешить вашему приложению (например, ruby) принимать входящее соединение
  3. Откройте порт на маршрутизаторе (через 192.168.1.1) для перенаправления трафика с your_web_ip: port на local_gateway: порт.

    1. Например. из настроек моего маршрутизатора Verizon -> Переадресация портов -> создать правило: пересылка на локальный шлюз (например, 192.168.1.4), настраиваемый порт, протокол tcp, источник = любой, пункт назначения = 3280, все типы подключения, пересылка на порт = 3000.

Готово. Теперь с удаленного компьютера откройте в браузере свой 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, вы не можете получить к нему доступ с другого компьютера. Для этого вам нужно изменить конфигурацию на Listen the IP или 0.0.0.0 (все доступные интерфейсы). Это вариант один.

Второй вариант - использовать прокси.

Третий вариант: если вы можете использовать ssh с iphone, вы также можете использовать пересылку ssh.

ssh пользователь @ хост -L 3000: 127.0.0.1: 3000

Затем на вашем iphone откройте 127.0.0.1:3000

Вы пробовали это, у меня это сработало (я не связан с этим):

https://github.com/progrium/localtunnel