Skip to Content
IoT 设备管理连接设备

连接设备

IronFlock 支持多种方式连接设备,具体取决于硬件和操作系统。手头没有硬件?您可以在几分钟内在笔记本电脑上模拟一台设备。

前提条件

连接设备之前,请确保您已具备:

  1. 在 IronFlock 上创建了一个项目
  2. 在该项目中创建了一个设备条目(在项目 Settings -> Devices 面板中点击 NEW DEVICE。)
  3. 已下载设备配置文件(.flock)

设备位于受限的企业网络中? 请在安装之前规划好网络设置——这是新安装的设备始终处于离线状态最常见的原因:

  • 身份感知防火墙或代理: 放行设备的规则必须绑定到设备本身,而绝不能绑定到已登录的用户——否则一旦该用户的会话失效,设备就会从网络中掉线。参见身份感知防火墙与代理。
  • 企业 HTTP 代理: 代理程序和 Docker 都必须显式配置该代理——参见位于企业代理之后 → 边缘设备。
  • 连接到本地 Appliance: 设备必须能直接访问 Appliance 的服务端口——或者,当 Appliance 运行使用您的企业证书的 HTTPS 时,只需访问端口 443,且设备须信任您的企业根 CA。参见 Appliance 指南中的设备连接。
  • 时钟偏移: 企业防火墙通常会拦截全新安装的操作系统自带的公共时间服务器,设备时钟会因此悄悄偏走——请配置您的内部 NTP 服务器。参见时间同步 (NTP)。

身份感知防火墙与代理

每台边缘设备都以无人值守的系统服务形式运行 IronFlock 代理程序。它随系统启动,全天候保持连接,并持续安装应用、拉取镜像和自我更新——无论是否有人登录该设备。无论您的平台运行在哪里——IronFlock 云、您的私有云,还是本地 Appliance——情况都是如此。

OT 网络越来越多地由身份感知防火墙和代理来保护,这类产品按目录身份而非网络地址授予访问权限。如果放行某台边缘设备的规则绑定到在该设备上登录的用户,那么一旦该用户的会话失效,设备就会失去网络访问:

  • 已经建立的连接会继续运行,因此设备仍显示为在线。
  • 每个新连接都会被静默丢弃——应用安装、镜像拉取、代理程序更新和重新连接都会失败。
  • 在代理程序或设备下一次重启之后,设备将完全无法重新连接,并一直处于离线状态,直到有人再次登录该设备或规则被修改。

请让您的网络团队将规则绑定到设备,而绝不能绑定到某个人:

设备规则中应使用的身份
已加入您的域的 Windows 设备其计算机账户——即计算机对象,或诸如 IronFlock Edge Devices 之类的组
Linux 或 FlockOS 设备,或未加入域的 Windows 设备带有预留 IP 地址的命名主机对象,或由您的网络准入控制(802.1X 或 MAC 认证)分配的身份

在常见产品中的对应做法:

  • Check Point Identity Awareness: 在 Access Role 中选择机器(计算机对象或组),而不是用户。机器身份依靠计算机自身的域活动来刷新;如果在您的网关上机器身份可能失效,请改用网络对象。
  • Palo Alto Networks User-ID: 计算机账户不会产生 IP 到用户的映射,因此请使用地址对象、标签(tag)或 Device-ID。
  • Fortinet FSSO 及类似的基于目录的防火墙: 为该设备使用地址对象,或使用您的网络准入控制分配的动态地址。
  • Zscaler、Prisma Access 及其他云安全网关: 将设备网络注册为 IoT 或服务器位置(受信任的来源),使设备流量按位置而非按用户来识别。

这并不是对您身份策略的豁免——而是按设备实际具有的身份来识别它。如果您运行本地 Appliance,同样的要求也适用于 Appliance 主机:参见 IronFlock 主机的网络身份。

