【问题标题】:Server on Azure IOT Edge Linux Ubuntu VM - Want to access the device from outside of the VMAzure IOT Edge Linux Ubuntu VM 上的服务器 - 想要从 VM 外部访问设备
【发布时间】:2020-05-24 21:15:08
【问题描述】:

我在 Edge 模块中托管的 linux 虚拟机上有一个服务器。我想访问我的主机(Windows)上的服务器,但据我所知,Edge 模块的 IP 地址是我的 Linux VM 的本地主机。

如何更改 Edge 模块的 IP 地址分配,使其占用我的 linux 虚拟机的 IP 地址而不是本地主机 (172...)?

【问题讨论】:

    标签: linux azure docker azure-iot-edge


    【解决方案1】:

    如果我正确理解您的问题,您想从另一台计算机访问在 Edge 模块内运行的服务器。所以服务器监听的端口也得暴露在宿主机上吧?

    如果是这样,有比更改 IoT Edge 网络更好的方法。通过“端口映射”,您可以从容器/模块中获取一个端口,并对其进行“映射”,使其在主机级别公开,因此您的另一台机器可以只使用主机的 IP 和服务器的端口进行连接.

    例如,假设您在模块中运行的“服务器”是侦听端口 80 的 Web 服务器。如果要将端口 80 上的侦听器公开给主机,您可以执行以下操作在模块的“容器创建选项”中...

        {
        "PortBindings": {
          "80/tcp": [
            {
              "HostPort": "80"
            }
          ]
        }
      }
    }
    

    这将在端口 80 上侦听到 主机 的传入流量,然后将该流量转发到端口 80 上的模块。如果需要,您甚至可以将“主机端口”更改为其他值到(例如,侦听端口 8081,然后“转发”到模块中的端口 80)。

    有一点需要注意,如果您需要使用端口 443、8883 或 5671,默认情况下,IoT Edge 本身已经映​​射了这些端口。有办法解决这个问题。如果您需要,请告诉我。

    【讨论】:

      【解决方案2】:

      请参阅我在此处发布的问题Azure IoT Edge API module cannot be accessed。 对于正在努力解决这种情况的任何人,您应该通过在 deployment.template.json 的createOptions 部分添加ExposedPorts 来公开在来宾VM 上运行的边缘模块容器,如下所示。并且VM的IPv4地址也应该与相关端口一起使用。

              "modules": {
              "test_flask_api": {
              "version": "1.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "${MODULES.test_flask_api}",
                "createOptions": {
                  "ExposedPorts": {
                    "5000/tcp": {}
                  },
                  "HostConfig": {
                    "PortBindings": {
                      "5000/tcp": [
                        {
                          "HostPort": "5000"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
      

      【讨论】:

        猜你喜欢
        • 2021-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-30
        • 2022-11-19
        • 1970-01-01
        相关资源
        最近更新 更多