连接设备
IronFlock 支持多种方式连接设备,具体取决于硬件和操作系统。手头没有硬件?您可以在几分钟内在笔记本电脑上模拟一台设备。
前提条件
连接设备之前,请确保您已具备:
- 在 IronFlock 上创建了一个项目
- 在该项目中创建了一个设备条目(在项目 Settings -> Devices 面板中点击 NEW DEVICE。)
- 已下载设备配置文件(
.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 代理程序,让您的笔记本电脑在项目中扮演一台真实设备——非常适合在部署到实际硬件之前先测试应用和仪表板。
- 安装 Docker Desktop(Linux 上安装 Docker Engine),并确保其正在运行。
- 为您的操作系统下载并安装 FlockFlasher 应用。
- 双击已下载的设备
.flock文件——它会在 FlockFlasher 中打开,设备随即出现在列表中。(也可以打开 FlockFlasher,通过 + 按钮添加该文件。) - 在设备条目上点击 Test Device(▶,测试设备)。FlockFlasher 首次使用时会自动下载 IronFlock 代理程序,并使用您的设备配置启动它。
现在,您的笔记本电脑就会在 IronFlock 项目中充当这台设备:它会显示为在线状态,您可以像在真实设备上一样在其上安装并运行应用。这些应用以 Docker 容器的形式在您的笔记本电脑上运行。
测试完成后,请在 FlockFlasher 中停止测试。之后您仍可以使用同一个 .flock 文件来配置真实设备——只需确保同一份设备配置在同一时间只在一台机器上运行。
方法一:烧录 SD 卡
最适合从 SD 卡启动的 Raspberry Pi 和其他 ARM 设备。
- 为您的操作系统下载 FlockFlasher 应用。
- 将 SD 卡(最少 16 GB)插入电脑。
- 打开 FlockFlasher,点击 + 按钮加载
.flock文件。 - 选择 SD 卡驱动器(FlockFlasher 会自动检测外部驱动器)。
- 为您的设备选择正确的镜像(Raspberry Pi 3/4、Zero 等)。
- 可选配置 WiFi,以便设备在目标位置可以联网。
- 点击 Flash,等待写入、验证和配置完成。
- 将 SD 卡插入设备并开机。
设备应在 20 分钟内上线。
警告:烧录过程会擦除所选驱动器上的所有数据。FlockFlasher 默认隐藏内部驱动器,但请务必仔细核对您的选择。
方法二:工业 PC 的 USB 安装器
适用于支持 EFI 启动的 AMD64 设备(例如 Siemens SIMATIC Box IPC)。
- 插入 USB 存储器(最少 16 GB)并打开 FlockFlasher。
- 加载
.flock文件并选择 USB 驱动器。 - 选择 Industrial PC x86_64 (EFI) 镜像。
- 点击 Flash 并等待完成。
- 如有必要,在设备的 BIOS 中更改启动顺序以从 USB 启动。
- 插入 USB 存储器并启动设备。
设备应在 60 分钟内上线。
方法三:自定义安装
适用于保留现有 Linux 操作系统的设备。非常适合 NVIDIA Jetson 和自定义硬件。
注意:这种手动安装方式面向工业 PC、网关和嵌入式设备等真实生产硬件——不适用于笔记本电脑。如果您只是想在笔记本电脑上试用 IronFlock,请改为按照先测试:在笔记本电脑上模拟设备进行操作——无需手动安装代理程序。
Linux / Unix 设备
- 通过 SSH 连接到设备。
- 下载安装程序:
curl -sSL https://instance-registry.ironflock.com/dl/reswarmify/install.sh | bash在 IronFlock Appliance 上? 请使用 新建设备 对话框中显示的命令——它们指向 Appliance 而不是
instance-registry.ironflock.com。 - 将
.flock文件从电脑复制到设备:scp mydevice.flock user@device-ip:/home/user/ - 运行代理程序:
sudo ./ironflock-init -c mydevice.flock
位于企业代理之后? 请在第 2 步之前导出您的代理,以便下载能够成功;并在第 4 步向
ironflock-init传入--http-proxy/--https-proxy,它会为您配置 Docker 引擎。完整命令以及企业 CA 相关步骤,请参阅位于企业代理之后。
Windows 设备
- 在设备上安装 Docker Desktop,并在 Docker Desktop 设置中启用 Start Docker Desktop when you sign in。对于无人值守的设备,还应配置 Windows 自动登录,以便重启后无需任何人登录即可使用 Docker。
- 下载 reagent.exe。
- 将
.flock文件复制到设备。 - 在提升权限(管理员)的命令提示符中,将代理程序安装为 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 sourcestimedatectl 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 通信。
- 红色指示器 — 设备离线。请检查网络连接并确保代理程序正在运行。
- 绿色指示器,但应用安装、镜像拉取或代理程序更新超时 — 可能是某条防火墙规则已不再放行来自该设备的新连接。在重启任何东西之前,请先阅读身份感知防火墙与代理。
设备地图视图显示项目中所有设备的地理位置。