Як отримати доступ до локального веб-сервера на своєму ноутбуці з іншого комп’ютера? [зачинено]


37

У мене на комп’ютері працює програма на 127.0.0.1:3000

Я хотів би отримати доступ до цієї програми з iPhone, підключеного до тієї ж мережі. Я вже робив це раніше, але описував те, як я це зробив. Якісь ідеї?


2
спробуйте rails server -b 0.0.0.0, тоді переглядайте це на своєму iPhone.
zx1986

Відповіді:


37

Спочатку потрібно визначити 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

Якщо ви не можете підключитися до своєї програми за реальною адресою сервера, це означає, що ваша програма не слухає цю адресу. Вам потрібно буде вивчити, як змінити конфігурацію програми, щоб змінити таку поведінку. Оскільки я не знаю, з якою програмою ви працюєте, я не можу запропонувати хороших ідей щодо цього.


10x мате ... яка різниця, якщо говорити про систему на базі Windows із сервером Wamp на ній ... чи є різниця?
Вибачте SEO

Я використовую mac sierra. Я можу отримати доступ до сервера з мого Mac (де працює сервер) через 10.55.18.22:15000, але не можу отримати доступ до нього з іншої машини, хоча обидва знаходяться в одній мережі. Опція веб-спільного доступу не доступна в Сьєрра. Як ми можемо зробити цю роботу?
сантош кумар

saanthosh: Подивіться на переадресацію портів на маршрутизаторі. Це те, що я робив, перш ніж я відкрив функцію спільного доступу до Інтернету OSX (яка, очевидно, була доступна ще принаймні з OSX 10.6). Я робив тестування localhost на різних мобільних пристроях у тій же кімнаті / мережі, що і на моїй версії OSX Dev, що стало можливим завдяки стандартним / невеликим змінам конфігурації маршрутизатора (тобто переадресація портів). Інші статті та потоки SO надають інформацію про конфігурацію маршрутизатора. Зрештою, я зараз на новому місці та не маю доступу до маршрутизатора, тому замість цього я використовую OSX (High Sierra) Інтернет-обмін, щоб досягти того ж.
MarsAndBack

12

Знайдіть ім’я вашого Mac за допомогою hostname(у запиті на термінал) та використовуйте це у своїй URL-адресі. Наприклад, http: //Tonys-iMac.local: 3000 /

Якщо з яких-небудь причин Bonjour не працює у вашому оточенні, знайдіть адресу аеропорту на iMac або MacBook за допомогою

ipconfig getifaddr en1

або взагалі с

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')


Ця відповідь має хороші оптимізації щодо моєї щодо пошуку вашого імені хоста та ip-адреси.
Phil Hollenback

2
чому б bonjour не працював? Я знаходжу своє ім'я хоста gm20152.local. Але коли я намагаюся gm20152.local: 3000 на тій же машині, це відкриває дійсну сторінку. Але коли я спробую gm20152.local: 3000 на своєму телефоні Android, браузер на моєму телефоні не зміг знайти хоста. Я думаю, це тому, що в моєму телефоні немає способу відображення gm20152.local до ip-додатка моєї книги Mac. Як я можу це досягти?
gprasant

@gprasant Отримати Android для використання Bonjour здається досить важким
Джеймс,

5

В основному за допомогою налаштувань брандмауера ви можете дозволити певній програмі (наприклад, рубіну) приймати вхідні з'єднання. Крім того, щоб дозволити доступ до зовнішнього світу (наприклад, www), вам потрібно буде перенаправити трафік на ваш внутрішній шлюз: порт через налаштування вашого маршрутизатора.

Ось як це зробити:

  1. Mac-> Sys Preferences-> Sharing-> Увімкнути прапорець "Web Sharing"
  2. Mac-> Sys Preferences-> Security-> дозволити вашій програмі (наприклад, ruby) приймати вхідне з'єднання
  3. Відкрийте порт на маршрутизаторі (через 192.168.1.1), щоб переадресувати трафік з вашого_web_ip: порта на 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


2

127.0.0.1 - це локальна адреса, яку має кожен комп’ютер для себе. Ви повинні дізнатись, що таке справжня IP-адреса (або ім'я хоста / Bonjour) машини. Перейдіть до Системних налаштувань, Мережа та знайдіть IP-адресу пристрою, або для порту Ethernet, якщо ви використовуєте кабель або Аеропорт, якщо ви використовуєте WLAN. Потім відкрийте цю адресу разом із: 3000 частиною в Safari на iPhone.


Також на панелі налаштувань спільного доступу завжди відображається ім’я або адреса, за якою можна отримати ваш комп'ютер.
Джеймс

2

Якщо програма прослуховує лише 127.0.0.1:3000, тоді ви не можете отримати доступ до неї з іншого комп'ютера. Для цього вам потрібно змінити конфігурацію для прослуховування IP або 0.0.0.0 (усі доступні інтерфейси). Цей варіант один.

Другий варіант - використовувати проксі.

Третій варіант - якщо ви можете сш з iphone, ви також можете переслати ssh.

ssh user @ хост -L 3000: 127.0.0.1: 3000

Потім на вашому iphone відкрийте 127.0.0.1:3000


1
AFAIK, ви не можете переадресувати ssh-порт на iPhone. Ні, якщо це все-таки не збито з джейлбрейку.
Sven

Слухай 0.0.0.0! Як я не міг про це думати?
Густаво Страубе

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.