Як я можу отримати доступ до свого локального господаря зі свого пристрою Android?


542

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

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

Що я пропускаю?



Дивіться документацію тут: developer.android.com/tools/devices/…
Генрі Алоні,

3
Вимкніть брандмауер під час тестування веб-сторінки або додайте ip до надійних мереж у налаштуваннях брандмауера.
zeeali


souper ez with ngrok
JonPizza

Відповіді:


401

USB не забезпечує мережу для мобільного пристрою.

Якщо і ваш робочий стіл, і телефон підключені до однієї і тієї ж WiFi (або будь-якої іншої локальної мережі), використовуйте 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як частину щоденного розпорядження системного адміністрування, ви можете легко встановити його як частину 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-адреси, знайдіть комп’ютер та бам. Моє було 10.0.0. #, Тоді просто додайте [10.0.0. # :( порт) / сервер / сервлет] або що завгодно
jp093121

2
Це не має бути прийнятою відповіддю на це питання. Переадресація портів у Chrome devtools та adb-реверс прекрасно працює за допомогою USB-кабелю.
Роджер Мадсен

228

Це насправді досить просто.

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

Щойно ви зробите це, ви побачите щось таке:

Бездротовий адаптер LAN Бездротове підключення до мережі:
  Суфікс DNS-специфічного з'єднання. :
  Адреса IPv6 для локальної посилання. . . . . : 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 у меню зліва
  • Торкніться назви підключеного Wi-Fi
  • Встановіть мережевий профіль мережі як приватний

Якщо у вас виникли проблеми, швидше за все, це стосується брандмауера Windows.

  • Відкрийте панель керування
  • Перейдіть на брандмауер Windows Defender
  • Натисніть Дозволити додаток або функцію через брандмауер Windows Defender
  • Перевірте, чи додаток увімкнено для приватних мереж (має бути галочка)
  • Якщо це не ввімкнено, торкніться опції Змінити налаштування та поставте прапорець біля пункту Приватне для програми

30
Хм зробив це, але браузер, здається, вічно завантажується, то він дає мені ой? чи я щось роблю не так? І що ви маєте на увазі під домашньою мережею
Lion789,

12
Будь ласка, не забудьте вимкнути брандмауер у комп'ютері.
Мінь Нгуен

2
Так, відключення брандмауера допомогло. Дякую.
Бемо

