Làm cách nào tôi có thể truy cập localhost từ thiết bị Android của mình?


543

Tôi có thể truy cập máy chủ web máy tính xách tay của mình bằng trình giả lập Android, tôi đang sử dụng 10.0.2.2:portno hoạt động tốt.

Nhưng khi tôi kết nối điện thoại Android thực sự của mình, trình duyệt điện thoại không thể kết nối với cùng một máy chủ web trên máy tính xách tay của tôi. Điện thoại được kết nối với máy tính xách tay bằng cáp USB. Nếu tôi chạy lệnh thiết bị adb, tôi có thể thấy điện thoại của mình.

Tôi đang thiếu gì?



Xem tài liệu tại đây: developer.android.com/tools/devices/
Kẻ

3
Tắt tường lửa trong khi kiểm tra trang web của bạn hoặc thêm ip của bạn vào các mạng đáng tin cậy trong cài đặt tường lửa.
zeeali


súp ez với ngrok
JonPizza

Câu trả lời:


403

USB không cung cấp mạng cho thiết bị di động.

Nếu cả máy tính để bàn và điện thoại của bạn được kết nối với cùng một WiFi (hoặc bất kỳ mạng cục bộ nào khác), thì hãy sử dụng địa chỉ IP máy tính để bàn được chỉ định bởi bộ định tuyến (không localhostvà không 127.0.0.1).

Để tìm ra địa chỉ IP của máy tính để bàn của bạn:

  • gõ vào dòng lệnh ipconfig(Windows) hoặc ifconfig(Unix)
    • trên Linux, một lớp lót ifconfig | grep "inet " | grep -v 127.0.0.1sẽ chỉ mang lại những thứ quan trọng
    • có một loạt các đề xuất về cách có đầu ra tương tự trên Windows
  • sẽ có một loạt các IP
  • thử tất cả trong số họ (ngoại trừ đã đề cập localhost127.0.0.1)

Nếu điện thoại của bạn được kết nối với mạng di động , thì mọi thứ sẽ khó khăn hơn.

