我的Android设备上托管了一个HTTP服务器。我希望它能够从互联网访问它,即使它连接到家庭wifi(无线路由器后面)。
此外,在路由器上配置静态端口转发不是一种选择,因为从互联网上我无法访问路由器配置。
我有任何选择吗?
我试过了:
Android应用程序从特定端口号(例如8080)向Android设备(具有本地IP地址,例如192.168.0.1)发送HTTP请求,通过家庭WIFI向互联网上的Web服务器发送,
路由器会将源地址修改为其公共IP地址(例如111.100.45.65),将源端口号修改为任意随机端口号(例如39824),并在其动态NAT表中创建一个条目。
内部IP内部端口外部端口 192.168.0.1 8080 39824
根据我的理解,此条目至少保留几个小时。 互联网上的Web服务器将源IP和端口分别报告为111.100.45.65和39824.
在从Android应用程序向互联网上的Web服务器发送HTTP请求后,我在设备的端口8080上运行HTTP服务器。现在,如果我要从互联网发送HTTP请求到端口39824的地址111.100.45.65,它应该由设备上运行的HTTP服务器接收(路由器将解析来自其动态NAT表的请求并将其指向我的设备)
但出于某种原因,这个请求并没有得到解决。任何指针。
答案 0 :(得分:1)
首先,关于从Internet访问路由器配置,大多数路由器确实支持来自WAN接口的登录。它在大多数路由器上默认关闭,但只要您的密码安全,就没有理由不能启用它。
其次,如果您在Internet上的Web服务器上设置代理,那么您尝试的将会起作用。
顺便说一句,我怀疑NAT条目是否保留了至少几个小时。您可能希望在Android设备和Internet上的Web服务器之间实现保持活动机制,以便TCP漏洞保持打开状态。
答案 1 :(得分:0)
没有。您的应用可以通过端口39824与网络上的http服务器进行通信。没有其他人可以使用该端口通过Web与您设备上的http服务器建立联系。您需要在路由器上进行端口转发,才能从互联网上访问您的设备。