2
* Домашня мережа є (Домашня мережа означає, що ваш комп'ютер мені дозволяв ділитися речами з пристроями тієї ж мережі.
Leap Hawk

6
"Натисніть Дозволити додаток або функцію через брандмауер Windows Defender. Перевірте, чи увімкнено програму для приватних мереж (має бути галочка)" Про який додаток ви маєте на увазі?
Liz Lamperouge

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


2
Якщо ви використовуєте цю настройку «віддаленого керування», ще одна корисна річ, яку потрібно знати, якщо у вас є безліч зарубіжних серверів, які працюють у болоті, ваш мобільний пристрій (підключений через usb) надасть вам доступ лише до першого <VirtualHost>, тобто визначено в httpd-vhosts.conf, тому просто перенесіть свій поточний проект у верхню частину списку
DrewT

Як ви сказали, я ввімкнув дистанційне управління на моєму комп'ютері, і мені дали ще один набір прапорців для різних способів управління моїм комп'ютером віддалено. Я залишив їх без контролю, окрім Спостереження, і це спрацювало чудово. Мій веб-сервер працював на моєму комп'ютері на порту localhost 5555, і я побачив, що "інші користувачі можуть керувати вашим комп’ютером за адресою 10.0.0.12", тому в браузер свого телефону я набрав 10.0.0.12.185555 і побачив свою веб-сторінку.
Маркус

Він працював під час використання IP, 192.168.0.101але ім'я хоста не працювало.
ПК

6
Для Mac просто натисніть ALT + натисніть Wi-Fi на панелі меню, щоб отримати вашу IP-адресу.
matharden

Я відключив брандмауер, але все-таки він показує, що з'єднання відмовилося, будь-яка ідея, як його працювати
Unnikrishnan

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 (працює з усіма пристроями)

Ще одне рішення, яке завжди має працювати - це 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-адресу, можуть бачити її.


2
ти врятував мій життєвий чувак
бути

Дякую. Ти мені дуже допоміг. Я використав adb reverse просто замінивши 4000 порт на 3000, і він працював, як мені потрібно.
Маркус

чорт, що працював нарешті, дякую!
Олексій

38

Я знайшов швидке вирішення цієї проблеми. Спробуйте це посилання . Це має допомогти вам усунути проблему.

Я змінив лише одне, де в підручнику зазначено, що ви змінюєте "127.0.0.1" на "Усі", змінюєте його на IP-адресу, на якій працює ваш сервер.

Після цього ви зможете підключитися до свого локального господаря.


Нижче наведена (коректорна) копія інформації з пов’язаної сторінки:

Крок 1

Встановіть сервер Wamp (або будь-який інший, який ви віддаєте перевагу).

Це один з найкращих серверів, які я знаю, щоб створити локальний сервер. Якщо ви встановили Apache або будь-який інший сервер, ігноруйте цей крок.

Завантажте та встановіть Wamp Server звідси.

Крок 2

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

  1. Відкрийте панель керування та виберіть Брандмауер Windows.

  2. Виберіть Додаткові налаштування на лівій панелі сторінки налаштування брандмауера Windows.

  3. Виберіть "Вхідні правила" на лівій панелі, а потім виберіть "Нове правило".

  4. Виберіть Порт і натисніть кнопку Далі.

  5. Виберіть перемикач "Специфічні локальні порти" та введіть 80 як значення порту.

  6. Тримайте Дозволити з'єднання незмінним і перейдіть до наступного кроку.

  7. Залиште параметри профілю незмінними та натисніть кнопку Далі.

  8. Дайте приємне ім’я своєму новому правилу та натисніть кнопку Готово.

Це дозволить порту 80 отримати доступ до IP локальної мережі.

Крок 3

Відредагуйте файл httpd.conf сервера Wamp, щоб виправити помилку 403.

Нам потрібно відредагувати цей файл. В іншому випадку ми отримаємо 403 заборонену помилку, коли отримаємо доступ до localhost через 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.

Я сподіваюся, що цей підручник допоможе вам отримати доступ до локального хосту через wifi.


Дякую! це спрацювало так легко. лише одне; Я залишив httpd.conf як# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb

1
підручник на базі Windows? вут?
абат

1
посилання вже не працює, тому вся відповідь зараз марна, оскільки інформація не була додана до SO про те, як це зробити.
rtack

Для сервера Wamp v3 я отримував заборонену помилку. Перевірте цю відповідь stackoverflow.com/questions/23382627/… про те, як змінити інформацію про vhosts (не редагуйте файл httpd.conf, як показано вище)
Frik108,

Це дійсно стара версія 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, додаток Grails.

Також слід переконатися, що у вас є дозвіл на доступ до Інтернету у файлі AndroidManifest:

<uses-permission android:name="android.permission.INTERNET"/>

Я спробував, але все одно говориться, що "З'єднання відмовилося". Чому? :( Чи повинен бути порт 8080? На даний момент моя веб-служба працює на іншому порту.
Triet Doan

2
Я використовував tomcat у порту 8080. Ви можете додати власний порт сервера замість 8080.
Санджай Кумар

а що з webbapp? не рідний додаток
amdev

Я досі не маю доступу до свого місцевого господаря
Анна Леоненко

Я спробував це, але там сказаноjava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

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


4
Правда, хитрість tht полягає в тому, щоб вказати локальну ip-адресу вашої машини та отримати доступ до неї за допомогою бездротового маршрутизатора, підключеного між вашим пристроєм Android та вашою системою aka aka
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 до localhost: 8443
Димитріс

чи працює це лише для URL-дзвінків із Chrome на пристрої чи це також працює з мого додатка?
Оркун Озен

3
Це ставить мене на правильний шлях - більш пізню відповідь про Інструменти Chrome Dev можна знайти тут: Android Chrome Rewarding Forwarding
Forward

Я застряг, бо в мене на пристрої не був встановлений хром Google. До!
Чад Бінгем

9

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

Детальніше тут: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


9

Це рішення можна використовувати, коли ваш мобільний пристрій та комп'ютер не в одній мережі:

У цьому випадку вам потрібно використовувати переадресацію портів. У вікні перевірки хрому Google (chrome: // inspect) Ви можете бачити підключені пристрої. введіть тут опис зображення

Натисніть на кнопку обмотування портів і встановіть випадковий порт, скажімо, 3000 на порт, який використовує ваш ноутбук, наприклад 8080.

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

тепер використовуйте localhost: 3000 з пристрою, щоб отримати доступ до localhost: 8080 (або_що б: портно) на ноутбуці. Перевірити це можна в браузері мобільних пристроїв. Спробуйте localhost: 3000 в браузері мобільних пристроїв. Обов’язково поставте прапорець "Увімкнути переадресацію порту" у вікні "Налаштування переадресації портів"


Я люблю тебе чувак! Вам потрібно написати підручник з цими кроками!
Рафаель Гомес Франциско,

7

Запустіть CMD як адміністратор

а на екрані CMD введіть ipconfig і на екрані з'явиться текст

як ця фотографія введіть тут опис зображення

і ви можете отримати доступ до свого localhost за допомогою цього ip, ви повинні бути підключені до тієї ж мережі, до якої підключений ваш ПК


просто вимкніть брандмауер
SalindaKrish

6

Можливо, ваш веб-сервер слухатиме в інтерфейсі, а не в мережевому інтерфейсі. Основними ознаками цього є:

  • Працюють перегляди 127.0.0.1та localhost(від localhost або Android емулятора)
  • Перегляди 192.168.xxx.xxxне спрацьовують, будь то з Localhost, LAN або WAN

Я більше говорю про діагностування цього та виправлення цього у відповіді тут .


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

Я використовую XAMPP, і це відео дало мені відповідь, щоб він працював: youtube.com/watch?v=YrA_yN3gySs
Леон,

5

нарешті зроблено в Ubuntu, я запускаю сервер nodejs на localhost: 8080

1) відкрити термінальний тип ifconfig, ви отримаєте ip щось подібне: inet addr: 192.168.43.17

2) тепер просто поставте URL-адресу на зразок цього: "192.168.43.17:8080" (порт 8080, що надходить з номера порту localhost), наприклад: "192.168.43.17:8080/fetch"


це працює для мене лише під час підключення до однієї мережі. Мені потрібно щось, що працює без Інтернету
Geek Guy

5

Використовуйте це у своєму ubuntu / Macbook, щоб отримати ip адресу вашої системи. Ваш мобільний телефон і система повинні бути в одній мережі

ip addr | grep inet Це дасть вам ip-адресу, яка виглядає так 192.168.168.46 . Використовуйте це у своєму смартфоні.

Сподіваюсь, це допомагає.


4

Я використовував цей процес:

  • Встановити Fiddler на ПК
  • Налаштуйте ПК та Android, дотримуючись цих чудових інструкцій
  • Просто перейдіть до браузера на пристрої Android та введіть http: //ipv4.fiddler, щоб отримати доступ до localhost

Зауважте, що цей процес вимагає змінити параметри WiFi на пристрої Android на початку та в кінці кожного сеансу. Мені це здалося менш болісним, ніж укорінення мого пристрою Android.


3

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

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


Чи буде це працювати для інших мов сервера, ніж python?
МАШ

3

ngrok дозволяє поставити localhost на тимчасовий сервер і його дуже просто налаштувати. Тут я надав кілька кроків, які можна знайти за посиланням:

  1. Завантажте поштовий індекс ngrok за посиланням вище
  2. Відкрийте блискавку
  3. Запустіть свій сервер локально і врахуйте номер порту
  4. У терміналі перейдіть до папки, де живе ngrok і введіть ngrok http [port number]

У вашому терміналі ви побачите невелику інформаційну панель з адресою, яка вказує на ваш localhost. Наведіть додаток на цю адресу та побудуйте на своєму пристрої.


Це корисно лише для зовнішнього доступу до сервера. Ви можете просто використовувати локальну ip-адресу сервера.
OneCricketeer

3

Перш за все підключіть телефон і комп’ютер до загального wifi.

Потім відкрийте командний рядок, використовуючи запустити як адміністратор

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

Який показує бездротовий lan ip

Використовуйте ip: порт вашого сервера для доступу в телефон


3

Найпростіший спосіб замовчувати localhost - це використовувати http: // localhost: port . Це працює також у ноутбуці та Android.

Якщо це не працює, то в android встановіть IP-адресу телефону за замовчуванням на 127.0.0.1:port :)

