05 thingsboard-4.3-ubuntu20-rk3588-部署
在rk3588安装docker,遇到一些问题,主要是nat相关的问题,需要重新编译内核,但是有点麻烦,因此决定还是使用deb包安装
安装postgresql
thingsboard 依赖thingsboard
安装
安装指令
shell
apt install -y postgresql-12:arm64 postgresql-client-12:arm64
安装情况确认
text
root@zhongrui:~# dpkg -l | grep -i postgresql
ii libpq5:arm64 12.22-0ubuntu0.20.04.4 arm64 PostgreSQL C client library
ii postgresql-12 12.22-0ubuntu0.20.04.4 arm64 object-relational SQL database, version 12 server
ii postgresql-client-12 12.22-0ubuntu0.20.04.4 arm64 front-end programs for PostgreSQL 12
ii postgresql-client-common 214ubuntu0.1 all manager for multiple PostgreSQL client versions
ii postgresql-common 214ubuntu0.1 all PostgreSQL database-cluster manager
root@zhongrui:~# psql --version
psql (PostgreSQL) 12.22 (Ubuntu 12.22-0ubuntu0.20.04.4)

配置 postgresql
配置
配置thingsboard对应的账号和密码
shell
# 1. 切换到postgres系统用户(默认无密码)
su - postgres
# 2. 进入psql命令行
psql
# 3. 设置postgres超级用户密码为postgres(记好!)
ALTER USER postgres WITH PASSWORD 'postgres';
# 输出 "ALTER ROLE" 即为成功
# 4. 创建ThingsBoard专用数据库
CREATE DATABASE thingsboard WITH ENCODING='UTF8';
# 5. 授予postgres用户对thingsboard数据库的全部权限
GRANT ALL PRIVILEGES ON DATABASE thingsboard TO postgres;
# 6. 退出psql和postgres用户
\q
Exit
查看账号
sql
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

查看数据库
sql
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+---------+---------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
thingsboard | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

安装 thingsboard
下载
下载安装包 https://github.com/thingsboard/thingsboard/releases/tag/v4.3


安装
shell
dpkg -i thingsboard-4.3.deb

