2

我运行了一个教程,包括用于树莓派 3 的 HTTP 服务器应用程序。链接在这里:https ://incredibits.io/project/windows-10-iot-internet-of-things-tips/windows-10-iot-raspberry-pi-网络服务器

在我的本地网络中,一切正常。我运行服务器,在浏览器中输入树莓派的本地 IP(192.168.xx),然后出现“hello world”——太好了。但是,当我想从局域网外部访问我的 HTTP 服务器时,我遇到了一个问题。我做了什么: 1. 在我的路由器中转发端口 80 2. 在 PowerShell 中使用以下命令在树莓派中打开端口 80

netsh advfirewall firewall add rule name="Open 80" dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name="Open 80" dir=out action=allow protocol=TCP localport=80
  1. 通过键入检查上述命令是否有效

    netsh advfirewall firewall show rule name="Open 80"

我得到了回应:


Rule Name:                            Open 80
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            Out
Profiles:                             Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             TCP
LocalPort:                            80
RemotePort:                           Any
Edge traversal:                       No
Action:                               Allow

Rule Name:                            Open 80
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             TCP
LocalPort:                            80
RemotePort:                           Any
Edge traversal:                       No
Action:                               Allow
Ok.
  1. 检查我的端口是否可见为打开http://www.yougetsignal.com/tools/open-ports/ - 它已关闭(当然,服务器应用程序运行

  2. 在我的笔记本中运行完全相同的应用程序(当然是 Windows 10)。我将路由器中的端口 80 转发到我的上网本,我检查了端口是否打开 - 它是打开的。我在浏览器中输入我的外部 IP 并且它可以工作。我什至尝试通过我的智能手机来确保它也有效。

我认为这证明我的树莓有问题 - 它的设置

4

2 回答 2

0

确保在应用清单中选择了“Internet(客户端和服务器)”功能。您可以通过打开 Package.appxmanifest 文件并单击 Capabilities 选项卡来找到此设置。 在此处输入图像描述

于 2016-06-28T02:54:02.267 回答
0

我解决了。

问题出在我的路由器设置中。我有两个 NAT 选项(虚拟服务器设置和端口触发设置),我有如下设置: 我的路由器中的 nat 选项和以前的设置

删除 NAT 中的“web”设置 - 端口触发设置解决了我的问题。我在树莓派上运行的 HTTP 服务器对外界可见。

我不知道为什么这个设置没有阻止笔记本电脑上运行的 HTTP 服务器,但这是不同的故事。树莓派服务器的问题 - 已解决。

于 2016-06-29T15:25:59.770 回答