Hoặc là đi cứng:

  • trước tiên hãy tìm địa chỉ IP bên ngoài bộ định tuyến của bạn ( https://www.google.de/search?q=myip )
  • sau đó, trên bộ định tuyến, chuyển tiếp một số cổng tới <your desktop IP>:<server port number>
  • cuối cùng sử dụng địa chỉ IP bên ngoài và cổng chuyển tiếp

Nếu không, sử dụng một cái gì đó như xip.io hoặc ngrok .

LƯU Ý : ifconfigLệnh không được chấp nhận và do đó bị thiếu theo mặc định trên Debian Linux, bắt đầu từ Debian. Cách thay thế mới và được đề xuất để kiểm tra cấu hình mạng trên Debian Linux là lệnh ip. Ví dụ: để sử dụng lệnh ip để hiển thị cấu hình mạng chạy như sau:

ip address

Lệnh ip trên có thể được viết tắt là:

ip a

Nếu bạn vẫn thích sử dụng ifconfignhư một phần của thói quen quản trị hệ thống hàng ngày của mình, bạn có thể dễ dàng cài đặt nó như một phần của net-toolsgói.

apt-get install net-tools

Tham khảo tại đây


Cảm ơn, đây là sự giúp đỡ tuyệt vời cho tôi. Vấn đề đối với tôi là tôi không biết rằng máy chủ apache cục bộ có thể được xử lý thông qua ip 10.0.2.2. ... Tôi đã thử rất nhiều địa chỉ ip khác, như chương trình được hiển thị bởi ipconfig, v.v ... Nhưng một lần nữa, cảm ơn rất nhiều!
Vidar Vestnes

4
Tôi không hiểu giải pháp vấn đề này. Bạn có thể giúp tôi về cách điện thoại của tôi có thể truy cập máy chủ của tôi? Tôi hy vọng bạn xác thịt ra giải pháp này cho tôi. Cảm ơn.
bất chấp

1
Đọc bình luận của tôi dưới đây .. Bạn cũng phải có quyền truy cập internet. <used-allow android: name = "ERIC.INTERNET" />
Sanjay Kumar

3
@simo truy cập trang chủ bộ định tuyến của bạn, 10.0.0.1 cho XFinity, thường là 192.168.1.1 và đăng nhập, tìm Thiết bị được kết nối hoặc IP cục bộ, tìm máy tính của bạn và bam. Của tôi là 10.0.0. #, Sau đó chỉ cần thêm [10.0.0. # :( port) / Server / Servlet] hoặc bất cứ điều gì
jp093121

2
Đây không phải là câu trả lời được chấp nhận cho câu hỏi này. Chuyển tiếp cổng trong Chrome devtools và adb Reverse hoạt động hoàn toàn tốt với cáp USB.
Roger Madsen

228

Nó thực sự là khá đơn giản.

  • Bật Điểm truy cập WiFi của điện thoại / bộ định tuyến Android và kết nối Máy tính xách tay của bạn với điện thoại của bạn
  • Khởi động máy chủ của bạn tại localhost(Tôi đang sử dụng máy chủ WAMP cho Windows)
  • Bây giờ hãy mở dấu nhắc lệnh và nhập
ipconfig

Khi bạn đã thực hiện điều đó, bạn sẽ thấy một cái gì đó như sau:

Bộ điều hợp mạng LAN không dây Kết nối mạng không dây:
  Kết nối DNS dành riêng cho kết nối. :
  Địa chỉ IPv6 liên kết cục bộ. . . . . : fe80 :: 80bc: e378: 19ab: e448% 11
  Địa chỉ IPv4. . . . . . . . . . . : 192.168.43.76
  Mặt nạ mạng con. . . . . . . . . . . : 255.255.255.0
  Gateway mặc định . . . . . . . . . : 192.168.43.1
  • Sao chép Địa chỉ IPv4 (trong trường hợp này là 192.168.43.76)
  • Trong trình duyệt di động của bạn, chỉ cần dán Địa chỉ IPv4

Lưu ý: Vui lòng đặt mạng của bạn là " Mạng gia đình ". Đặt mạng là Mạng gia đình có nghĩa là bạn đang cho phép PC của bạn chia sẻ nội dung với các thiết bị khác trên cùng một mạng.

Nếu bạn đang sử dụng Windows 10, điều này có thể được thực hiện với các điều sau:

  • Mở Cài đặt
  • Tới Mạng & Internet
  • Chọn WiFi trong menu bên trái
  • Nhấn vào tên của WiFi được kết nối
  • Đặt cấu hình mạng của mạng là riêng tư

Nếu bạn gặp sự cố, rất có thể sẽ xảy ra với Windows Firewall.

  • Bảng điều khiển mở
  • Chuyển đến Tường lửa bảo vệ Windows
  • Chạm vào Cho phép ứng dụng hoặc tính năng thông qua Windows Defender Firewall
  • Kiểm tra xem ứng dụng có được bật cho Mạng riêng tư không (cần có đánh dấu)
  • Nếu nó không được bật, hãy nhấn Thay đổi cài đặt và đánh dấu vào hộp kiểm bên dưới Riêng tư cho ứng dụng

30
hm đã làm điều này nhưng trình duyệt dường như mất thời gian để tải sau đó nó cho tôi một oái oăm? Tôi có làm điều gì sai? Và ý của bạn là gì bởi mạng gia đình
Lion789

12
Hãy nhớ tắt tường lửa trong máy tính.
Minh Nguyễn

2
Đúng, tắt tường lửa giúp. Cảm ơn.
Beemo

2
* Mạng gia đình là (: Mạng gia đình có nghĩa là máy tính của bạn tôi được phép chia sẻ nội dung với các thiết bị của cùng một mạng.
Leap Hawk

6
"Chạm vào Cho phép ứng dụng hoặc tính năng thông qua Windows Defender Firewall Kiểm tra xem ứng dụng có được bật cho Mạng riêng không (cần có dấu tích)" Ý bạn là ứng dụng nào?
Liz Lamperouge

71

Người dùng Mac OS X

Tôi đã đạt được điều này bằng cách cho phép quản lý từ xa :

  • Đảm bảo rằng điện thoại và máy tính xách tay của bạn được kết nối với cùng một mạng WiFi
  • Trên máy Mac, đi đến System preferences/sharing
  • Cho phép quản lý từ xa

Bạn sẽ thấy một thông báo tương tự như thế này:

  • Người dùng khác có thể quản lý máy tính của bạn bằng địa chỉ some.url.com

Trên thiết bị Android của bạn, giờ đây bạn có thể truy cập some.url.com, đại biểu nào localhosttrên máy Mac của bạn. Bạn cũng có thể sử dụng ifconfigđể lấy địa chỉ IP của máy Mac.


Giải pháp di động với ngrok(mọi hệ điều hành có Node.js)

Nếu bạn không ngại phơi bày dự án của mình với một tên miền tạm thời, bạn có thể sử dụng ngrok. Hãy nói rằng tôi có một ứng dụng chạy trên localhost:9460tôi chỉ có thể viết

npm install ngrok -g

ngrok http 9460

Điều này sẽ cho tôi:

Tình trạng phiên trực tuyến
Cập nhật cập nhật có sẵn (phiên bản 2.2.8, Ctrl-U để cập nhật)
Phiên bản 2.2.3
Khu vực Hoa Kỳ (chúng tôi)
Giao diện web http://127.0.0.1:4040
Chuyển tiếp http://f7c23d14.ngrok.io -> localhost: 9460
Chuyển tiếp https://f7c23d14.ngrok.io -> localhost: 9460

Kết nối ttl opn rt1 rt5 p50 p90
                              0 0 0,00 0,00 0,00 0,00 0,00

Bây giờ tôi có thể tiếp cận https://f7c23d14.ngrok.ionhư một cách để xem từ xa localhost. Điều này là tuyệt vời để chia sẻ công việc thiết kế hoặc tiến độ với khách hàng.


Giải pháp thay thế với nginxproxy qua

Nếu bạn đang chạy một cái gì đó như thế này thông qua nginx proxy_passnó sẽ yêu cầu điều chỉnh nhiều hơn một chút - đây là một cách tiếp cận khó khăn, nhưng nó hiệu quả với tôi và tôi sẵn sàng đề xuất cải thiện nó:

  • Cho phép quản lý từ xa (như đã đề cập ở trên)
  • Tạm thời đặt máy chủ để nghe trên cổng 81chứ không phải80
  • Nhập lệnh sau:
sudo nginx -s reload
  • Chuyến thăm 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$;
  # ...
}

Tải lại và truy cập http://youripaddress:81


2
Nếu bạn đang sử dụng thiết lập 'quản lý từ xa' này, một điều hữu ích khác cần biết là nếu bạn có nhiều máy chủ bí danh đang chạy trong mamp, thiết bị di động của bạn (được kết nối qua usb) sẽ chỉ cấp cho bạn quyền truy cập vào <Virtualhost> đầu tiên được xác định trong httpd-vhosts.conf vì vậy chỉ cần di chuyển dự án hiện tại của bạn lên đầu danh sách
DrewT

Tôi đã kích hoạt quản lý từ xa trên máy Mac của mình như bạn đã nói và tôi được cấp một bộ hộp kiểm khác cho nhiều cách khác nhau mà máy tính của tôi có thể được quản lý từ xa. Tôi đã để tất cả chúng không được kiểm tra ngoại trừ Quan sát, và nó hoạt động tốt với tôi. Máy chủ web của tôi đang chạy trên máy mac của tôi trên cổng localhost 5555 và tôi thấy "những người dùng khác có thể quản lý máy tính của bạn bằng địa chỉ 10.0.0.12", vì vậy trong trình duyệt điện thoại của tôi, tôi đã gõ 10.0.0.12:5555 và thấy trang web của tôi.
Marcus

Nó hoạt động khi sử dụng IP 192.168.0.101nhưng tên máy chủ không hoạt động.
PC của Krishnadas

6
Trên máy Mac, chỉ cần ALT + nhấp vào Wi-Fi trên thanh menu để nhận địa chỉ IP của bạn.
toán học

Tôi đã tắt tường lửa của mình nhưng nó vẫn hiển thị kết nối bị từ chối, có ý tưởng nào để nó hoạt động không?
Unnikrish Nam

67

Với giải pháp đơn giản (chỉ cần truy cập laptop_ip_addr:porttừ thiết bị di động, khi thiết bị di động và máy tính xách tay có cùng WiFi), tôi gặp lỗi ERR_CONNMENT_REFUSED . Đó là, MacBook của tôi dường như từ chối nỗ lực kết nối từ điện thoại di động của tôi.


Ổ cắm đảo ngược ADB (chỉ dành cho Android)

Giải pháp này hiệu quả với tôi (đã thử nghiệm với MacBook):

  1. Kết nối thiết bị di động Android bằng cáp USB với máy tính xách tay
  2. Bật gỡ lỗi USB trên thiết bị di động
  3. Trên máy tính xách tay, chạy adb reverse tcp:4000 tcp:4000
    • Sử dụng số cổng tùy chỉnh của bạn thay vì 4000
  4. Bây giờ, trên thiết bị di động, bạn có thể điều hướng đến http://localhost:4000/và nó thực sự sẽ kết nối với máy tính xách tay chứ không phải thiết bị di động

Xem hướng dẫn tại đây .

Nhược điểm là điều này chỉ hoạt động với một thiết bị di động tại một thời điểm . Nếu bạn muốn truy cập với một thiết bị di động khác, trước tiên bạn phải ngắt kết nối thiết bị đầu tiên (tắt gỡ lỗi USB ), kết nối thiết bị mới (bật gỡ lỗi USB ) và chạy adb reverse tcp:4000 tcp:4000lại.


ngrok (hoạt động với tất cả các thiết bị)

Một giải pháp khác luôn luôn hoạt động là ngrok (như đã đề cập trong các câu trả lời khác). Nó hoạt động qua Internet, và không phải mạng cục bộ.

Nó rất dễ sử dụng:

brew cask install ngrok
ngrok http 4000

Kết quả này, trong số một số thông tin khác, một dòng như

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

Giờ đây, bạn có thể điều hướng đến http://4cc5ac02.ngrok.iotrên bất kỳ thiết bị nào được kết nối với Internet và URL này chuyển hướng đếnlocalhost:4000 máy tính xách tay của bạn.

Lưu ý rằng miễn là lệnh ngrok đang chạy (cho đến khi bạn nhấn Ctrl-C ), dự án của bạn sẽ được phục vụ công khai . Mọi người có URL đều có thể xem.


2
bạn đã cứu mạng anh chàng của tôi
Trở thành

Cảm ơn bạn. Bạn đã giúp tôi rất nhiều. Tôi đã sử dụng adb đảo ngược chỉ thay thế 4000 cổng thành 3000 và nó hoạt động như tôi cần.
Marcus Crisostomo

cuối cùng đã làm việc, cảm ơn!
Alex

38

Tôi tìm thấy một giải pháp nhanh chóng cho vấn đề này. Hãy thử liên kết này . Nó sẽ giúp bạn khắc phục vấn đề.

Tôi chỉ thay đổi một điều, trong đó hướng dẫn nói rằng bạn thay đổi '127.0.0.1' thành 'Tất cả', thay đổi nó thành địa chỉ IP mà máy chủ của bạn đang chạy thay thế.

Sau đó, bạn sẽ có thể kết nối với localhost của bạn.


Dưới đây là bản sao (hiệu đính) thông tin từ trang được liên kết:

Bước 1

Cài đặt máy chủ Wamp (hoặc bất kỳ máy chủ nào khác bạn thích).

Đây là một trong những máy chủ tốt nhất mà tôi biết để thiết lập một máy chủ cục bộ. Nếu bạn đã cài đặt Apache hoặc bất kỳ máy chủ nào khác, hãy bỏ qua bước này.

Tải xuống và cài đặt Wamp Server từ đây.

Bước 2

Thêm quy tắc mới cho cổng 80 trong Windows Firewall.

  1. Mở Bảng điều khiển và chọn Tường lửa Windows.

  2. Chọn Cài đặt nâng cao từ bảng điều khiển bên trái của trang cài đặt Tường lửa của Windows.

  3. Chọn Quy tắc trong nước từ bảng điều khiển bên trái, sau đó chọn Quy tắc mới.

  4. Chọn Cổng và nhấp vào Tiếp theo.

  5. Chọn các nút cục bộ của Cổng cụ thể và nút 80 và nhập 80 làm giá trị cổng.

  6. Giữ Cho phép kết nối không thay đổi và chuyển sang bước tiếp theo.

  7. Giữ tùy chọn Hồ sơ không thay đổi và nhấp vào Tiếp theo.

  8. Đặt một số tên hay cho quy tắc mới của bạn và nhấp vào Kết thúc.

Điều này sẽ cho phép truy cập cổng 80 trên IP mạng cục bộ.

Bước 3

Chỉnh sửa tệp httpd.conf của máy chủ Wamp để sửa lỗi 403.

Chúng tôi cần chỉnh sửa tập tin này. Nếu không, chúng tôi sẽ nhận được lỗi 403 bị cấm khi chúng tôi truy cập localhost thông qua IP mạng cục bộ.

  1. Nhấp vào biểu tượng khay máy chủ Wamp.

  2. Mở menu phụ máy chủ Apache.

  3. Chọn httpd.conf.

  4. Tìm phần cấu hình này trong tệp 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

Tìm và thay thế '127.0.0.1' bằng 'Tất cả', lưu tệp và khởi động lại máy chủ Wamp của bạn.

Bước 4

Tìm IP mạng cục bộ của bạn.

  1. Mở dấu nhắc lệnh.

  2. Nhập và nhập ipconfiglệnh.

  3. Trong trường hợp của tôi, địa chỉ mạng cục bộ của tôi là 10.0.0.2.

Đây là IP mà bạn cần truy cập localhost trên điện thoại Android qua wifi. Để kiểm tra xem nó có hoạt động không, hãy nhập địa chỉ IP này vào trình duyệt máy tính để bàn nơi máy chủ localhost của bạn được cài đặt. Trình duyệt sẽ hiển thị trang localhost của bạn thành công. Điều này sẽ đảm bảo rằng IP mạng cục bộ này hiện có thể truy cập thành công trên điện thoại Android của bạn.

Tôi hy vọng hướng dẫn này sẽ giúp bạn truy cập localhost của bạn qua wifi.


Cảm ơn! Điều này làm việc rất dễ dàng. một điều nữa thôi; Tôi đã rời httpd.conf dưới dạng# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb

1
Hướng dẫn dựa trên windows? wut?
abbood

1
liên kết không hoạt động nữa nên hiện tại toàn bộ câu trả lời là vô ích vì thông tin chưa được thêm vào SO về cách thực hiện.
rtack

Đối với máy chủ Wamp v3, tôi đã gặp phải một lỗi bị cấm. Kiểm tra câu trả lời này stackoverflow.com/questions/23382627/ trên cách sửa đổi thông tin vhosts (không chỉnh sửa tệp httpd.conf như được hiển thị ở trên)
friek108

Đây là một phiên bản thực sự cũ của Wamp, có vẻ như các tệp cấu hình phức tạp hơn một chút. Đặc biệt nếu bạn sử dụng tính năng Vhosts. Tôi không thể tìm ra nó, quá nhiều lớp ghi đè.
Jonathan

37

Trên PC Windows Bạn có thể không cần phải làm gì khác ngoài việc tìm ra Địa chỉ IPv4 của mình bằng lệnh "ipconfig".

  • Bước 1: Kết nối điện thoại của bạn với PC bằng cáp USB.
  • Bước 2: Sử dụng lệnh 'ipconfig' để tìm ra Địa chỉ IPv4 của bạn (IP bên ngoài của Bộ định tuyến), ví dụ 192.168.1.5 trong trường hợp của tôi.
  • Bước 3: Chỉ cần truy cập "192.168.1.5:8080" từ trình duyệt điện thoại của bạn. Nó hoạt động!

Chi tiết Env khác: Windows 7, Google Nexus 4 (4.2.2), Máy chủ Tomcat, Ứng dụng Grails.

Bạn cũng nên đảm bảo rằng bạn có quyền truy cập internet trong tệp AndroidManifest:

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

Tôi đã thử nhưng nó cứ nói rằng "Kết nối bị từ chối". Tại sao? :( Cổng có phải là 8080 không? Hiện tại, dịch vụ web của tôi đang chạy trên một cổng khác.
Tràm Đoan

2
Tôi đã sử dụng tomcat tại cổng 8080. Bạn có thể nối thêm cổng máy chủ của riêng bạn thay cho 8080.
Sanjay Kumar

và một ứng dụng web thì sao? không phải là một ứng dụng gốc
amdev

Tôi vẫn không có quyền truy cập vào localhost của mình
Anna Leonenko

Tôi đã thử nhưng nó nóijava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

Tuy nhiên, có một giải pháp tốt hơn nhiều. Bạn có thể truy cập máy chủ của mình bằng địa chỉ IP "10.0.2.2". Điều này đã được thiết kế theo cách này bởi nhóm Android. Vì vậy, máy chủ web của bạn hoàn toàn có thể chạy tại localhost và từ ứng dụng Android của bạn, bạn có thể truy cập nó qua "http://10.0.2.2:8080".


4
Đó là sự thật, mẹo là chỉ định địa chỉ IP cục bộ của máy của bạn và truy cập nó thông qua bộ định tuyến không dây được kết nối giữa thiết bị Android và hệ thống còn gọi là máy của bạn
Akhil Jain

Điểm tuyệt vời, tôi đã tìm kiếm chính xác điều này, để giao tiếp giả lập với localhost. Cảm ơn!!
bàng

13

Vì đây là một câu hỏi cũ, có một cách mới để làm điều này thực sự rất đơn giản. Tải xuống tiện ích mở rộng ADB Chrome và sau đó làm theo các hướng dẫn sau:

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


3
Không cần tải xuống ADB nữa, nó không được dùng nữa, nhưng hãy truy cập developers.google.com/chrome-developer-tools/docs/ Kẻ và làm theo hướng dẫn. Lưu ý: Tôi đã phải chuyển tiếp cổng 8443 sang localhost: 8443
Dimitris

điều này chỉ hoạt động đối với các cuộc gọi url từ Chrome trên thiết bị hay nó cũng hoạt động trong ứng dụng của tôi?
Orkun Ozen

3
Điều này đưa tôi đi đúng hướng - một câu trả lời gần đây hơn về Chrome Dev Tools có thể được tìm thấy ở đây: Chuyển tiếp cổng đảo ngược của Chrome Chrome
Richard Le Mesurier

Tôi bị kẹt vì tôi không cài đặt google chrome trên thiết bị của mình. Đừng!
Chad Bingham

9

"Chuyển tiếp cổng trên Chrome cho Android giúp dễ dàng kiểm tra trang web phát triển của bạn trên thiết bị di động. Nó hoạt động bằng cách tạo cổng TCP nghe trên thiết bị di động của bạn ánh xạ tới một cổng TCP cụ thể trên máy phát triển của bạn. Lưu lượng giữa các cổng này truyền qua USB, vì vậy kết nối không phụ thuộc vào cấu hình mạng của bạn. "

Thêm chi tiết tại đây: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


9

Giải pháp này có thể sử dụng được khi thiết bị di động và máy tính của bạn không nằm trong cùng một mạng:

Bạn cần sử dụng cổng chuyển tiếp trong trường hợp này. Trong cửa sổ Google chrome tests (chrome: // tests) Bạn có thể thấy các thiết bị được kết nối. nhập mô tả hình ảnh ở đây

Nhấp vào nút fowading cổng và đặt một cổng ngẫu nhiên nói 3000 đến cổng mà máy tính xách tay của bạn sử dụng là 8080.

nhập mô tả hình ảnh ở đây

hiện sử dụng localhost: 3000 từ thiết bị để truy cập localhost: 8080 (or_whthing_ip: portno) trong máy tính xách tay. Bạn có thể kiểm tra nó trong trình duyệt di động. Hãy thử localhost: 3000 trong trình duyệt di động. Đảm bảo chọn hộp kiểm "Bật chuyển tiếp cổng" trong cửa sổ "Cài đặt chuyển tiếp cổng"


Tôi yêu bạn anh chàng! Bạn cần viết một hướng dẫn với các bước này!
Rafael Gomes Francisco

7

Chạy CMD với tư cách quản trị viên

và trên màn hình CMD gõ ipconfig và màn hình sẽ xuất hiện với văn bản

như bức ảnh này nhập mô tả hình ảnh ở đây

và bạn có thể truy cập localhost của mình bằng ip này, bạn phải kết nối với cùng mạng với máy tính của bạn được kết nối với


chỉ cần tắt tường lửa
SalindaKrish

6

Bạn có thể có máy chủ web của bạn nghe trên giao diện loopback chứ không phải trên giao diện mạng của bạn. Dấu hiệu chính của điều này là:

  • Lượt truy cập 127.0.0.1localhost (từ trình giả lập localhost hoặc Android) hoạt động
  • Lượt truy cập 192.168.xxx.xxxkhông hoạt động, cho dù từ localhost, LAN hoặc WAN

Tôi nói nhiều hơn về chẩn đoán và sửa lỗi này trong câu trả lời ở đây .


6

Hãy thử vào tập tin này: 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

Và thay đổi 10.0.2.2 thành địa chỉ IP của bạn.


xin lỗi thay đổi để cho phép tất cả hình thức nếu đó là "Từ chối"
bangptit

Tôi đang sử dụng XAMPP và video này đã cho tôi câu trả lời để nó hoạt động: youtube.com/watch?v=YrA_yN3gySs
Leon

5

Cuối cùng cũng được thực hiện trong Ubuntu, tôi đang chạy máy chủ nodejs trên localhost: 8080

1) mở loại thiết bị đầu cuối ifconfig, bạn sẽ nhận được một cái gì đó như thế này: inet addr: 192.168.43.17

2) bây giờ chỉ cần đặt địa chỉ url như thế này: "192.168.43.17:8080" (cổng 8080 đến từ số cổng localhost) ex: "192.168.43.17:8080/fetch"


Điều này chỉ hoạt động với tôi khi kết nối với cùng một mạng. Tôi cần thứ gì đó hoạt động mà không cần internet
Geek Guy

5

Sử dụng điều này trong ubfox / Macbook của bạn để lấy địa chỉ IP của hệ thống của bạn. Điện thoại di động và hệ thống của bạn phải ở trong cùng một mạng

ip addr | grep inetĐiều này sẽ cung cấp cho bạn một địa chỉ IP trông giống như 192.168.168.46. Sử dụng điều này trong điện thoại thông minh của bạn.

Hi vọng điêu nay co ich.


4

Tôi đã sử dụng quy trình này:

  • Cài đặt Fiddler trên PC
  • Thiết lập PC và thiết bị Android theo các hướng dẫn tuyệt vời này
  • Chỉ cần truy cập trình duyệt trên thiết bị Android và nhập http: //ipv4.fiddler để truy cập localhost

Lưu ý rằng quy trình này yêu cầu bạn thay đổi cài đặt WiFi trên thiết bị Android vào đầu và cuối mỗi phiên. Tôi thấy điều này ít đau đớn hơn sau đó root thiết bị Android của tôi.


4

Cách dễ dàng hơn để mặc định localhost là sử dụng http: // localhost: port . Điều này hoạt động trong một máy tính xách tay và Android là tốt.

Nếu nó không hoạt động, thì trong Android, hãy đặt IP mặc định của điện thoại của bạn thành 127.0.0.1:port :)