如何识别这类故障。 如果设备保持在线,而应用安装、镜像拉取或代理程序更新却因超时而失败——同时 ping 仍然成功——那么问题出在已过期的身份规则上,而不在设备本身。在设备重新能够成功建立新连接之前,请不要重启代理程序或设备:仍然保持打开的那个会话是当前唯一可用的连接,并且在此期间,正是它让设备仍可被远程管理。

先测试:在笔记本电脑上模拟设备

探索 IronFlock 无需实体硬件。FlockFlasher 应用可以直接在您的笔记本电脑上运行 IronFlock 代理程序,让您的笔记本电脑在项目中扮演一台真实设备——非常适合在部署到实际硬件之前先测试应用和仪表板。

  1. 安装 Docker Desktop(Linux 上安装 Docker Engine),并确保其正在运行。
  2. 为您的操作系统下载并安装 FlockFlasher 应用。
  3. 双击已下载的设备 .flock 文件——它会在 FlockFlasher 中打开,设备随即出现在列表中。(也可以打开 FlockFlasher,通过 + 按钮添加该文件。)
  4. 在设备条目上点击 Test Device(▶,测试设备)。FlockFlasher 首次使用时会自动下载 IronFlock 代理程序,并使用您的设备配置启动它。

现在,您的笔记本电脑就会在 IronFlock 项目中充当这台设备:它会显示为在线状态,您可以像在真实设备上一样在其上安装并运行应用。这些应用以 Docker 容器的形式在您的笔记本电脑上运行。

测试完成后,请在 FlockFlasher 中停止测试。之后您仍可以使用同一个 .flock 文件来配置真实设备——只需确保同一份设备配置在同一时间只在一台机器上运行。

方法一:烧录 SD 卡

最适合从 SD 卡启动的 Raspberry Pi 和其他 ARM 设备。

  1. 为您的操作系统下载 FlockFlasher 应用。
  2. 将 SD 卡(最少 16 GB)插入电脑。
  3. 打开 FlockFlasher,点击 + 按钮加载 .flock 文件。
  4. 选择 SD 卡驱动器(FlockFlasher 会自动检测外部驱动器)。
  5. 为您的设备选择正确的镜像(Raspberry Pi 3/4、Zero 等)。
  6. 可选配置 WiFi,以便设备在目标位置可以联网。
  7. 点击 Flash,等待写入、验证和配置完成。
  8. 将 SD 卡插入设备并开机。

设备应在 20 分钟内上线。

警告:烧录过程会擦除所选驱动器上的所有数据。FlockFlasher 默认隐藏内部驱动器,但请务必仔细核对您的选择。

方法二:工业 PC 的 USB 安装器

适用于支持 EFI 启动的 AMD64 设备(例如 Siemens SIMATIC Box IPC)。

  1. 插入 USB 存储器(最少 16 GB)并打开 FlockFlasher。
  2. 加载 .flock 文件并选择 USB 驱动器。
  3. 选择 Industrial PC x86_64 (EFI) 镜像。
  4. 点击 Flash 并等待完成。
  5. 如有必要,在设备的 BIOS 中更改启动顺序以从 USB 启动。
  6. 插入 USB 存储器并启动设备。

设备应在 60 分钟内上线。

方法三:自定义安装

适用于保留现有 Linux 操作系统的设备。非常适合 NVIDIA Jetson 和自定义硬件。

注意:这种手动安装方式面向工业 PC、网关和嵌入式设备等真实生产硬件——不适用于笔记本电脑。如果您只是想在笔记本电脑上试用 IronFlock,请改为按照先测试:在笔记本电脑上模拟设备进行操作——无需手动安装代理程序。

Linux / Unix 设备

  1. 通过 SSH 连接到设备。
  2. 下载安装程序:
    curl -sSL https://instance-registry.ironflock.com/dl/reswarmify/install.sh | bash

    在 IronFlock Appliance 上? 请使用 新建设备 对话框中显示的命令——它们指向 Appliance 而不是 instance-registry.ironflock.com。

  3. 将 .flock 文件从电脑复制到设备:
    scp mydevice.flock user@device-ip:/home/user/
  4. 运行代理程序:
    sudo ./ironflock-init -c mydevice.flock

