同时访问WiFi LAN(没有网关)和移动网络

问题描述 投票:12回答:2

我知道之前曾有人问过(解决方案有限或没有解决方案,但是我没有看到任何最新更新,我认为我的情况很独特,因此我将开始一个新线程。

我有一个Raspberry Pi,它起着其他功能。根据设计,DHCP不会分发默认网关。我的用例是一个或多个与Pi作为服务器交互的设备。

其中一个连接的设备将是移动设备(编辑:运行我设计的定制应用程序,该应用程序是整个解决方案的一部分),该设备将保持其蜂窝连接,而不是用于网络共享或路由,而是使应用程序可以同时访问内部和外部资源。

当前:

IOS:这完全符合我在IOS上预期的工作-感觉到WiFi网络没有默认网关,并通过小区发送外部流量。

Android:根本不起作用。 Android顽固地看到WiFi已连接并禁用了蜂窝网络,即使没有默认网关也是如此。

Windows Phone:混合的种类。两个网络都保持正常运行,但是我的方案在公共DNS中有一个DNS条目,并且有一个公共站点链接到Pi上的资源。如果我使用Pi的WiFi IP地址直接链接到资源,则可以正常工作(尽管这会导致其他与安全性相关的问题)。如果我通过FQDN链接,则实际上不确定发生了什么。尽管我在电话上安装的用于故障排除的每个联网实用程序都可以通过DNS正确地将FQDN解析为Pi地址,但是它无法通过Web浏览器解析。

希望这很有道理。问题:2015年如何全面启用此功能? :)就我而言,Pi作为不可路由的私有热点比WiFi Direct或Bluetooth更好。记住,我并不是在问电话ROUTE;我需要我的自定义应用程序,以便能够同时连接到Pi和公共互联网。我希望所有电话都可以执行IOS在这方面的工作。

我目前的情况是Pi托管网页(除其他外),这是我的偏爱,但这是否可以本机解决?

android ios network-programming windows-phone android-wifi
2个回答
1
投票

您说这不是网络共享或路由的情况,但是如果您考虑一下,确实是两者兼有。

这是路由,因为来自电话的流量需要路由到两个接口之一。电话可能没有路由,但仍然是路由问题。幸运的是,路由部分似乎可以在所有三个平台上正常工作。这也是一种不常见的网络共享形式。唯一的区别是流量不是来自Pi,而是来自电话,并且Pi而不是电话充当接入点。

关于网络共享的思考很重要,因为它表明Android CAN可以同时具有WiFi和蜂窝活动功能(至少在热点模式下,也可能在客户端模式下)。在这方面,我的答案还不完整-我无法告诉您如何实现。

关于您提到的Windows Phone问题:为了解决此问题,请首先确定知道Pi的FQDN的DNS服务器所在的位置。即使公共DNS服务器显然在专用网络上,它也知道吗?

有两种可能的解释供您观察:

    [没有公共DNS服务器甚至不知道此FQDN。在这种情况下,IOS可能会使用mDNS之类的东西来定位Raspberry Pi。
  • 那里
  • 知道此FQDN的公共DNS服务器。在这种情况下,也许Windows Phone会检查DNS答复中是否有火星人并拒绝它,并认为这是一种攻击。两种方法中,您真正需要的是拥有两个单独的DNS基础结构。一种方法是在您的应用程序中包括一个小型DNS服务器(可能是dnsmasq),并使用Pi的FQDN为该区域配置一个转发器,以转发到Pi的IP地址(显然,必须进行硬编码)。所有其他请求都应发送到常规DNS服务器。

另一种方法可能是根本不使用DNS,而是使用hosts文件。


0
投票
对于Android手机,您可以使用名为“ WiFi和移动数据交换器”(https://play.google.com/store/apps/details?id=com.totemsoft.wifimd)的应用程序。对我来说,它解决了同时连接到互联网(通过移动数据)和本地网络(通过WiFi,无法通过WiFi访问互联网)的问题。此应用程序可以在三星Galaxy A8上正常运行。希望我的评论对某人有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.