Mở terminal và gõ: -

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

3

Đã chạy vào vấn đề này bằng cách sử dụng một số máy chủ localhost khác nhau. Cuối cùng, ứng dụng của tôi đã chạy và chạy trên điện thoại chỉ trong vài giây chỉ bằng cách sử dụng máy chủ Python đơn giản. Chỉ mất vài giây vì vậy rất đáng để thử trước khi đi vào bất kỳ giải pháp phức tạp hơn. Đầu tiên, hãy chắc chắn rằng bạn đã cài đặt Python. cmd+rvà gõ pythoncho Windows hoặc$ python --version trong thiết bị đầu cuối mac.

Kế tiếp:

cd <your project root>

$ python -m SimpleHTTPServer 8000

Sau đó, chỉ cần tìm địa chỉ của máy chủ của bạn trên mạng, tôi đã sử dụng System Preferences/Sharingtrên mac để tìm nó. Nhấn vào thiết bị Android của bạn và tải của bạn index.htmlvà bạn sẽ hoạt động tốt.

Nếu không thì vấn đề là một cái gì đó khác và bạn có thể muốn xem xét một số giải pháp được đề xuất khác. Chúc may mắn!

* BIÊN TẬP *

Một giải pháp nhanh khác để thử nếu bạn đang sử dụng Chrome là Web Server cho Chrome tiện ích mở rộng. Tôi thấy đó là một cách nhanh chóng và siêu dễ dàng để truy cập vào localhost trên điện thoại của tôi. Chỉ cần đảm bảo kiểm tra Accessible to local networkbên dưới Optionsvà nó sẽ hoạt động trên tế bào của bạn mà không có vấn đề gì.

