Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

  • введите в командной строке ipconfig (Windows) или ifconfig (Unix)
    • на Linux однострочный ifconfig | grep "inet " | grep -v 127.0.0.1 ifconfig | grep "inet " | grep -v 127.0.0.1 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.

Ответ 2

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

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

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

Wireless LAN adapter Wireless Network Connection:
  Connection-specific DNS Suffix  . :
  Link-local IPv6 Address . . . . . : fe80::80bc:e378:19ab:e448%11
  IPv4 Address. . . . . . . . . . . : 192.168.43.76
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . : 192.168.43.1
  • Скопируйте IPv4-адрес (в данном случае это 192.168.43.76)
  • В своем мобильном браузере просто вставьте IPv4-адрес

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

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

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

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

  • Открытая панель управления
  • Перейти к брандмауэру Защитника Windows
  • Нажмите Разрешить приложение или функцию через брандмауэр Защитника Windows.
  • Проверьте, включено ли приложение для частных сетей (должна быть галочка)
  • Если он не включен, нажмите " Изменить настройки" и установите флажок " Приватно" для приложения.

Ответ 3

Пользователи 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

Это даст мне:

Session Status                online
Update                        update available (version 2.2.8, Ctrl-U to update)
Version                       2.2.3
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://f7c23d14.ngrok.io -> localhost:9460
Forwarding                    https://f7c23d14.ngrok.io -> localhost:9460

Connections                   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

Ответ 4

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


Реверсивный разъем ADB (только для Android)

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

  1. Подключите Android-устройство 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 (работает со всеми устройствами)

Другим решением, которое всегда должно работать, является 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, могут это увидеть.

Ответ 5

На ПК с ОС 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"/>

Ответ 6

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

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

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


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

Шаг 1

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

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

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

Шаг 2

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

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

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

  • Выберите "Входящие правила" на левой панели, затем выберите "Новое правило".

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

  • Выберите переключатель "Конкретные локальные порты" и введите значение 80 в качестве значения порта.

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

  • Сохраняйте параметры профиля без изменений и нажмите "Далее".

  • Дайте небольшое имя вашему новому правилу и нажмите "Готово".

Это обеспечит доступ порта 80 к IP-сети локальной сети.

Шаг 3

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

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

  • Нажмите на значок лотка сервера Wamp.

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

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

  • Найти этот раздел конфигурации в файле 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-адрес вашей локальной сети.

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

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

  • В моем случае мой локальный сетевой адрес - 10.0.0.2.

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

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

Ответ 7

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

Ответ 9

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

Подробнее здесь: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding

Ответ 10

Попробуйте перейти к этому файлу: 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-адрес.

Ответ 11

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

  • Доступ к 127.0.0.1 и localhost (с помощью эмулятора localhost или Android)
  • Входы на 192.168.xxx.xxx не работают, будь то из localhost, LAN или WAN

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

Ответ 12

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

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

как эта фотография enter image description here

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

Ответ 13

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

1) открыть тип терминала ifconfig  вы получите ip что-то вроде этого: inet addr: 192.168.43.17

2) теперь просто поместите адрес url следующим образом:     "192.168.43.17:8080" (порт 8080, исходящий из номера локального порта)    ex: "192.168.43.17:8080/fetch"

Ответ 14

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

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

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

Ответ 15

У меня возникла проблема с использованием нескольких разных локальных серверов. Наконец, мое приложение заработало на телефоне за считанные секунды, просто используя простой сервер 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. Я нашел его быстрым и супер простым способом получить доступ к локальному хосту на моем телефоне. Просто не забудьте проверить Accessible to local network под Options, и он будет работать без проблем.

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

Ответ 16

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

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

Дайте команду ipconfig

Что показывает беспроводной lan ip

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

Ответ 17

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

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

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

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*

Ответ 18

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

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

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

Ответ 19

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

Как было предложено Bangptit, отредактируйте файл httpd.conf(x - номера версий): C:\WAMP\Bin\Apache\Apache2.x.x\конф\httpd.conf

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

тег on-line онлайн - не удаляйте

 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 и т.д.

Ответ 20

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

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

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

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

Ответ 21

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

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

Настройка очень проста:

  • щелкните правой кнопкой мыши значок виртуального маршрутизатора в системном лотке
  • нажмите "Настроить виртуальный маршрутизатор"
  • введите пароль
  • Если ваше интернет-соединение находится в сети Ethernet, выберите Общее соединение: Ethernet
  • Затем установите Wi-Fi на свой ноутбук и устройство.
  • На вашем устройстве подключитесь к имени виртуальной сети маршрутизатора

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

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

Ответ 22

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

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

Перейдите на панель управления → система и безопасность → брандмауэр Windows → расширенные настройки → входящие правила → новые правила (следуйте инструкциям по добавлению порта, например, 80, его действительно просто следовать)

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

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

Ответ 23

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

  • Загрузите ngrok zip из ссылки выше
  • Откройте zip
  • Запустите сервер локально и обратите внимание на номер порта
  • В терминале перейдите в папку, где живет ngrok, и введите ngrok http [port number]

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

Ответ 24

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

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

  • найдите what is my ip в google chrome и получите свой ip, скажем, что это 1**.1**.15*.2**

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

Это так же просто, как это.

Ответ 25

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

  • Чтобы узнать свой локальный адрес ipv4, просто введите ipconfig в cmd
  • Любое устройство, подключенное к сети SAME, может получить доступ к этому URL-адресу.

Ответ 26

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

Ответ 27

Использование USB-кабеля:

(например, если вы используете WAMP-сервер):

1) Установите свои Android-драйверы на свой ПК и загрузите портативный Android Tethering Reverse Tool и подключите свой Android устройства через приложение Reverse Tool.

2) Нажмите значок WAMP > Поставить в сеть (после перезапуска).

3) Откройте свой IP-адрес в браузере Android (т.е. http://192.168.1.22 ИЛИ http://164.92.124.42)

Чтобы найти локальный IP-адрес, нажмите Пуск > Выполнить > cmd и введите ipconfig, и ваш IP-адрес появится на выходе.

Это все. Теперь вы можете открыть (открыть) localhost с Android.

Ответ 28

используйте connectify и xampp или эквивалент и введите ip-адрес в строке URL для доступа к

Ответ 29

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

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

Ответ 30

Что сработало для меня (цель: отладить приложение сервера Windows, запущенное на localhost: 99999 из клиентского приложения, работающего на Android-телефоне)

  • телефон и компьютер, подключенные к одной сети, например. 192.168.1.xxx(подключен через Wi-Fi в моем случае)
  • включить порт 99999 в брандмауэре Windows.
  • выполняется в cmd как администратор: netsh http add urlacl url = http://*: 99999/user = Everyone

затем с телефона был доступен URL-адрес сервисного приложения (my_dev_machine_ip: 99999/path_to_service).