在构建 LoRaWAN 物联网系统时,选择合适的网络服务器(NS)与网关进行对接是关键一步。ChirpStack 作为一款开源、灵活且功能强大的 LoRaWAN 网络服务器解决方案,被广泛应用于各类私有或企业级 LoRaWAN 网络部署中。
门思科技(Manthink)推出的 GDO51 系列室外网关 和 GDI51 系列室内网关 均基于 Ubuntu 系统打造,具备强大的边缘计算能力与协议兼容性,支持包括 Basic Station、GWMP、TTN、ChirpStack Packet Forwarder 等多种主流协议接入方式。本文将重点介绍如何使用 Basic Station LNS 协议 将门思科技的 GDO51/GDI51 网关安全地连接至 ChirpStack 平台,并涵盖 TLS 加密配置全流程。
1. 概述:为什么选择 Basic Station?
LoRa Alliance 推出的 Basic Station 是一种现代化的 LoRaWAN 网关协议,相较于传统的 UDP Packet Forwarder 模式,它具有以下优势:
- 更高效的通信机制(基于 WebSocket)
- 支持动态频率更新(CUPS)
- 内建加密传输(TLS)
- 更好的网络管理与远程配置能力
需要注意的是,ChirpStack 目前仅支持 basicstation-lns
协议模式,不支持 basicstation-cups
。因此,在配置过程中需确保使用正确的协议类型。
此外,在开始前请确认你的 ChirpStack 是否启用了 TLS 加密,这将决定后续网关证书的配置方式。
2. ChirpStack 未启用 TLS 加密:基础连接配置
2.1. ChirpStack 配置检查
basicstation-lns
的支持由 chirpstack-gateway-bridge
组件实现。打开其配置文件(通常位于 /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
),检查以下字段是否为空:
toml
tls_cert = ""
tls_key = ""
ca_cert = ""
若以上三项均为空,则表示当前为 **非加密模式(明文传输)**,适用于局域网测试环境。
⚠️ 注意:生产环境中建议始终启用 TLS 以保障数据安全。

2.2. GDO51/GDI51 网关配置步骤
- 使用电脑连接网关 Wi-Fi(SSID 格式为
GDO51x - <DEVEUI>
或GDI51x - <DEVEUI>
,默认密码:wifi!0804
) - 浏览器访问:http://192.158.1.1,登录 WebConfigure(默认密码:
wifi!0804
) - 进入菜单:Gateway Configuration → LoRaWAN Server
- 设置如下参数:
- nsProtocol :
basicstation_lns
- uri :
ws://<ChirpStack服务器IP>:3001
示例:ws://192.168.1.142:3001
(端口默认为 3001,可在 bridge 配置中修改) - trust / cert / key: 不填写
- 点击 Submit 保存设置
✅ 配置完成后,网关会尝试通过 WebSocket 明文连接 ChirpStack。你可以在 ChirpStack 的 Gateway 页面查看网关状态是否在线。

3. ChirpStack 启用 TLS 加密:安全连接配置
为了提升安全性,推荐在正式部署中启用 TLS 加密。根据 CA 证书配置情况,可分为两种模式:
模式 | 描述 |
---|---|
TLS 单向认证 | 仅验证服务器身份,网关无需证书 |
TLS 双向认证 | 服务器与网关互相验证身份,更安全 |
3.1. ChirpStack TLS 配置判断
查看 chirpstack-gateway-bridge.toml
文件中的 TLS 相关配置:
toml
tls_cert = "/path/to/server.crt"
tls_key = "/path/to/server.key"
ca_cert = "/path/to/ca.crt" # 若存在此行,则启用双向认证
- ✅ 若
ca_cert
已配置 → 启用双向认证

- ❌ 若
ca_cert
未配置 → 单向认证

3.2. 生成客户端证书(用于双向认证)
当启用双向认证时,必须为每个网关签发客户端证书,且 Common Name (CN) 必须设置为网关的 EUI(HEX 格式,如 5a53012a00000288
)。
3.2.1. 准备工作:安装 OpenSSL
bash
# Ubuntu/Debian
sudo apt update && sudo apt install openssl -y
# CentOS/RHEL
sudo yum install openssl -y
3.2.1.1. 创建自签名 CA 证书
bash
# 生成CA私钥(带密码保护)
openssl genpkey -algorithm RSA -out ca.key -aes256
# 生成CA根证书(有效期365天)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.crt
执行时会提示输入国家、组织名等信息,请如实填写。
3.2.1.2. 生成服务器证书
bash
# 生成服务器私钥
openssl genpkey -algorithm RSA -out server.key
# 生成CSR请求
openssl req -new -key server.key -out server.csr
📌 在 Common Name (CN) 中填入 ChirpStack 服务器的域名或 IP 地址(如 chirpstack.local
或 192.168.1.142
)
bash
# 使用CA签署服务器证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256
3.2.2. 配置 ChirpStack Gateway Bridge
编辑 /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
:
toml
tls_cert = "/path/to/server.crt"
tls_key = "/path/to/server.key"
ca_cert = "/path/to/ca.crt" # 启用双向认证必需
重启服务生效:
bash
sudo systemctl restart chirpstack-gateway-bridge

3.2.3. 生成客户端证书(网关证书)
bash
# 生成客户端私钥
openssl genpkey -algorithm RSA -out client.key
# 生成CSR
openssl req -new -key client.key -out client.csr
📌 关键步骤:在 Common Name (CN) 字段中输入网关的 **EUI(小写 HEX 格式)**,例如:5a53012a00000288
bash
# 使用CA签署客户端证书
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365 -sha256
得到三个关键文件:
ca.crt
:CA 根证书client.crt
:客户端证书(给网关用)client.key
:客户端私钥
3.3. GDO51/GDI51 网关配置(TLS 模式)
- 登录 WebConfigure
- 进入:Gateway Configuration → LoRaWAN Server
- 配置如下:
参数 | 值 |
---|---|
nsProtocol | basicstation_lns |
uri | wss://<服务器IP或域名>:3001 (注意是 wss ) |
trust | 将 ca.crt 内容粘贴至此 |
cert | (仅双向认证需要)粘贴 client.crt 内容 |
key | (仅双向认证需要)粘贴 client.key 内容 |
- 点击 Submit 保存并重启网关

4. 验证连接状态
完成配置后,可通过以下方式验证:
- 在 ChirpStack Web UI 查看网关是否上线
- 在网关 WebConfigure 的 State → Statistics 页面查看连接状态
- 使用 Wireshark 抓包分析 WSS 流量(可选)
5. 联系我们
电话:+86-15810684257