nhập mô tả hình ảnh ở đây


Nó sẽ làm việc cho các ngôn ngữ phía máy chủ khác ngoài python?
Mh

3

ngrok cho phép bạn đặt localhost của mình lên một máy chủ tạm thời và rất đơn giản để thiết lập. Tôi đã cung cấp một số bước ở đây có thể tìm thấy trong liên kết:

  1. Tải xuống zip ngrok từ liên kết trên
  2. Mở khóa kéo
  3. Chạy máy chủ của bạn cục bộ và ghi chú số cổng
  4. Trong thiết bị đầu cuối, đi đến thư mục nơi ngrok sống và gõ ngrok http [port number]

Bạn sẽ thấy một bảng điều khiển nhỏ trong thiết bị đầu cuối của bạn với một địa chỉ trỏ đến localhost của bạn. Trỏ ứng dụng của bạn đến địa chỉ đó và xây dựng cho thiết bị của bạn.


Điều này chỉ hữu ích để truy cập bên ngoài máy chủ. Bạn chỉ có thể sử dụng địa chỉ IP cục bộ của máy chủ.
OneCricketeer

3

Trước hết kết nối điện thoại và máy tính của bạn với wifi chung.

Sau đó, mở command prompt bằng Run as administrator

Đưa ra lệnh ipconfig

