

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# IP 检测器
<a name="ip-detector-component"></a>

IP 检测器组件 (`aws.greengrass.clientdevices.IPDetector`) 执行以下操作：
+ 监控 Greengrass 核心设备的网络连接信息。这些信息包括核心设备的网络端点以及 MQTT 代理运行的端口。
+ 更新 AWS IoT Greengrass 云服务中核心设备的连接信息。

客户端设备可以使用 Greengrass 云发现来检索关联核心设备的连接信息。然后，客户端设备可以尝试连接到每台核心设备，直至其成功连接。

**注意**  <a name="client-device-component-context"></a>
客户端设备是本地 IoT 设备，连接到 Greengrass 核心设备以发送 MQTT 消息和数据进行处理。有关更多信息，请参阅 [与本地 IoT 设备交互](interact-with-local-iot-devices.md)。

IP 检测器组件将核心设备的现有连接信息替换为其检测到的信息。由于此组件会删除现有信息，因此您可以使用 IP 检测器组件，也可以手动管理连接信息。

**Topics**
+ [版本](#ip-detector-component-versions)
+ [Type](#ip-detector-component-type)
+ [操作系统](#ip-detector-component-os-support)
+ [要求](#ip-detector-component-requirements)
+ [依赖项](#ip-detector-component-dependencies)
+ [配置](#ip-detector-component-configuration)
+ [本地日志文件](#ip-detector-component-log-file)
+ [更改日志](#ip-detector-component-changelog)

## 版本
<a name="ip-detector-component-versions"></a>

此组件具有以下版本：
+ 2.2.x
+ 2.1.x
+ 2.0.x

## Type
<a name="ip-detector-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此组件是一个插件组件 (`aws.greengrass.plugin`)。[Greengrass Nucleus](greengrass-nucleus-component.md) 在与该 Nucleus 相同的 Java 虚拟机（JVM）中运行该组件。当您在核心设备上更改此组件的版本时，Nucleus 会重新启动。

<a name="public-component-type-plugin-para2"></a>此组件使用与 Greengrass Nucleus 相同的日志文件。有关更多信息，请参阅 [监控 AWS IoT Greengrass 日志](monitor-logs.md)。

<a name="public-component-type-more-information"></a>有关更多信息，请参阅 [组件类型](develop-greengrass-components.md#component-types)。

## 操作系统
<a name="ip-detector-component-os-support"></a>

此组件可以安装在运行以下操作系统的核心设备上：
+ Linux
+ Windows

## 要求
<a name="ip-detector-component-requirements"></a>

此组件具有以下要求：
+ [Greengrass 服务](greengrass-service-role.md)角色必须与 AWS 账户 您的关联并允许和权限。`iot:GetThingShadow` `iot:UpdateThingShadow`
+ 核心设备的 AWS IoT 策略必须允许该`greengrass:UpdateConnectivityInfo`权限。有关更多信息，请参阅[AWS IoT 数据平面操作策略](device-auth.md#iot-policies)和[支持客户端设备的最低 AWS IoT 政策](device-auth.md#client-device-support-minimal-iot-policy)。
+ 如果您将核心设备的 MQTT 代理组件配置为使用默认端口 8883 以外的端口，则必须使用 IP 检测器 v2.1.0 或更高版本。将其配置为报告代理运行的端口。
+ 如果您的网络设置很复杂，IP 检测器组件可能无法识别客户端设备可以连接的核心设备的端点。如果 IP 检测器组件无法管理端点，则您必须改为手动管理核心设备端点。例如，如果核心设备位于将 MQTT 代理端口转发给它的路由器后方，则您必须将路由器的 IP 地址指定为核心设备的端点。有关更多信息，请参阅 [管理核心设备端点](manage-core-device-endpoints.md)。
+ 支持在 VPC 中运行 IP 检测器组件。

## 依赖项
<a name="ip-detector-component-dependencies"></a>

部署组件时， AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求，才能成功部署组件。本部分列出了此组件的[已发布版本](#ip-detector-component-changelog)的依赖关系，以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com//greengrass)中查看每个组件版本的依赖关系。在组件详细信息页面上，查找**依赖关系**列表。

------
#### [ 2.2.3 ]

下表列出了此组件版本 2.2.3 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.17.0 | 软性 | 

------
#### [ 2.2.2 ]

下表列出了此组件版本 2.2.2 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.16.0 | 软性 | 

------
#### [ 2.2.1 ]

下表列出了此组件版本 2.2.1 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.15.0 | 软性 | 

------
#### [ 2.2.0 ]

下表列出了此组件版本 2.2.0 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.14.0 | 软性 | 

------
#### [ 2.1.8 – 2.1.9 ]

下表列出了此组件的版本 2.1.8 和 2.1.9 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.13.0 | 软性 | 

------
#### [ 2.1.7 ]

下表列出了此组件的版本 2.1.7 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.12.0 | 软性 | 

------
#### [ 2.1.6 ]

下表列出了此组件的版本 2.1.6 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.11.0 | 软性 | 

------
#### [ 2.1.5 ]

下表列出了此组件的版本 2.1.5 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.10.0 | 软性 | 

------
#### [ 2.1.4 ]

下表列出了此组件的版本 2.1.4 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.9.0 | 软性 | 

------
#### [ 2.1.3 ]

下表列出了此组件的版本 2.1.3 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.8.0 | 软性 | 

------
#### [ 2.1.2 ]

下表列出了此组件的版本 2.1.2 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 软性 | 

------
#### [ 2.1.1 ]

下表列出了此组件的版本 2.1.1 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 软性 | 

------
#### [ 2.1.0 and 2.0.2 ]

下表列出了此组件的版本 2.1.0 和 2.0.2 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 软性 | 

------
#### [ 2.0.1 ]

下表列出了此组件的版本 2.0.1 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 软性 | 

------
#### [ 2.0.0 ]

下表列出了此组件版本 2.0.0 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 软性 | 

------

有关组件依赖关系的更多信息，请参阅[组件配方参考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## 配置
<a name="ip-detector-component-configuration"></a>

此组件提供您可以在部署组件时自定义的以下配置参数。

------
#### [ 2.2.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>（可选）此组件检测到 IP 地址时要用于报告的 MQTT 代理端口。如果您将 MQTT 代理配置为使用默认端口 8883 以外的端口，则必须指定此参数。  
默认值：`8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 环回地址。这些是 IP 地址（例如 `localhost`），设备可以在此与自身通信。在核心设备和客户端设备运行于同一系统的测试环境中使用此选项。  
默认值：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 [链路本地地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心设备的网络没有动态主机配置协议（DHCP）或静态分配的 IP 地址，请使用此选项。  
默认值：`false`

`includeIPv6LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv6-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-loopback-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv6 环回地址。这些是 IP 地址（例如 `localhost`），设备可以在此与自身通信。在核心设备和客户端设备运行于同一系统的测试环境中使用此选项。您必须将 `includeIPv4Addrs` 设置为 `false` 并将 `includeIPv6Addrs` 设置为 `true` 才能使用此选项。  
默认值：`false`

`includeIPv6LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv6-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-link-local-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv6 [链路本地地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心设备的网络没有动态主机配置协议（DHCP）或静态分配的 IP 地址，请使用此选项。您必须将 `includeIPv4Addrs` 设置为 `false` 并将 `includeIPv6Addrs` 设置为 `true` 才能使用此选项。  
默认值：`false`

`includeIPv4Addrs`  <a name="ip-detector-component-configuration-include-ipv4-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-addrs-definition"></a>（可选）默认设置为 `true`。您可以启用此选项来发布在核心设备上找到 IPv4 的地址。  
默认值：`true`

`includeIPv6Addrs`  <a name="ip-detector-component-configuration-include-ipv6-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-addrs-definition"></a>（可选）您可以启用此选项来发布在核心设备上找到 IPv6 的地址。将 `includeIPv4Addrs` 设置为 `false` 以使用此选项。  
默认值：`false`

------
#### [ 2.1.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>（可选）此组件检测到 IP 地址时要用于报告的 MQTT 代理端口。如果您将 MQTT 代理配置为使用默认端口 8883 以外的端口，则必须指定此参数。  
默认值：`8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 环回地址。这些是 IP 地址（例如 `localhost`），设备可以在此与自身通信。在核心设备和客户端设备运行于同一系统的测试环境中使用此选项。  
默认值：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 [链路本地地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心设备的网络没有动态主机配置协议（DHCP）或静态分配的 IP 地址，请使用此选项。  
默认值：`false`

------
#### [ 2.0.x ]

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 环回地址。这些是 IP 地址（例如 `localhost`），设备可以在此与自身通信。在核心设备和客户端设备运行于同一系统的测试环境中使用此选项。  
默认值：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（可选）您可以启用此选项来检测和报告 IPv4 [链路本地地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心设备的网络没有动态主机配置协议（DHCP）或静态分配的 IP 地址，请使用此选项。  
默认值：`false`

------

## 本地日志文件
<a name="ip-detector-component-log-file"></a>

此组件使用与 [Greengrass Nucleus](greengrass-nucleus-component.md) 组件相同的日志文件。

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**查看此组件的日志**
+ 在核心设备上运行以下命令可实时查看此组件的日志文件。将`/greengrass/v2`或*C:\$1greengrass\$1v2*替换为 AWS IoT Greengrass 根文件夹的路径。

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 更改日志
<a name="ip-detector-component-changelog"></a>

下表介绍每个组件版本的更改。


|  **版本**  |  **更改**  | 
| --- | --- | 
|  2.2.3  |  Greengrass nucleus 版本 2.16.0 版本的版本已更新。  | 
|  2.2.2  | Greengrass nucleus 版本 2.15.0 版本的版本已更新。 | 
|  2.2.1  | Greengrass nucleus 版本 2.14.0 版本的版本已更新。 | 
|  2.2.0  | 对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.8  | 版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 | 
|  2.1.7  | 版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 | 
|  2.1.6  | 版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 | 
|  2.1.5  | 对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。 | 
|  2.1.4  | 版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 | 
|  2.1.3  |  版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.1  |  版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.0.2  |  版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。  | 
|  2.0.1  |  版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。  | 
|  2.0.0  |  初始版本。  | 