Как я могу получить доступ к своему локальному хосту с моего устройства Android?

543

Я могу получить доступ к веб-серверу своего ноутбука с помощью эмулятора Android, я использую 10.0.2.2:portno работает хорошо.

Но когда я подключаю свой настоящий телефон Android, браузер телефона не может подключиться к тому же веб-серверу на моем ноутбуке. Телефон подключен к ноутбуку с помощью USB-кабеля. Если я запускаю команду adb devices, я вижу свой телефон.

Что мне не хватает?

Гаф
источник
3
попробуйте это: stackoverflow.com/a/17603378/1600061
Zsivics Sanel
См. Документацию здесь: developer.android.com/tools/devices/…
Генри Алони
3
Отключите брандмауэр во время тестирования вашей веб-страницы или добавьте свой ip в доверенные сети в настройках брандмауэра.
Зееали
Другой вариант: stackoverflow.com/questions/35650343/…
statosdotcom
суп эз с нгрок
JonPizza

Ответы:

404

USB не обеспечивает сеть для мобильного устройства.

Если ваш рабочий стол и телефон подключены к одному и тому же Wi-Fi (или любой другой локальной сети), используйте IP-адрес вашего рабочего стола, назначенный маршрутизатором (нет localhostили нет 127.0.0.1).

Чтобы узнать IP-адрес вашего рабочего стола:

  • введите в командной строке ipconfig(Windows) или ifconfig(Unix)
    • в Linux однострочник ifconfig | grep "inet " | grep -v 127.0.0.1даст только важные вещи
    • есть куча предложений о том, как сделать похожий вывод на Windows
  • там будет куча IP
  • попробуйте все из них (кроме вышеупомянутых localhostи 127.0.0.1)

Если ваш телефон подключен к мобильной сети , то все будет сложнее.