Hiển thị ip không dây

Sử dụng ip: port của máy chủ của bạn để truy cập trong điện thoại


2

Trước hết làm cho máy tính của bạn (nơi máy chủ đang chạy) địa chỉ IP tĩnh. Nhập địa chỉ IP tĩnh này trong mã android. Tiếp theo, đi đến giao diện của bộ định tuyến wifi và kiểm tra bảng điều khiển bên trái. Bạn sẽ thấy tùy chọn như chuyển tiếp / chuyển tiếp cổng. Nhấp vào nó và chuyển tiếp cổng 80. Bây giờ chỉnh sửa htttpd.conftệp của bạn và chỉnh sửa nó cho

Cho phép từ tất cả

. Khởi động lại máy chủ của bạn. Mọi thứ nên hoạt động tốt bây giờ.

Ngoài ra, bạn có thể đặt trước địa chỉ IP của máy để nó luôn được phân bổ cho bạn. Trong bảng điều khiển bên trái của giao diện bộ định tuyến của bạn, tìm DHCP -> Address Reservation, nhấp vào nó. Nhập địa chỉ MAC của máy của bạn và địa chỉ IP bạn đã nhập mã. Bấm vào lưu. Điều này sẽ dành địa chỉ IP nhất định cho máy của bạn.


2

