4. 矿山边缘网关硬件与软件环境搭建

边缘网关是矿山数据上云的“第一跳”。它向下要接入 PLC、变频器、皮带秤、环境监测分站等设备,向上要通过 MQTT 把数据送到云平台。选型与搭建是否合理,直接决定后续协议接入的稳定性和可维护性。本节围绕网关选型、操作系统与运行时、网络配置、依赖安装与安全加固五个环节展开,目标是交付一台“能长期无人值守运行”的网关。

一、网关选型:先看现场约束,再看算力

矿山现场通常存在粉尘、振动、宽温、供电波动和电磁干扰,选型应优先满足工业级可靠性,再考虑性能冗余。建议从以下维度评估:

  • 环境与安装:工作温度建议覆盖 -20℃~70℃,防护等级不低于 IP40(井下或洗选车间建议 IP54 以上),支持 DIN 导轨或壁挂安装。
  • 供电:支持 9~36V DC 宽压输入,具备防反接与浪涌保护,适配矿山常见的 24V 直流或 UPS 供电。
  • 接口:至少 2 路独立以太网口(一路接设备网、一路接上行网),2~4 路 RS485,必要时预留 CAN 或 DI/DO。
  • 算力与存储:CPU 建议四核 ARM Cortex-A55 及以上,内存 ≥2GB,eMMC ≥16GB,并支持 TF 卡或 SSD 扩展用于本地缓存。
  • 通信:可选 4G/5G 模组与双卡,支持断网本地缓存与恢复补传。

以一个中等规模选煤厂为例:需接入 6 台 Modbus RTU 仪表、3 台 Modbus TCP 设备,采集周期 1s,单条报文约 200 字节。按 10 个点位/秒估算,数据量约 2KB/s,普通四核 ARM 网关即可胜任;但若需在网关侧做规则计算或视频抽帧,则应选择带 NPU 或更高主频的型号。此处参数为教学示例,实际应以现场点位清单核算。

二、操作系统与运行时

推荐使用 Debian/Ubuntu Server 或 Yocto 构建的轻量 Linux,避免使用桌面版以减少攻击面。系统安装后先完成基础设置:

# 设置主机名与时区
hostnamectl set-hostname edge-gw-01
timedatectl set-timezone Asia/Shanghai

# 更新系统并安装基础工具
apt update && apt upgrade -y
apt install -y curl wget vim htop net-tools chrony

# 启用时间同步,保证 MQTT 消息时间戳可信
systemctl enable --now chrony

运行时方面,若网关程序为 Python 编写,安装 Python 3.9+ 及虚拟环境;若为容器化部署,安装 Docker 并限制其日志大小,防止 eMMC 被写满。MQTT 客户端库建议使用 paho-mqtt 或 Eclipse Mosquitto 客户端工具,便于联调。

三、网络配置:双网隔离与上行冗余

矿山网关典型做法是“设备网 + 上行网”双网口隔离:eth0 接现场设备网(如 192.168.10.0/24),eth1 接厂区环网或 4G 路由(如 10.20.0.0/24)。设备网不配置默认网关,仅保留直连路由;上行网配置默认路由,避免设备网流量误出公网。

# /etc/network/interfaces 片段(示例)
auto eth0
iface eth0 inet static
    address 192.168.10.50/24
    # 不配置 gateway,保持设备网隔离

auto eth1
iface eth1 inet static
    address 10.20.0.50/24
    gateway 10.20.0.1
    dns-nameservers 223.5.5.5

配置完成后用 ip route 确认默认路由只走上行网,用 ping 分别测试设备与云端连通性。若使用 4G 备份,可配置路由度量值,使有线优先、无线兜底。

四、必要依赖安装

按“采集—转换—上云”链路安装依赖:Modbus 采集用 libmodbus 或 Python 的 pymodbus;MQTT 通信用 mosquitto-clients 与 paho-mqtt;数据缓存可用 SQLite;远程运维可装 frp 或 VPN 客户端。安装后应逐项验证,例如用 mosquitto_pub 向测试主题发布一条消息,确认能收到回显。

五、安全加固

网关长期暴露在厂区网络,必须做最小化加固:修改默认密码并禁用 root 远程登录,改用密钥登录;启用防火墙仅放行必要端口(如 1883/8883、22 管理口限制源地址);MQTT 使用 TLS 加密并启用用户名密码或客户端证书;关闭未使用的串口服务与调试端口;开启日志轮转,防止磁盘写满。建议每月检查一次系统补丁与证书有效期。

矿山边缘网关软硬件环境与数据通路 现场设备层 Modbus RTU 仪表 Modbus TCP 设备 环境监测分站 皮带秤 / 变频器 RS485 / 以太网 192.168.10.0/24 工业边缘网关 操作系统:Debian / Ubuntu Server chrony 时间同步 · 日志轮转 运行时:Python3 / Docker pymodbus · paho-mqtt · SQLite 网络:eth0 设备网 / eth1 上行网 双网隔离 · 默认路由仅走上行 安全加固 密钥登录 · 防火墙 · TLS · 最小端口 本地缓存与断网补传 eMMC / TF 卡 · 恢复后按序补发 上行网络 厂区环网 / 4G 路由 10.20.0.0/24 云平台 MQTT Broker (8883/TLS) 数据存储 / 应用 采集 上行 MQTT

六、搭建后的验收要点

环境搭建完成后,建议按以下清单逐项确认,形成可复现的验收记录:

检查项判断依据示例结果
系统时间timedatectl 显示已同步System clock synchronized: yes
双网路由ip route 默认路由仅 eth1default via 10.20.0.1 dev eth1
设备连通ping 设备网内仪表 IP丢包率 0%
MQTT 连通mosquitto_pub 发布测试主题云端收到消息
安全基线root 远程登录已禁用、防火墙已启用sshd 仅密钥登录
磁盘余量df -h 根分区使用率低于 70%
建议将上述配置固化为初始化脚本或镜像,批量部署时只需修改 IP、主机名与证书,减少现场重复劳动和人为差错。

完成本节搭建后,网关已具备稳定的运行底座:硬件满足现场环境,系统与运行时齐备,双网隔离保证采集与上云互不干扰,安全加固降低了暴露风险。后续的 MQTT 主题设计、报文格式与数据上云策略,都将在这套环境上展开。