Відкрити термінал і набрати: -

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

2

Перш за все, зробіть IP-адресу машини (де працює сервер) статичної статичної. Введіть цю статичну IP-адресу в код андроїда. Далі перейдіть до інтерфейсу маршрутизатора wifi та перевірте панель ліворуч. Ви побачите такий варіант, як переадресація / переадресація порту. Клацніть на ньому та переадресайте порт 80. Тепер відредагуйте htttpd.confфайл та відредагуйте його

Дозволити від усіх

. Перезавантажте сервер. Зараз все повинно працювати нормально.

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


2

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

По-перше, wifi - це не маршрутизатор. Отже, щоб підключити мобільний пристрій до мого сервера wamp на основі localhost на своєму ноутбуці, мені потрібен маршрутизатор. Я завантажив і встановив безкоштовний віртуальний роутер: https://virtualrouter.codeplex.com/

Настроїти це дуже просто:

  1. клацніть правою кнопкою миші на піктограму віртуального маршрутизатора в системній панелі
  2. натисніть кнопку Налаштувати віртуальний роутер
  3. заповніть пароль
  4. якщо ваше інтернет-з'єднання знаходиться в ethernet, виберіть Спільне з'єднання: Ethernet
  5. Потім увімкніть wifi на своєму ноутбуці та пристрої
  6. На своєму пристрої підключіться до імені віртуального маршрутизатора

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