Một giải pháp để kết nối thiết bị di động của tôi với máy chủ wamp dựa trên máy tính xách tay của tôi:

Đầu tiên, wifi không phải là một bộ định tuyến. Vì vậy, để kết nối thiết bị di động của tôi với máy chủ wamp của tôi dựa trên localhost trên máy tính xách tay của tôi, tôi cần một bộ định tuyến. Tôi đã tải xuống và cài đặt bộ định tuyến ảo miễn phí: https://virtualrouter.codeplex.com/

Cấu hình nó thực sự đơn giản:

  1. nhấp chuột phải vào biểu tượng bộ định tuyến ảo trong Khay hệ thống
  2. bấm vào Configure router ảo
  3. điền mật khẩu
  4. nếu kết nối internet của bạn bằng ethernet, hãy chọn Kết nối được chia sẻ: Ethernet
  5. Sau đó đặt wifi trên máy tính xách tay và thiết bị của bạn
  6. Trên thiết bị của bạn kết nối với tên mạng bộ định tuyến ảo

Sau đó, bạn có thể kết nối với máy tính xách tay của mình qua thiết bị bằng cách khởi chạy trình duyệt và điền địa chỉ IPV4 của máy tính xách tay của bạn (để tìm nó trên windows, nhập cmd: ipconfig và tìm địa chỉ ipv4)

