2015-02-09 17 views
8

Tôi biết rằng nó đã được hỏi trước (có giới hạn hoặc không có giải pháp) nhưng tôi chưa thấy bất kỳ cập nhật nào gần đây và tôi nghĩ kịch bản của tôi là duy nhất. một chủ đề mới.Truy cập mạng LAN WiFi (không có gateway) và mạng di động đồng thời

Tôi có một Raspberry Pi và nó hoạt động như một điểm nóng trong số những thứ khác. Theo thiết kế, DHCP không đưa ra một cổng mặc định. Trường hợp sử dụng của tôi là một hoặc nhiều thiết bị tương tác với Pi như một máy chủ.

Một trong các thiết bị được kết nối sẽ là thiết bị di động (chỉnh sửa: chạy ứng dụng tùy chỉnh thiết kế của tôi là một phần của giải pháp tổng thể) và thiết bị sẽ duy trì kết nối di động của nó chứ không phải để chia sẻ kết nối hoặc định tuyến ứng dụng có thể truy cập tài nguyên nội bộ và bên ngoài cùng một lúc.

Hiện tại:

IOS: này hoạt động chính xác như tôi mong đợi trên IOS - nó cảm nhận rằng mạng WiFi không có một gateway mặc định và gửi giao thông đối ngoại trên di động.

Android: Tính năng này không hoạt động. Android bướng bỉnh thấy kết nối WiFi và vô hiệu hóa di động, ngay cả khi không có cổng mặc định.

Windows Phone: Loại lai. Cả hai mạng ở lại nhưng kịch bản của tôi có một mục DNS trong DNS công cộng, và một trang web công cộng liên kết đến một tài nguyên trên Pi. Nếu tôi liên kết đến tài nguyên trực tiếp bằng cách sử dụng địa chỉ IP WiFi của Pi, nó hoạt động tốt (mặc dù điều này gây ra các vấn đề khác liên quan đến bảo mật). Nếu tôi liên kết thông qua một FQDN, tôi thực sự không chắc chắn những gì đang xảy ra. Nó không giải quyết từ trình duyệt web mặc dù mọi tiện ích mạng tôi đã cài đặt trên điện thoại để khắc phục sự cố giải quyết chính xác FQDN đến địa chỉ Pi qua DNS.

Hy vọng điều này có ý nghĩa. Câu hỏi: Làm thế nào tôi có thể kích hoạt chức năng này trên bảng trong năm 2015? :) Vì mục đích của tôi, Pi là một điểm phát sóng không thể truy cập riêng tư hoạt động tốt hơn WiFi trực tiếp hoặc Bluetooth. Và hãy nhớ rằng tôi không yêu cầu điện thoại ROUTE; Tôi cần ứng dụng tùy chỉnh của mình để có thể kết nối đồng thời với Pi và Internet công cộng. Tôi muốn tất cả các điện thoại để làm những gì IOS làm trong lĩnh vực này.

Kịch bản hiện tại của tôi là Pi lưu trữ một trang web (trong số những thứ khác) và đó là sở thích của tôi, nhưng điều này thậm chí có thể được giải quyết nguyên bản?

+1

Điều này không thực sự về lập trình ... Bạn có thể có nhiều thành công hơn nếu bạn đăng ở nơi khác. – JonasCz

+0

Nhưng lập trình viên là những người có nhiều khả năng nhất có yêu cầu tương tự, và vì vậy rất có thể biết cách giải quyết các API/giải pháp thay thế tối thiểu có thể có hiệu quả. – Brett

+0

