Làm cách nào để truy cập máy chủ web cục bộ trên máy tính xách tay của tôi từ một máy tính khác? [đóng cửa]


37

Tôi có một ứng dụng đang chạy trên máy tính của mình tại 127.0.0.1:3000

Tôi muốn truy cập ứng dụng đó từ iPhone được kết nối với cùng một mạng. Tôi đã làm điều này trước đây nhưng bỏ qua cách tôi đã làm nó. Có ý kiến ​​gì không?


2
Hãy thử rails server -b 0.0.0.0, sau đó trình duyệt này trên iPhone của bạn.
zx1986

Câu trả lời:


37

Trước tiên, bạn cần xác định địa chỉ IP hoặc tên của máy bạn đang chạy máy chủ web. Tôi giả sử bạn đang chạy máy chủ web trên máy Mac vì bạn đã gắn thẻ bài đăng của mình macosxvào các hướng dẫn tương tự cho các máy linux. Vì vậy, trên máy Mac của bạn:

  • Mở Terminal.app. Nó ở dưới Applications->Utilities.
  • Chạy ifconfigtrong thiết bị đầu cuối. Điều đó cho bạn thấy tất cả các giao diện mạng trên máy. Một trong số đó là mạng mà máy của bạn được kết nối tích cực. Nếu máy Mac của bạn đang kết nối có dây thì nên en0. Ghi lại địa chỉ sau inet- đó phải là địa chỉ mà máy của bạn sử dụng.
    • Giả sử bạn khám phá nó 192.168.10.1.
  • Xác minh rằng bạn có thể kết nối với địa chỉ đó từ máy chủ của bạn với nc -v 192.168.10.1 3000.
    • Bạn sẽ thấy một tin nhắn như thế nào Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Nếu điều đó không làm việc, xem bên dưới.
    • Nếu nó hoạt động, nhấn ctrl-Cđể thoát phiên nc.
  • Bây giờ hãy thử kết nối trên máy khách của bạn.
    • Nếu đây là một ứng dụng web, bạn sẽ có thể kết nối qua trình duyệt
    • Ví dụ: thử http://192.168.10.1:3000

Nếu bạn không thể kết nối với ứng dụng của mình trên địa chỉ thực của máy chủ, điều đó có nghĩa là ứng dụng của bạn không nghe trên địa chỉ đó. Bạn sẽ cần điều tra cách thay đổi cấu hình ứng dụng của mình để sửa đổi hành vi đó. Vì tôi không biết ứng dụng nào bạn đang chạy nên tôi không thể đưa ra bất kỳ ý tưởng hay nào về điều đó.


Người bạn đời 10 ... có gì khác biệt khi nói về một hệ thống dựa trên windows với máy chủ Wamp trên đó ... có sự khác biệt nào không?
SEO Sagive

Tôi đang sử dụng mac sierra. Tôi có thể truy cập máy chủ từ máy mac của mình (nơi máy chủ đang chạy) qua 10.55.18.22:3000 nhưng không thể truy cập máy chủ từ một máy khác mặc dù cả hai đều nằm trong cùng một mạng. Tùy chọn chia sẻ web không có sẵn trong sierra. Làm thế nào chúng ta có thể làm cho công việc này?
santhosh kumar

saanthosh: Nhìn vào cổng chuyển tiếp trên bộ định tuyến của bạn. Đó là những gì tôi đã làm trước khi tôi phát hiện ra tính năng chia sẻ internet của OSX (dường như đã có sẵn từ ít nhất là OSX 10.6). Tôi đã thử nghiệm localhost trên nhiều thiết bị di động trong cùng phòng / mạng với máy phát triển OSX của tôi, có thể thực hiện bằng các thay đổi tiêu chuẩn / nhỏ đối với cấu hình bộ định tuyến (tức là chuyển tiếp cổng). Các bài viết và chủ đề SO khác cung cấp thông tin về cấu hình bộ định tuyến. Cuối cùng, tôi đang ở một vị trí mới và không có quyền truy cập vào bộ định tuyến, vì vậy thay vào đó tôi sử dụng chia sẻ internet OSX (High Sierra) để đạt được điều tương tự.
MarsAndBack

12

Tìm tên máy Mac của bạn bằng cách sử dụng hostname(tại dấu nhắc Terminal) và sử dụng tên đó trong URL của bạn. Ví dụ: http: //Tonys-iMac.local: 3000 /