Bạn sẽ thấy trang chủ máy chủ wamp của bạn.


2

Mặc dù một câu trả lời đã được chấp nhận nhưng điều này làm việc cho tôi:

  1. Đảm bảo cả máy tính và thiết bị Android của bạn nằm trên cùng một mạng.
  2. lấy địa chỉ IP của máy tính của bạn. (trong trường hợp loại mac ifconfigbên trong terminal và tìm kiếm en0/en1 -> inetnó sẽ giống như 19*.16*.1.4.) (trên windows, sử dụng `ipconfig)
  3. Mở cài đặt điện thoại di động của bạn và đi đến mạng-> bấm dài wifi của bạn mạng-> Sửa mạng -> di chuyển xuống để tùy chọn nâng cao -> chọn proxy theo cách thủ và hostname Proxy gõ địa chỉ ví dụ của bạn 19*.16*.1.4bên trong cảng nhập cảng của bạn. và lưu nó

  4. tìm kiếm what is my iptrong google chrome và nhận ip của bạn, giả sử nó là1**.1**.15*.2**

  5. hãy thử truy cập 1**.1**.15*.2**:port/từ thiết bị di động của bạn.

Nó đơn giản như thế này.


Bạn không cần proxy qua WiFi và bạn cũng không cần địa chỉ IP bên ngoài trong mạng cục bộ
OneCricketeer

2

Đây là những gì làm việc cho tôi, tôi đã thêm một dòng khác sau ip 127.0.0.1 để chỉ định địa chỉ IP mạng cục bộ chính xác (không phải địa chỉ IP công cộng) của thiết bị tôi muốn sử dụng. Trong trường hợp của tôi, Samsung Galaxy S3 của tôi

Theo đề xuất của Bangptit, chỉnh sửa tệp httpd.conf (x là số phiên bản): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf

Tìm kiếm thẻ onlineoffline và thêm ip của điện thoại của bạn (Tôi tìm thấy địa chỉ IP của điện thoại trong các trang cấu hình bộ định tuyến của mình):

thẻ onlineoffline - không xóa

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

ip điện thoại của tôi trong dòng dưới đây

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

Người ta có thể mở rộng điều này để bao gồm toàn bộ tên miền phụ, ví dụ 192.168.1.0/24, v.v.


2

Cách DỄ DÀNG nhất (cách này hiệu quả với tôi) là lưu trữ cục bộ trang web của bạn tại 0.0.0.0:<port_no>và truy cập nó bằng thiết bị di động, sử dụng <local_ipv4_address>:<port_no>/<path>trong trình duyệt.

  • Để biết địa chỉ ipv4 cục bộ của bạn, chỉ cần nhập ipconfigcmd
  • BẤT K device thiết bị nào được kết nối với mạng CÙNG có thể truy cập url này.

2

Ngrok là giải pháp tốt nhất. Nếu bạn đang phát triển PHP thì tôi khuyên bạn nên cài đặt Laravel Valet , Nó có phiên bản MacOS và Linux, sau đó bạn có thể sử dụng valet sharelệnh. Nếu bạn đang phát triển bất kỳ công nghệ frontend nào và cần chia sẻ một cổng như 3000 thì hãy sử dụng ngrok trực tiếpngrok http 3000


1

Thêm một giải pháp cho các nhà phát triển trong tương lai.

Sao chép địa chỉ địa chỉ IP của bạn. nhấp chuột phải vào mạng của bạn -> mạng và chia sẻ-> nhấp vào kết nối bạn hiện có-> chi tiết-> sau đó địa chỉ bên cạnh địa chỉ ipv4 là địa chỉ IP của bạn, hãy lưu ý điều này ở đâu đó

Chuyển đến bảng điều khiển -> hệ thống và bảo mật -> tường lửa windows -> cài đặt nâng cao -> quy tắc trong -> quy tắc mới (làm theo các bước để thêm một cổng, ví dụ 80, rất đơn giản để làm theo)

đặt địa chỉ IP mà bạn đã ghi chú trên trình duyệt điện thoại và số cổng bạn đã tạo quy tắc cho bên cạnh nó. ví dụ 192.168.0.2:80 và wala.

Giải pháp có thể nếu nó không kết nối. nhấp chuột phải vào mạng-> mở mạng và chia sẻ-> xem bên dưới xem các kết nối đang hoạt động của bạn, dưới tên kết nối của bạn ở loại kết nối và nhấp vào nó nếu nó là công khai và đảm bảo thay đổi nó thành mạng gia đình.


1

Một điều cần kiểm tra là một số bộ định tuyến có vấn đề bắc cầu cho các yêu cầu khi cả 2.4G và 5G được bật và các thiết bị ở các tần số khác nhau. Cố gắng vô hiệu hóa một trong các tần số để cả hai thiết bị được kết nối với cùng một giao diện.



0

Cá nhân tôi không khăng khăng sử dụng localhost khi sử dụng thiết bị, không có giải pháp dễ dàng.

Chỉ cần bắt đầu hoạt động nơi bạn kết nối với localhost nơi bạn có thể sử dụng trình giả lập. Bất cứ thông tin nào bạn có được từ thiết bị đều có thể được tạo dễ dàng và có thể được gửi đến hoạt động dưới dạng tham số.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.