如何通过AWS EC2 Ubuntu实例的公共IP访问ThingsBoard
通过EC2公网IP访问已安装ThingsBoard的配置步骤
1. 调整ThingsBoard服务的网络监听配置
服务默认绑定本地回环地址是公网访问失败的最常见原因,外部流量根本无法触达服务进程:
- 打开ThingsBoard主配置文件:
sudo nano /etc/thingsboard/thingsboard.conf - 定位到
HTTP_BIND_ADDRESS参数,确保参数值为0.0.0.0- 如果值为
127.0.0.1,服务只会响应来自实例本身的localhost请求,所有外部流量都会被直接忽略
- 如果值为
- 确认
HTTP_PORT参数值和预期一致,默认不修改的话是80端口 - 保存修改后重启ThingsBoard服务使配置生效:
sudo systemctl restart thingsboard - 执行
ss -tulnp | grep java校验监听状态,只要输出里显示监听地址为0.0.0.0:对应端口就代表服务端配置正确
2. 配置EC2安全组入站放行规则
AWS安全组是实例层面的网络防火墙,默认不会开放Web端口给公网访问:
- 在EC2控制台找到当前实例关联的安全组,进入入站规则编辑页
- 新增匹配的入站规则:
- 协议选TCP,端口填ThingsBoard实际使用的Web端口(默认是80)
- 来源可根据实际使用场景选择:临时测试可填
0.0.0.0/0允许所有IPv4访问,有固定访问IP的话建议把来源限制为对应IP段,降低服务暴露风险
- 保存规则后即时生效,不需要重启实例
3. 放行Ubuntu本地防火墙拦截
如果实例开启了UFW防火墙,即使安全组放行了端口,本地系统也会拦截外部请求:
- 执行
sudo ufw status查看防火墙运行状态 - 如果状态为激活,执行命令放行ThingsBoard端口:
- 80端口对应命令:
sudo ufw allow 80/tcp - 自定义端口的话把端口号替换为实际值即可
- 80端口对应命令:
- 执行
sudo ufw reload让规则生效
访问验证
完成以上配置后,直接在本地浏览器输入EC2实例的公共IPv4地址,即可直接加载ThingsBoard登录页面。
如果遇到访问异常:
- 页面持续加载超时:优先检查安全组的端口、来源范围配置是否正确
- 页面提示连接被拒绝:回到第一步确认ThingsBoard服务运行状态、监听地址是否正确
内容的提问来源于stack exchange,提问作者Majdi Chebil
相关产品推荐
相关产品推荐