Nếu vì lý do nào đó Bonjour không hoạt động trong môi trường của bạn, hãy tìm địa chỉ của Sân bay trên iMac hoặc MacBook với

ipconfig getifaddr en1

hoặc nói chung với

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


Câu trả lời này có một số tối ưu hóa tốt so với tôi về việc tìm tên máy chủ và địa chỉ IP của bạn.
Phil Hollenback

2
Tại sao bonjour không hoạt động? Tôi tìm tên máy chủ của mình là gm20152.local. Nhưng khi tôi thử gm20152.local: 3000 trên cùng một máy, nó sẽ hiện ra một trang hợp lệ. Nhưng khi tôi thử gm20152.local: 3000 trên điện thoại Android của tôi, trình duyệt trên điện thoại của tôi không thể tìm thấy máy chủ. Tôi nghĩ điều này là do điện thoại của tôi không có cách nào lập bản đồ gm20152.local đến địa chỉ ip của macbook của tôi. Làm thế nào tôi có thể thực hiện điều này?
gprasant

@gprasant Bắt Android sử dụng Bonjour có vẻ khá khó khăn
James

5

Về cơ bản, từ cài đặt tường lửa, bạn có thể cho phép một ứng dụng nhất định (ví dụ như ruby) chấp nhận các kết nối đến. Ngoài ra, để cho phép truy cập vào thế giới bên ngoài (ví dụ www), bạn sẽ cần chuyển tiếp lưu lượng truy cập đến cổng nội bộ: cổng thông qua cài đặt bộ định tuyến của bạn.

Đây là cách để làm điều này:

  1. Mac-> Sys Preferences-> Sharing-> Bật hộp kiểm Web Web Sharing
  2. Mac-> Sys Preferences-> Security-> cho phép ứng dụng của bạn (ví dụ như ruby) chấp nhận kết nối đến
  3. Mở một cổng trên bộ định tuyến (thông qua 192.168.1.1) để chuyển tiếp lưu lượng truy cập từ your_web_ip: port sang local_gateway: port

    1. Ví dụ: từ cài đặt bộ định tuyến của Verizon của tôi -> Chuyển tiếp cổng -> tạo quy tắc: chuyển tiếp đến cổng cục bộ (ví dụ: 192.168.1.4), cổng tùy chỉnh, giao thức tcp, source = any, Destination = 3280, tất cả các loại kết nối, chuyển tiếp tới port = 3000.

Làm xong. Bây giờ từ máy tính từ xa, hãy mở trình duyệt của bạn đến địa chỉ IP web của bạn (tìm qua http://www.whatismyip.com/ ) + cổng đích # ở trên, ví dụ 72.189.194,65:3280, điều này sẽ kết nối với 192.168.1.4 cục bộ của bạn : 3000

Lưu ý: Tôi đang chạy trên Mac OSX 10.7.5


2

127.0.0.1 là địa chỉ cục bộ mà mọi máy tính đều có. Bạn phải tìm ra địa chỉ IP thực (hoặc tên máy chủ / tên Bonjour) của máy là gì. Truy cập Tùy chọn hệ thống, Mạng và tra cứu IP của máy, cho cổng Ethernet nếu bạn sử dụng cáp hoặc Sân bay nếu bạn sử dụng mạng WLAN. Sau đó mở địa chỉ này cùng với: 3000 phần trong Safari trên iPhone.


Ngoài ra, Tùy chọn chia sẻ ngăn luôn hiển thị tên hoặc địa chỉ mà máy tính của bạn có thể truy cập.
James

2

Nếu ứng dụng chỉ nghe trên 127.0.0.1:3000 thì bạn không thể truy cập nó từ máy tính khác. Để làm như vậy, bạn sẽ cần sửa đổi cấu hình thành Nghe IP hoặc 0.0.0.0 (tất cả các giao diện có sẵn). Tùy chọn một.

Tùy chọn thứ hai là sử dụng proxy.

Tùy chọn thứ ba là nếu bạn có thể ssh từ iphone, bạn cũng có thể sử dụng chuyển tiếp ssh.

người dùng ssh @ host -L 3000: 127.0.0.1: 3000

Sau đó, trên iphone của bạn mở 127.0.0.1:3000


1
AFAIK, bạn không thể chuyển tiếp cổng ssh trên iPhone. Không, nếu nó không được jailbreak.
Sven

Nghe này 0.0.0.0! Làm thế nào tôi có thể không nghĩ về điều đó?
Gustavo Straube

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.