Либо хардкор

  • сначала выясните внешний IP-адрес вашего маршрутизатора ( https://www.google.de/search?q=myip )
  • затем на маршрутизаторе перешлите какой-нибудь порт на <your desktop IP>:<server port number>
  • наконец, используйте внешний IP-адрес и перенаправленный порт

В противном случае используйте что-то вроде xip.io или ngrok .

ПРИМЕЧАНИЕ . ifconfigКоманда устарела и поэтому по умолчанию отсутствует в Debian Linux, начиная с растяжения Debian. Новая и рекомендуемая альтернатива для проверки конфигурации сети в Debian Linux - это команда ip. Например, чтобы использовать команду ip для отображения конфигурации сети, выполните следующее:

ip address

Вышеупомянутая команда ip может быть сокращена до:

ip a

Если вы по-прежнему предпочитаете использовать его ifconfigкак часть повседневной рутины sys-администратора, вы можете легко установить его как часть net-toolsпакета.

apt-get install net-tools

Ссылка здесь

Элайджа Саункин
источник
Спасибо, это было для меня большой помощью. Проблема для меня заключалась в том, что я не знал, что локальный сервер apache может быть адресован через ip 10.0.2.2. ... Я пробую множество других ip-адресов, например, шоу от ipconfig и т. Д. Но, опять же, большое спасибо!
Видар Вестнес
4
Я не понимаю решение этой проблемы. Можете ли вы помочь мне узнать, как мой телефон может получить доступ к моему серверу? Я надеюсь, что вы даете мне это решение. Спасибо.
Iremce
1
Прочитайте мой комментарий ниже .. Вы также должны иметь разрешение на доступ в Интернет. <использует-разрешение android: name = "android.permission.INTERNET" />
Санджай Кумар
3
@simo перейдите на домашнюю страницу маршрутизатора, 10.0.0.1 для XFinity, обычно 192.168.1.1, хотя и войдите в систему, найдите подключенные устройства или локальные IP-адреса, найдите свой компьютер и bam. У меня был 10.0.0. #, Затем просто добавьте [10.0.0. # :( порт) / Server / Servlet] или что-то еще
jp093121
2
Это не должно быть принятым ответом на этот вопрос. Переадресация портов в Chrome devtools и adb reverse прекрасно работает с USB-кабелем.
Роджер Мэдсен
229

Это на самом деле довольно просто.

  • Включите точку доступа WiFi вашего телефона / роутера Android и подключите ваш ноутбук к вашему телефону
  • Запустите свой сервер в localhost(я использую сервер WAMP для Windows)
  • Теперь откройте командную строку и введите
ipconfig

Как только вы это сделаете, вы увидите что-то вроде следующего:

Адаптер беспроводной локальной сети Беспроводное сетевое соединение:
  DNS-суффикс для конкретного подключения. :
  Link-local IPv6 Address. , , , , : fe80 :: 80bc: e378: 19ab: e448% 11
  IPv4-адрес. , , , , , , , , , , : 192.168.43.76
  Маска подсети . , , , , , , , , , , : 255.255.255.0
  Шлюз по умолчанию . , , , , , , , , : 192.168.43.1
  • Скопируйте IPv4-адрес (в данном случае это так 192.168.43.76)
  • В своем мобильном браузере просто вставьте адрес IPv4

Примечание: пожалуйста, установите вашу сеть как « Домашняя сеть ». Установка сети в качестве домашней сети означает, что вы позволяете своему ПК обмениваться данными с другими устройствами в той же сети.

Если вы используете Windows 10, это можно сделать с помощью следующего:

  • Открыть настройки
  • Перейти к сети и Интернету
  • Выберите WiFi в левом меню
  • Нажмите на название подключенного WiFi
  • Установите сетевой профиль сети как частный

Если у вас возникла проблема, скорее всего, это связано с брандмауэром Windows.

  • Открытая панель управления
  • Перейти к брандмауэру Защитника Windows
  • Нажмите Разрешить приложение или функцию через брандмауэр Защитника Windows.
  • Проверьте, включено ли приложение для частных сетей (должна быть галочка)
  • Если он не включен, нажмите « Изменить настройки» и установите флажок « Приватно» для приложения.
Дирал Пандья
источник
30
хм сделал это, но браузер, кажется, загружается вечно, тогда это дает мне упс? Я делаю что-то неправильно? А что вы подразумеваете под домашней сетью
Lion789
12
Пожалуйста, не забудьте отключить брандмауэр на компьютере.
Мин Нгуен
2
Да, отключение брандмауэра помогло. Спасибо.
Beemo
2
* Домашняя сеть ((Домашняя сеть означает, что ваш компьютер мне разрешен для обмена данными с устройствами из той же сети.
Leap Hawk
6
«Нажмите Разрешить приложение или функцию через брандмауэр Защитника Windows. Проверьте, включено ли приложение для частных сетей (должна быть галочка)« Какое приложение вы имеете в виду?
Лиз Лампероуг
71

Mac OS X пользователи

Я достиг этого, включив удаленное управление :

  • Убедитесь, что ваш телефон и ноутбук подключены к одной сети WiFi
  • На Mac перейдите в System preferences/sharing
  • Включить удаленное управление

Вы увидите сообщение, подобное этому:

  • Другие пользователи могут управлять вашим компьютером, используя адрес some.url.com

На вашем Android-устройстве теперь вы сможете перейти к some.url.comделегату localhostна вашем Mac. Вы также можете использовать, ifconfigчтобы получить IP-адрес вашего Mac.


Портативное решение с ngrok(любая ОС с Node.js)

Если вы не против выставить свой проект с временным доменом, вы можете использовать ngrok. Допустим, у меня есть приложение, которое работает, localhost:9460я могу просто написать

npm install ngrok -g

ngrok http 9460

Это даст мне:

Состояние сессии онлайн
Доступно обновление обновления (версия 2.2.8, Ctrl-U для обновления)
Версия 2.2.3
Регион США (сша)
Веб-интерфейс http://127.0.0.1:4040
Переадресация http://f7c23d14.ngrok.io -> localhost: 9460
Переадресация https://f7c23d14.ngrok.io -> localhost: 9460

Соединения ttl opn rt1 rt5 p50 p90
                              0 0 0,00 0,00 0,00 0,00

Теперь я могу использовать https://f7c23d14.ngrok.ioкак способ удаленного просмотра localhost. Это замечательно, чтобы поделиться дизайнерской работой или прогрессом с клиентами.


Альтернативный раствор с nginxпрокси

Если вы выполняете что-то подобное, через nginx proxy_passэто потребуется немного доработать - это хакерский подход, но он работает для меня, и я открыт для предложений по его улучшению:

  • Включить удаленное управление (как упомянуто выше)
  • Временно установите сервер для прослушивания порта 81в отличие от80
  • Введите следующую команду:
sudo nginx -s reload
  • Посещение http://youripaddress:81
server {
  listen 80;
  listen 81;   # <-------- add this to expose the app on a unique port
  server_name  ~^(local|local\.m).example.com$;
  # ...
}

Перезагрузить и посетить http://youripaddress:81

lfender6445
источник
2
Если вы используете эту настройку «удаленного управления», еще одна полезная вещь, которую нужно знать: если у вас есть много серверов с псевдонимами, работающих в mamp, ваше мобильное устройство (подключенное через USB) предоставит вам доступ только к первому <VirtualHost>, который определяется в httpd-vhosts.conf, поэтому просто переместите ваш текущий проект в начало списка
DrewT
Я включил удаленное управление на своем Mac, как вы сказали, и мне дали другой набор флажков для различных способов удаленного управления моим компьютером. Я оставил их все без контроля, кроме «Наблюдать», и у меня это работало нормально Мой веб-сервер работал на моем Mac через локальный порт 5555, и я увидел, что «другие пользователи могут управлять вашим компьютером по адресу 10.0.0.12», поэтому в браузере своего телефона я набрал 10.0.0.12:5555 и увидел свою веб-страницу.
Маркус
Он работал, когда использовал IP, 192.168.0.101но имя хоста не работало.
Кришнадас ПК
6
На Mac просто нажмите ALT + нажмите Wi-Fi в строке меню, чтобы получить свой IP-адрес.
Матхарден
Я отключил брандмауэр, но он показывает, что соединение отказано, есть идеи, как заставить его работать?
Унникришнан
67

С помощью простого решения (просто доступ laptop_ip_addr:portс мобильного устройства, когда мобильный и ноутбук находятся в одном и том же WiFi), я получаю ошибку ERR_CONNECTION_REFUSED . То есть мой MacBook, похоже, отказывается от попытки подключения с моего мобильного телефона.


Обратное гнездо ADB (только для Android)

Это решение работает для меня (проверено на MacBook):

  1. Подключите мобильное устройство Android с помощью USB-кабеля к ноутбуку
  2. Включить отладку по USB на мобильном устройстве
  3. На ноутбуке беги adb reverse tcp:4000 tcp:4000
    • Используйте свой номер порта вместо 4000
  4. Теперь на мобильном устройстве вы можете перейти к нему http://localhost:4000/, и он будет фактически подключаться к ноутбуку, а не к мобильному устройству

Смотрите инструкции здесь .

Недостатком является то, что это работает только с одним мобильным устройством одновременно . Если вы хотите получить доступ к другому мобильному устройству, вы должны сначала отключить первое (отключить отладку по USB ), подключить новое (включить отладку по USB ) и запустить adb reverse tcp:4000 tcp:4000снова.


нгрок (работает со всеми устройствами)

Другим решением, которое всегда должно работать, является ngrok (как упоминалось в других ответах). Он работает через Интернет, а не по локальной сети.

Это чрезвычайно легко использовать:

brew cask install ngrok
ngrok http 4000

Это выводит, среди некоторой другой информации, строку как

Forwarding                    http://4cc5ac02.ngrok.io -> localhost:4000

Теперь вы можете перейти http://4cc5ac02.ngrok.ioна любое устройство, подключенное к Интернету, и этот URL-адрес перенаправляет на localhost:4000ваш ноутбук.

Обратите внимание, что пока выполняется команда ngrok (пока вы не нажмете Ctrl-C ), ваш проект обслуживается публично . Каждый, у кого есть URL, может это увидеть.

weibeld
источник
2
ты спас мне жизнь чувак
Быть
Спасибо. Вы мне очень помогли. Я использовал ADB Reverse, просто заменив 4000 порт на 3000, и он работал, как мне было нужно.
Маркус Кризостомо
блин что сработало наконец-то, спасибо!
Алекс
38

Я нашел быстрое решение этой проблемы. Попробуйте эту ссылку . Это должно помочь вам решить проблему.

Я изменил только одну вещь, когда в руководстве говорится, что вы меняете «127.0.0.1» на «Все», вместо этого меняйте его на IP-адрес, на котором работает ваш сервер.

После этого вы сможете подключиться к локальному хосту.


Ниже (корректура) копия информации со связанной страницы:

Шаг 1

Установите сервер Wamp (или любой другой, который вы предпочитаете).

Это один из лучших серверов, которые я знаю для настройки локального сервера. Если вы установили Apache или любой другой сервер, пропустите этот шаг.

Загрузите и установите Wamp Server отсюда.

Шаг 2

Добавьте новое правило для порта 80 в брандмауэре Windows.

  1. Откройте панель управления и выберите брандмауэр Windows.

  2. Выберите Дополнительные параметры на левой панели страницы настроек брандмауэра Windows.

  3. Выберите Inbound Rules на левой панели, затем выберите New Rule.

  4. Выберите Порт и нажмите Далее.

  5. Выберите переключатель «Определенные локальные порты» и введите 80 в качестве значения порта.

  6. Оставьте Разрешить соединение без изменений и перейдите к следующему шагу.

  7. Оставьте параметры профиля без изменений и нажмите «Далее».

  8. Дайте какое-нибудь красивое имя новому правилу и нажмите «Готово».

Это позволит доступ к порту 80 по локальной сети IP.

Шаг 3

Отредактируйте файл httpd.conf сервера Wamp, чтобы исправить ошибку 403.

Нам нужно отредактировать этот файл. В противном случае мы получим ошибку 403 при доступе к локальному хосту через IP-адрес локальной сети.

  1. Нажмите на иконку Wamp сервера в трее.

  2. Откройте подменю сервера Apache.

  3. Выберите httpd.conf.

  4. Найдите этот раздел конфигурации в файле httpd.conf:

    Directory c:/wamp/www/”
    #
    # Possible values for the Options directive are “None”, “All”,
    # or any combination of:
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that “MultiViews” must be named *explicitly* — “Options All”
    # doesn’t give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be “All”, “None”, or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride all
    
    #
    # Controls who can get stuff from this server.
    #
    
    # onlineoffline tag – don’t remove
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1

Найдите и замените «127.0.0.1» на «Все», сохраните файл и перезапустите сервер Wamp.

Шаг 4

Найдите свой локальный сетевой IP.

  1. Откройте командную строку.

  2. Введите и введите ipconfigкоманду.

  3. В моем случае мой адрес локальной сети - 10.0.0.2.

Это IP, который вам нужен для доступа к вашему локальному хосту на вашем телефоне Android через Wi-Fi. Чтобы проверить, работает ли он, введите этот IP-адрес в браузере на рабочем столе, где установлен сервер localhost. Браузер должен отобразить вашу локальную страницу успешно. Это гарантирует, что этот IP-адрес локальной сети теперь успешно доступен на вашем телефоне Android.

Я надеюсь, что это руководство поможет вам получить доступ к локальному хосту через Wi-Fi.

GertV
источник
Спасибо! это сработало так просто. только одна вещь; Я оставил httpd.conf как# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb
1
учебник на основе Windows? ВТ?
abbood
1
ссылка больше не работает, поэтому весь ответ теперь бесполезен, так как информация о том, как это сделать, не была добавлена ​​в SO.
rtack
Для сервера Wamp v3 я получал запрещенную ошибку. Прочтите этот ответ stackoverflow.com/questions/23382627/… о том, как изменить информацию о vhosts (не редактируйте файл httpd.conf, как показано выше)
friek108
Похоже, это действительно старая версия Wamp, файлы конфигурации теперь немного сложнее. Особенно, если вы используете функцию VHosts. Я не могу понять это, слишком много слоев переопределений.
Джонатан
37

На ПК с Windows Вам, возможно, не нужно ничего делать, кроме как узнать свой IPv4-адрес с помощью команды «ipconfig».

  • Шаг 1. Подключите телефон к ПК с помощью USB-кабеля.
  • Шаг 2: Используйте команду 'ipconfig', чтобы узнать ваш IPv4-адрес (внешний IP-адрес маршрутизатора), например, 192.168.1.5 в моем случае.
  • Шаг 3: Просто откройте «192.168.1.5:8080» из браузера телефона. Оно работает !

Другие подробности Env: Windows 7, Google Nexus 4 (4.2.2), Tomcat Server, приложение Grails.

Вы также должны убедиться, что у вас есть разрешение на доступ к Интернету в файле AndroidManifest:

<uses-permission android:name="android.permission.INTERNET"/>
Санджай Кумар
источник
Я пытался, но он продолжает говорить, что "Соединение отказано". Почему? :( Должен ли порт быть 8080? В настоящее время мой веб-сервис работает на другом порту.
Triet Doan
2
Я использовал tomcat для порта 8080. Вы можете добавить свой собственный порт сервера вместо 8080.
Санджай Кумар
а как насчет веб-приложения? не родное приложение
amdev
У меня до сих пор нет доступа к моему локальному хосту
Анна Леоненко
Я попробовал это, но там написаноjava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Моеез
16

Однако есть гораздо лучшее решение. Вы можете получить доступ к хост-машине с IP-адресом «10.0.2.2». Это было разработано таким образом командой Android. Таким образом, ваш веб-сервер может отлично работать на локальном хосте, и из вашего приложения для Android вы можете получить к нему доступ через «http://10.0.2.2:8080».

Ахиль Джайн
источник
4
Это правда, хитрость заключается в том, чтобы указать локальный IP-адрес вашей машины и получить к нему доступ через беспроводной маршрутизатор, подключенный между вашим android-устройством и вашей машиной или системой
Akhil Jain
Отличный момент, я искал именно это, чтобы общаться эмулятором с localhost. Спасибо!!
Орел
13

Поскольку это старый вопрос, есть новый способ сделать это, который действительно очень прост. Загрузите расширение ADB Chrome и следуйте этим инструкциям:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging

Джейсон
источник
3
Больше не нужно скачивать ADB, так как он устарел, но перейдите по адресу developers.google.com/chrome-developer-tools/docs/… и следуйте инструкциям. Примечание: мне пришлось перенаправить порт 8443 на локальный хост: 8443
Димитрис
это работает только для URL-вызовов из Chrome на устройстве, или это должно работать из моего приложения тоже?
Оркун Озен
3
Это поставило меня на правильный путь - более свежий ответ о Chrome Dev Tools можно найти здесь: Android Chrome Forward Port Forwarding
Ричард Ле Мезурье
Я застрял, потому что у меня не было установлено Google Chrome на моем устройстве. Doh!
Чад Бингхэм
9

«Переадресация портов в Chrome для Android упрощает тестирование сайта разработки на мобильном устройстве. Он работает путем создания прослушивающего TCP-порта на мобильном устройстве, который сопоставляется с определенным TCP-портом на вашей машине для разработки. Трафик между этими портами проходит через USB, поэтому соединение не зависит от конфигурации вашей сети. "

Более подробная информация здесь: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding

Даниил
источник
9

Это решение применимо, когда ваше мобильное устройство и компьютер не находятся в одной сети:

В этом случае вам нужно использовать переадресацию портов. В окне Google Chrome Inspect (Chrome: // Inspect) вы можете увидеть подключенные устройства. введите описание изображения здесь

Нажмите на кнопку перехода на другой порт и установите произвольный порт, скажем, 3000, на порт, используемый вашим ноутбуком, скажем, 8080.

введите описание изображения здесь

Теперь используйте localhost: 3000 с устройства для доступа к localhost: 8080 (or_whwhat_ip: portno) в ноутбуке. Вы можете проверить это в мобильном браузере. Попробуйте localhost: 3000 в мобильном браузере. Обязательно установите флажок «Включить переадресацию портов» в окне «Настройки переадресации портов».

Аджмал Ансари
источник
Я люблю тебя, чувак! Вам нужно написать учебник с этими шагами!
Рафаэль Гомес Франциско
7

Запустите CMD от имени администратора

а на экране CMD наберите ipconfig и на экране появится текст

как это фото введите описание изображения здесь

и вы можете получить доступ к локальному хосту с помощью этого IP-адреса, вы должны быть подключены к той же сети, что и ваш компьютер, к которому подключен

Юсеф Субехи
источник
просто выключите брандмауэр
SalindaKrish
6

Возможно, ваш веб-сервер прослушивает ваш петлевой интерфейс, а не сетевой интерфейс. Основные признаки этого:

  • Хиты на 127.0.0.1и localhost(с локального хоста или эмулятора Android) работают
  • Хиты на 192.168.xxx.xxxне работают, будь то с локального хоста, локальной сети или глобальной сети

Я больше говорю о диагностике и исправлении в ответе здесь .

einnocent
источник
6

Попробуйте перейти к этому файлу: C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf

#   onlineoffline tag - don't remove
    Order Deny,Allow
    Allow from all // change it Deny
    Allow from 127.0.0.1

И измените 10.0.2.2 на ваш IP-адрес.

bangptit
источник
извините за изменение, чтобы разрешить формировать все, если это "Запретить"
bangptit
Я использую XAMPP, и это видео дало мне ответ, чтобы оно заработало
Леон
5

наконец сделано в Ubuntu, я запускаю сервер nodejs на локальном хосте: 8080

1) откройте терминал типа ifconfig, вы получите ip примерно так: inet addr: 192.168.43.17

2) теперь просто введите URL-адрес, например, так: «192.168.43.17:8080» (порт 8080 приходит с номера порта локального хоста), например: «192.168.43.17:8080/fetch»

iamkdblue
источник
это работает только для меня, когда подключен к той же сети. Мне нужно что-то, что работает без интернета
Geek Guy
5

Используйте это в вашем Ubuntu / Macbook, чтобы получить IP-адрес вашей системы. Ваш мобильный телефон и система должны быть в одной сети

ip addr | grep inetЭто даст вам IP-адрес, который выглядит следующим образом 192.168.168.46. Используйте это в своем смартфоне.

Надеюсь это поможет.

Навин Т.П.
источник
4

Я использовал этот процесс:

  • Установите Fiddler на ПК
  • Настройте ПК и устройство Android, следуя этим превосходным инструкциям
  • Просто зайдите в браузер на устройстве Android и введите http: //ipv4.fiddler для доступа к локальному хосту.

Обратите внимание, что этот процесс требует изменения настроек WiFi на устройстве Android в начале и в конце каждого сеанса. Я нашел это менее болезненным, чем рутирование моего устройства Android.

user3078359
источник
4

Более простой способ использовать localhost по умолчанию - использовать http: // localhost: port . Это работает в ноутбуке и Android, а также.

Если это не работает, то в Android установите IP-адрес вашего телефона по умолчанию 127.0.0.1:port :)

Откройте терминал и введите: -

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*
Harry1992
источник
3

Работал с этой проблемой, используя несколько разных локальных серверов. Наконец-то я запустил приложение и запустил его на телефоне за считанные секунды, просто используя простой сервер Python. Это займет всего несколько секунд, поэтому стоит попробовать, прежде чем переходить к более сложным решениям. Во-первых, убедитесь, что у вас установлен Python. cmd+rи введите pythonдля Windows или$ python --version в Mac терминал.

Следующий:

cd <your project root>

$ python -m SimpleHTTPServer 8000

Затем просто найдите адрес вашего хост-компьютера в сети, который я использовал System Preferences/Sharingна Mac, чтобы найти его. Нажмите, что на вашем устройстве Android и должен загрузить, index.htmlи вы должны быть хорошими.

Если нет, то проблема в чем-то другом, и вы можете рассмотреть некоторые другие предложенные решения. Удачи!

* РЕДАКТИРОВАТЬ *

Еще одним быстрым решением, которое стоит попробовать, если вы используете Chrome, является расширение «Веб-сервер для Chrome». Я нашел это быстрый и очень простой способ получить доступ к localhost на моем телефоне. Просто не забудьте проверить Accessible to local networkпод Optionsи он должен работать на вашей ячейке без каких-либо проблем.

введите описание изображения здесь

mikeym
источник
Будет ли это работать для других серверных языков, кроме Python?
МАШ
3

Ngrok позволяет вам разместить ваш локальный хост на временном сервере и очень прост в настройке. Я предоставил несколько шагов, которые можно найти по ссылке:

  1. Скачайте ngrok zip по ссылке выше
  2. Откройте почтовый индекс
  3. Запустите ваш сервер локально и запишите номер порта
  4. В терминале перейдите в папку, где живет ngrok и введите ngrok http [port number]

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

максвелл
источник
Это полезно только для внешнего доступа к серверу. Вы можете просто использовать локальный IP-адрес сервера.
OneCricketeer
3

Прежде всего подключите ваш телефон и компьютер к общему Wi-Fi.

Затем откройте командную строку, используя запуск от имени администратора

Дать команду ipconfig

Который показывает беспроводной LAN IP

Используйте ip: порт вашего сервера для доступа в телефон

user8246589
источник
2

Прежде всего, сделайте вашу машину (где работает сервер) статическим IP-адресом. Введите этот статический IP-адрес в код Android. Затем перейдите к интерфейсу вашего Wi-Fi роутера и проверьте левую панель. Вы увидите такую ​​опцию, как переадресация / переадресация портов. Нажмите на него и перешлите порт 80. Теперь отредактируйте ваш htttpd.confфайл и отредактируйте его для

Разрешить от всех

, Перезагрузите ваш сервер. Теперь все должно работать нормально.

Кроме того, вы можете зарезервировать IP-адрес вашей машины, чтобы он всегда был выделен вам. В левой панели интерфейса вашего роутера найдите DHCP -> Address Reservation, нажмите на него. Введите MAC-адрес вашего устройства и IP-адрес, который вы ввели в коде. Нажмите на сохранить. Это зарезервирует указанный IP-адрес для вашей машины.

Абхишек Сингх
источник
2

Решение для подключения моего мобильного устройства к серверу Wamp на основе моего ноутбука:

Во-первых, Wi-Fi не маршрутизатор. Таким образом, чтобы подключить мое мобильное устройство к серверу Wamp на основе локального хоста на моем ноутбуке, мне нужен маршрутизатор. Я скачал и установил бесплатный виртуальный маршрутизатор: https://virtualrouter.codeplex.com/

Настроить это действительно просто:

  1. щелкните правой кнопкой мыши значок виртуального маршрутизатора в системном трее
  2. нажмите на Настроить виртуальный маршрутизатор
  3. заполните пароль
  4. если ваше интернет-соединение в сети Ethernet, выберите Shared connection: Ethernet
  5. Затем включите Wi-Fi на своем ноутбуке и устройстве
  6. На вашем устройстве подключитесь к сетевому имени виртуального роутера

Затем вы можете подключиться к вашему ноутбуку через ваше устройство, запустив браузер и заполнить IPV4-адрес вашего ноутбука (чтобы найти его в Windows, введите cmd: ipconfig и найдите адрес ipv4)

Вы должны увидеть домашнюю страницу вашего сервера wamp.

Фред
источник
2

Хотя один ответ был принят, но это сработало для меня:

  1. Убедитесь, что ваш компьютер и устройство Android находятся в одной сети.
  2. получить IP-адрес вашего компьютера. (в случае типа Mac ifconfigвнутри терминала и искать en0/en1 -> inetего должно быть что-то вроде 19*.16*.1.4.) (в Windows используйте `ipconfig)
  3. Откройте настройки своего мобильного телефона и перейдите в сеть-> нажмите и удерживайте вашу сеть Wi-Fi-> измените сеть -> прокрутите вниз до расширенных параметров -> выберите руководство прокси-сервера и в поле имени хоста прокси-сервера введите свой адрес, т.е. 19*.16*.1.4внутри порта введите свой порт. и сохрани это.

  4. поиск what is my ipв Google Chrome, и получить свой IP, скажем, это1**.1**.15*.2**

  5. попробуйте получить доступ 1**.1**.15*.2**:port/с вашего мобильного устройства.

Это так просто.

с наилучшими пожеланиями
источник
Вам не нужен прокси-сервер через Wi-Fi, а также вам не нужен внешний IP-адрес в локальной сети
OneCricketeer
2

Это то, что работало для меня, я добавил еще одну строку после ip 127.0.0.1, чтобы указать точный IP-адрес локальной сети (не публичный IP-адрес) устройства, которое я хотел использовать. В моем случае мой Samsung Galaxy S3

В соответствии с предложением Bangptit отредактируйте файл httpd.conf (x - номера версий): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf

Найдите тег onlineoffline и добавьте IP-адрес вашего телефона (я нашел IP-адрес своего телефона на страницах конфигурации маршрутизатора):

онлайн оффлайн тег - не удалять

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

мои телефоны ip в строке ниже

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

Можно расширить это, включив также целый поддомен, например, 192.168.1.0/24 и т. Д.

HostMyBus
источник
2

Самый простой способ (для меня это работало безупречно) - это локальный хостинг вашего сайта 0.0.0.0:<port_no>и доступ к нему с помощью мобильных устройств, использование <local_ipv4_address>:<port_no>/<path>в браузере.

  • Чтобы узнать ваш локальный адрес ipv4, просто введите ipconfigcmd
  • ЛЮБОЕ устройство, подключенное к той же сети, может получить доступ к этому URL.
realpac
источник
2

Ngrok - лучшее решение. Если вы разрабатываете PHP, я рекомендую установить Laravel Valet , он имеет версии для MacOS и Linux, тогда вы можете использовать valet shareкоманду. Если вы разрабатываете какой-либо внешний интерфейс и вам нужен общий порт, например 3000, используйте напрямую ngrokngrok http 3000

Ямен Ашраф
источник
1

Добавление решения для будущих разработчиков.

Скопируйте адрес вашего IP-адреса. щелкните правой кнопкой мыши на своей сети -> сеть и обмен -> нажмите на соединение, которое у вас есть в данный момент -> подробности-> тогда адрес рядом с адресом ipv4 - это ваш IP-адрес, запишите это где-нибудь

Перейдите в панель управления -> Система и безопасность -> Брандмауэр Windows -> Расширенные настройки -> Входящие правила -> Новые правила (следуйте инструкциям, чтобы добавить порт, например, 80, его очень просто соблюдать)

рядом с ним укажите свой IP-адрес, который вы записали, в браузере телефона и номер порта, для которого вы создали правило. например, 192.168.0.2:80 и Wala.

Возможное решение, если оно не подключается. щелкните правой кнопкой мыши сеть-> открыть сеть и общий доступ-> посмотрите в списке ваших активных подключений, под названием вашего подключения тип подключения и щелкните его, если он общедоступный, и обязательно измените его на домашнюю сеть.

Шуяйб Абдулла
источник
1

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

user1453449
источник
0

использовать connectifyи xamppили эквивалент, и введите IP - адрес на мобильный адресной строке доступа

Фанеендра Чарьюлу Кандури
источник
0

Лично я не настаиваю на использовании localhost при использовании устройства, простого решения не существует.

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

Ахмет Арслан
источник