从外部LAN raspberry pi 3 windowsiot连接到网络服务器

时间:2016-06-24 19:35:09

标签: c# tcp webserver raspberry-pi3 windowsiot

我运行了一个教程,包括用于raspberry pi 3的HTTP服务器应用程序。 点击此处:https://incredibits.io/project/windows-10-iot-internet-of-things-tips/windows-10-iot-raspberry-pi-web-server

在我的本地网络中,一切都很完美。我运行服务器,输入我的覆盆子(192.168.x.x)的浏览器本地IP,然后出现“hello world” - 很棒。但是,当我想从局域网外部访问我的HTTP服务器时,我遇到了一个问题。 我做了什么: 1.在我的路由器中转发端口80 2.使用PowerShell中的以下命令在raspberry pi中打开端口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"
  2. 我得到了回应:

    
    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 ofcourse)。我将路由器中的端口80转发到我的上网本,我检查了端口是否打开 - 它是开放的。我在浏览器中键入我的外部IP,它可以工作。我甚至尝试从我的智能手机上做到这一点,确保它也有效。

    3. 我认为这证明了我的覆盆子问题 - 它的设置

2 个答案:

答案 0 :(得分:0)

确保您在应用清单中选择了“互联网(客户端和服务器)”功能。您可以通过打开Package.appxmanifest文件并单击Capabilities选项卡来找到此设置。 enter image description here

答案 1 :(得分:0)

我解决了。

问题出在我的路由器设置中。我有两个NAT选项(虚拟服务器设置和端口触发设置),我有如下设置: nat options in my router and previous settings

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

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