启动
首次启动需要执行如下指令
shell
# 执行初始化(带演示数据,强制绑定PostgreSQL)
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
常规启动thingsboard
shell
systemctl restart thingsboard
确认状态
shell
systemctl status thingsboard
text
root@zhongrui:/work/thingboard# systemctl status thingsboard
● thingsboard.service - thingsboard
Loaded: loaded (/lib/systemd/system/thingsboard.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2026-01-25 13:53:05 CST; 5s ago
Main PID: 32408 (thingsboard.jar)
CGroup: /system.slice/thingsboard.service
├─32408 /bin/bash /usr/share/thingsboard/bin/thingsboard.jar
└─32423 /usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -Dplatform=deb -Dinstall.data_dir=/usr/share/thingsboard/data -Xms512M -Xmx1024M -Xlog:gc*,heap*>
Jan 25 13:53:05 zhongrui thingsboard.jar[32423]: OpenJDK 64-Bit Server VM warning: Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future re>
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: _____ _ _ ____ _
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: |_ _| |__ (_)_ __ __ _ ___| __ ) ___ __ _ _ __ __| |
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: | | | '_ \| | '_ \ / _` / __| _ \ / _ \ / _` | '__/ _` |
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: | | | | | | | | | | (_| \__ \ |_) | (_) | (_| | | | (_| |
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: |_| |_| |_|_|_| |_|\__, |___/____/ \___/ \__,_|_| \__,_|
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: |___/
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: ===========================================================
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: :: ThingsBoard :: (v4.3.0)
Jan 25 13:53:08 zhongrui thingsboard.jar[32423]: ===========================================================

查看端口号
正常如果启动成功,开启8080端口
shell
ss -tulpn | grep java
text
root@zhongrui:/work/thingboard# ss -tulpn | grep java
udp UNCONN 0 0 *:37695 *:* users:(("java",pid=32423,fd=95))
udp UNCONN 0 0 *:5683 *:* users:(("java",pid=32423,fd=92))
udp UNCONN 0 0 *:5685 *:* users:(("java",pid=32423,fd=146))
udp UNCONN 0 0 *:5686 *:* users:(("java",pid=32423,fd=147))
udp UNCONN 0 0 *:5687 *:* users:(("java",pid=32423,fd=93))
udp UNCONN 0 0 *:5688 *:* users:(("java",pid=32423,fd=94))
tcp LISTEN 0 0 *:1883 *:* users:(("java",pid=32423,fd=91))
tcp LISTEN 0 0 *:7070 *:* users:(("java",pid=32423,fd=145))
tcp LISTEN 0 0 *:8080 *:* users:(("java",pid=32423,fd=114))
UDP是无连接的轻量级传输协议,适合低功耗/窄带宽的物联网设备(如传感器、嵌入式设备):
| 端口 | 协议/功能 | 核心用途 | 你的使用场景 |
|---|---|---|---|
| 5683 | CoAP 主端口 | ThingsBoard的CoAP协议服务端,接收CoAP设备的遥测数据上报、命令下发 | 适用于低功耗物联网设备(如NB-IoT传感器),比MQTT更轻量化 |
| 5685/5686/5687/5688 | CoAP 备用/扩展端口 | ThingsBoard内置的CoAP扩展端口,用于多租户隔离、协议适配或负载分担 | 日常使用主要用5683,这些端口默认备用,无需关注 |
| 37695 | 随机UDP端口 | Java进程的临时UDP端口,用于内部网络通信(如服务发现、心跳检测) | 系统自动分配,无实际业务用途,无需干预 |
TCP是面向连接的可靠传输协议,用于Web访问、API调用、高可靠的设备接入:
| 端口 | 功能 | 核心用途 | 你的使用场景 |
|---|---|---|---|
| 8080 | Web UI + REST API | ① 访问ThingsBoard的Web管理界面(登录、仪表盘、设备管理);② 调用REST API(创建设备、查询数据、配置规则引擎) | 你日常操作的核心端口,访问http://RK3588_IP:8080就是用这个端口 |
| 1883 | MQTT 主端口 | ThingsBoard的MQTT协议服务端,接收MQTT设备的遥测数据上报、设备状态上报、远程控制命令下发 | 物联网设备接入的核心端口(90%的IoT设备用MQTT),比如传感器、网关通过这个端口上报温湿度、开关状态等 |
| 7070 | 边缘计算/远程RPC | ThingsBoard Edge(边缘节点)的通信端口,用于边缘设备和云端的双向RPC调用、数据同步 | 若你用RK3588做边缘网关,这个端口用于和云端ThingsBoard同步数据;仅用单机版的话,默认备用即可 |
- 所有核心端口正常监听 → ThingsBoard完全安装成功 :
- 8080(Web/API)、1883(MQTT)、5683(CoAP)都在监听,说明ThingsBoard的核心功能(Web管理、设备接入)全部就绪;
- 无端口缺失/未监听,排除了"服务启动不完整"的问题。
- 不同端口的使用优先级 :
- 日常管理:优先用8080端口(Web界面);
- 设备接入:优先用1883端口(MQTT,适配绝大多数物联网设备);
- 低功耗设备:用5683端口(CoAP,比如电池供电的传感器)。
- 无需关注的端口 :
- 37695(随机UDP)、5685-5688(CoAP备用)、7070(边缘计算),这些端口不影响基础使用,保持默认即可。

web访问
默认账号
ThingsBoard 安装后默认提供 3个不同权限的账号,分别对应系统管理、租户管理、客户查看三类核心场景,适配不同的操作需求,默认账号密码如下:
| 角色 | 登录邮箱 | 默认密码 | 核心权限 | 适用场景 |
|---|---|---|---|---|
| 系统管理员 | sysadmin@thingsboard.org | sysadmin | 最高权限,管理所有租户、用户、设备、规则链,可分配租户资源 | 平台整体运维、租户创建与管理 |
| 租户管理员 | tenant@thingsboard.org | tenant | 管理本租户下的设备、仪表盘、客户、规则引擎,无法管理其他租户 | 单个租户的设备接入与数据管理 |
| 客户用户 | customer@thingsboard.org | customer | 仅能查看被授权的设备和仪表盘,无修改权限 | 终端用户查看数据(如设备运维人员) |
