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 加密并启用用户名密码或客户端证书;关闭未使用的串口服务与调试端口;开启日志轮转,防止磁盘写满。建议每月检查一次系统补丁与证书有效期。
六、搭建后的验收要点
环境搭建完成后,建议按以下清单逐项确认,形成可复现的验收记录:
| 检查项 | 判断依据 | 示例结果 |
|---|---|---|
| 系统时间 | timedatectl 显示已同步 | System clock synchronized: yes |
| 双网路由 | ip route 默认路由仅 eth1 | default via 10.20.0.1 dev eth1 |
| 设备连通 | ping 设备网内仪表 IP | 丢包率 0% |
| MQTT 连通 | mosquitto_pub 发布测试主题 | 云端收到消息 |
| 安全基线 | root 远程登录已禁用、防火墙已启用 | sshd 仅密钥登录 |
| 磁盘余量 | df -h 根分区使用率 | 低于 70% |
完成本节搭建后,网关已具备稳定的运行底座:硬件满足现场环境,系统与运行时齐备,双网隔离保证采集与上云互不干扰,安全加固降低了暴露风险。后续的 MQTT 主题设计、报文格式与数据上云策略,都将在这套环境上展开。