位于企业代理之后? 请在第 2 步之前导出您的代理,以便下载能够成功;并在第 4 步向 ironflock-init 传入 --http-proxy / --https-proxy,它会为您配置 Docker 引擎。完整命令以及企业 CA 相关步骤,请参阅位于企业代理之后。

Windows 设备

  1. 在设备上安装 Docker Desktop,并在 Docker Desktop 设置中启用 Start Docker Desktop when you sign in。对于无人值守的设备,还应配置 Windows 自动登录,以便重启后无需任何人登录即可使用 Docker。
  2. 下载 reagent.exe。
  3. 将 .flock 文件复制到设备。
  4. 在提升权限(管理员)的命令提示符中,将代理程序安装为 Windows 服务并启动:
    reagent.exe service install -config path\to\config.flock
    该服务会立即启动,此后随系统一同启动,出现故障时自动重启,并使代理程序保持最新。如需安装但不启动,请添加 -noStart;可随时使用 reagent.exe service status 查看状态。

位于企业代理之后? 在 service install 命令中添加 -proxy http://proxy.example.com:3128,并在 Settings → Resources → Proxies 中配置 Docker Desktop 的代理。详情及企业 CA 配置步骤请参阅 位于企业代理之后。

已加入您的域的 Windows 设备? 代理程序服务以 LocalSystem 身份运行,与是否有人登录无关,因此绑定到已登录用户的防火墙规则覆盖不到它。请让规则绑定到设备的计算机账户——参见身份感知防火墙与代理。

时间同步 (NTP)

设备代理程序需要准确的时钟。与平台的 TLS 握手、授权拉取镜像的令牌,以及设备发布的每一个数据点的时间戳,都依赖它。时钟偏差超过 15 分钟的设备还会被文件存储以 CLOCK_SKEW 拒绝。

在企业网络中,这是一个需要动手完成的配置步骤,而不是理所当然的前提:出站 NTP 所用的 UDP 123 端口常被拦截,操作系统自带的公共时间服务器因此无法访问,时钟会在没有任何可见错误的情况下偏走。请向 IT 部门索取内部时间服务器并在设备上配置,或请他们为设备网络放行出站 UDP 123。

Linux

使用 systemd-timesyncd(Debian 和 Ubuntu 的默认方式):

sudo mkdir -p /etc/systemd/timesyncd.conf.d sudo tee /etc/systemd/timesyncd.conf.d/corporate.conf > /dev/null <<'EOF' [Time] NTP=ntp.your-company.com EOF sudo systemctl restart systemd-timesyncd timedatectl status

使用 chrony:

echo "server ntp.your-company.com iburst" | sudo tee -a /etc/chrony/chrony.conf sudo systemctl restart chrony chronyc sources

timedatectl status 必须显示 System clock synchronized: yes。

Windows

在以管理员身份打开的命令提示符中:

w32tm /config /manualpeerlist:"ntp.your-company.com" /syncfromflags:manual /update w32tm /resync w32tm /query /status

使用现成 IronFlock 镜像烧录的设备(方法一和方法二)默认与公共时间服务器同步。在拦截这些服务器的网络中,请为设备子网放行出站 UDP 123,或在首次启动后通过 SSH 按上面 Linux 的方式配置内部时间服务器。

验证连接

连接后,在项目中检查设备状态:

  • 绿色指示器 — 设备在线,正在与 IronFlock 通信。
  • 红色指示器 — 设备离线。请检查网络连接并确保代理程序正在运行。
  • 绿色指示器,但应用安装、镜像拉取或代理程序更新超时 — 可能是某条防火墙规则已不再放行来自该设备的新连接。在重启任何东西之前,请先阅读身份感知防火墙与代理。

设备地图视图显示项目中所有设备的地理位置。

Last updated on