Ви повинні побачити домашню сторінку вашого сервера wamp.


2

Хоча одна відповідь була прийнята, але це працювало для мене:

  1. Переконайтеся, що і ваш комп'ютер, і Android-пристрій знаходяться в одній мережі.
  2. отримати ip-адресу комп’ютера. (у випадку типу mac ifconfigвсередині терміналу і шукайте, en0/en1 -> inetвін повинен бути чимось на зразок19*.16*.1.4 .) (у Windows використовуйте `ipconfig)
  3. Відкрийте налаштування мобільного телефону та перейдіть до мережі-> довго натисніть мережу wifi-> модифікуйте мережу -> прокрутіть вниз до розширених опцій -> вибрав посібник проксі і введіть свою адресу, тобто 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

Знайдіть тег онлайн-лінії та додайте 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 тощо


2

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

  • Щоб знати локальну адресу ipv4, просто введіть ipconfigcmd
  • Будь-який пристрій, підключений до мережі SAME, може отримати доступ до цієї URL-адреси.

2

Ngrok - найкраще рішення. Якщо ви розробляєте PHP, то я рекомендую встановити Laravel Valet , Він має версії MacOS та Linux, тоді ви можете використовувати valet shareкоманду. Якщо ви розробляєте будь-яку технологію інтерфейсу і вам потрібно поділити порт на зразок 3000, тоді використовуйте ngrok безпосередньоngrok http 3000


1

Додавання рішення для майбутніх розробників.

Скопіюйте адресу своєї ip-адреси. клацніть правою кнопкою миші на вашій мережі -> мережа та спільний доступ>> натисніть на з'єднання, яке ви маєте на даний момент-> деталі-> тоді адреса поруч із ipv4 адресою є вашою ip адресою, десь запишіть це

Перейдіть на панель управління -> система та безпека -> брандмауер Windows -> розширені налаштування -> вхідні правила -> нові правила (виконайте вказівки, щоб додати порт, наприклад 80, його дійсно просто дотримуватися)

помістіть свою ip-адресу, яку ви зазначили, у своєму браузері телефону та номер порту, для якого ви створили правило. наприклад, 192.168.0.2:80 та вала.

Можливе рішення, якщо воно не підключиться. клацніть правою кнопкою миші мережу-> відкрита мережа та спільний доступ>> перегляньте свої активні з'єднання під назвою вашого з'єднання за типом з'єднання та натисніть на нього, якщо воно є загальнодоступним, і переконайтесь, що перейдіть на домашню мережу.


1

Інша річ, що потрібно перевірити, - це те, що у деяких маршрутизаторів виникають проблеми, що з'єднують запити, коли ввімкнено і 2.4G, і 5G, а пристрої працюють на різних частотах. Спробуйте відключити одну з частот, щоб обидва пристрої були підключені до одного інтерфейсу.


0

використовувати connectifyі xamppабо еквівалент, і введіть ip-адресу на мобільному рядку URL-адреси для доступу


0

Особисто я не наполягаю на використанні localhost під час використання пристрою, немає простого рішення.

Просто запустіть діяльність, коли ви підключитесь до localhost, де можна використовувати емулятор. Незалежно від інформації, яку ви маєте отримати з пристрою, можна генерувати з легкістю і може бути надіслана в якості параметра в якості параметра.

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