True ... [This] (http://stackoverflow.com/questions/18394066/android-use-wifi-direct-and-cellular-data-in-app) và [This] (http: // stackoverflow. com/questions/24429190/how-wifi-và-di động-dữ liệu-cả hai-làm việc-đồng thời-in-android-cho-obd2-thiết bị) có thể giúp, mặc dù có thể chỉ khi bạn đang làm các yêu cầu mạng trong ứng dụng của riêng bạn bạn đã tự viết. (Vì vậy, bạn có thể sử dụng các API thích hợp) – JonasCz

Trả lời

1

Bạn nói rằng đây không phải là tình trạng chia sẻ kết nối hoặc định tuyến, nhưng nếu bạn nghĩ về nó, nó thực sự là cả hai.

Nó đang định tuyến vì lưu lượng truy cập từ điện thoại cần được định tuyến đến một trong hai giao diện. Có thể không có định tuyến qua điện thoại nhưng vẫn là sự cố định tuyến. May mắn thay, có vẻ như phần định tuyến đang hoạt động trên cả ba nền tảng.

Đây cũng là một hình thức chia sẻ kết nối không bình thường. Sự khác biệt duy nhất là lưu lượng truy cập không bắt nguồn từ Pi, nhưng từ điện thoại và Pi thay vì điện thoại hoạt động như điểm truy cập.

Suy nghĩ về tính năng chia sẻ kết nối là quan trọng vì nó cho thấy Android CÓ thể có WiFi và hoạt động di động cùng một lúc (ít nhất là ở chế độ điểm phát sóng, nhưng cũng có thể ở chế độ khách). Về khía cạnh này, câu trả lời của tôi chưa hoàn thành - tôi không thể nói cho bạn biết làm thế nào để đạt được điều đó.

Đối với sự cố về điện thoại Windows bạn đã đề cập: để khắc phục sự cố đó, trước tiên hãy xác định vị trí máy chủ DNS có vị trí biết về FQDN của Pi.Có một máy chủ DNS công cộng biết về nó, mặc dù nó rõ ràng là trên một mạng riêng?

Có hai cách giải thích cho sự quan sát của bạn:

  • Không có máy chủ DNS công cộng mà thậm chí biết FQDN này. Trong trường hợp đó, IOS có thể sử dụng một cái gì đó như mDNS để xác định vị trí Raspberry Pi.
  • máy chủ DNS công khai biết FQDN này. Trong trường hợp đó, có thể Windows Phone sẽ kiểm tra trả lời DNS cho người sao Hỏa và từ chối nó, nghĩ rằng đó là một cuộc tấn công.

Dù bằng cách nào, điều bạn thực sự cần là có hai cơ sở hạ tầng DNS riêng biệt. Một cách để làm điều này là bao gồm một máy chủ DNS nhỏ (dnsmasq có thể) với ứng dụng của bạn và định cấu hình giao nhận cho vùng có FQDN của Pi để chuyển tiếp tới địa chỉ IP của Pi (chắc chắn sẽ được mã hóa cứng). Tất cả các yêu cầu khác nên đi đến các máy chủ DNS thông thường.

Một cách khác là không sử dụng DNS, thay vào đó hãy sử dụng tệp máy chủ lưu trữ.

+0

Về tình hình cửa sổ, suy nghĩ tốt để đặt một máy chủ DNS trên pi. Tôi đã thiết lập một mục dns công khai cho IP riêng đó nhưng có thể kết nối wifi không tận dụng công khai và có sẵn thông qua mạng di động. Máy chủ sẽ không giúp trừ khi tôi có thể đặt một tập tin lưu trữ trên tất cả các khách hàng điện thoại - điện thoại cần độ phân giải để CORS sẽ hoạt động. – Brett

+0

Tôi thực sự nghi ngờ rằng Windows có thể đơn giản chặn các phản hồi DNS với những gì nó nhận là địa chỉ IP "không hợp lệ" vì lý do bảo mật. Ngoài ra, việc đặt một máy chủ DNS trên pi sẽ không tự giúp đỡ. Ngoài ra, bạn cũng phải có cách để chỉ dẫn các truy vấn DNS * chỉ * cho FQDN đó đến Pi, và tất cả những thứ khác cho máy chủ DNS công cộng. Do đó, cần có một máy chủ DNS khác trong thiết bị. Trên máy chủ: có, tôi đã có nghĩa là để thêm FQDN của bạn trên mỗi tập tin máy chủ của điện thoại. Nó có thể là tầm thường để làm khi cài đặt ứng dụng của bạn, hoặc nó có thể là không thể. –

+0

Cuối cùng đã có thời gian để kiểm tra điều này. Pdns đã cài đặt, khu vực trùng lặp được định cấu hình cho vùng có thể truy cập công khai của tôi, đã giải quyết được sự cố cho Windows Phone. Hai xuống, một (Android) để đi :). – Brett

Các vấn đề liên quan