目录
在代理后安装 Edge
概述
在代理服务器后部署 Edge,意味着 Edge实例 无法直接访问互联网,与 ThingsBoard Cloud 或其他外部服务的通信都需经由代理转发。
对比:


使用代理服务器可通过流量过滤与监控提升安全性。在受限网络中,直接访问互联网通常被禁止,因此代理配置往往是满足安全策略的必要条件。
除安全性外,代理还能缓存资源,显著降低网络开销,并提升ThingsBoard Edge等分布式系统的整体性能。
安装指南
前提条件
- 具备代理服务器(HTTP 或 HTTPS),含地址、端口及凭据(如需)。
- 明确需绕过代理的地址(如内网资源)。
- 已安装 Java 17。
- 已安装并运行 ThingsBoard Edge。
步骤 1. 修改配置文件
在基于 Debian 的安装(如 Ubuntu)中配置代理后的 ThingsBoard Edge,请修改 tb-edge.conf 文件:
1
2
3
4
5
6
7
8
| sudo tee -a /etc/tb-edge/conf/tb-edge.conf > /dev/null <<EOL
#Enable the proxy
export CLOUD_RPC_PROXY_ENABLED=true
#Set the proxy server host and port
export CLOUD_RPC_PROXY_HOST="proxy_host"
export CLOUD_RPC_PROXY_PORT="proxy_port"
EOL
|
- 将 proxy_host 和 proxy_port 替换为代理的主机名和端口。
- 若有需绕过代理的主机(如内网地址),按格式设置 :localhost|127.0.0.1|yourdomain.com
配置认证(如需)
若代理需认证,添加以下参数:
1
2
3
| #(Optional) Add authentication if required
export CLOUD_RPC_PROXY_USERNAME="proxy_username"
export CLOUD_RPC_PROXY_PASSWORD="proxy_password"
|
- 将 proxy_user 和 proxy_password 替换为实际凭据。
验证更改(可选)
运行以下命令验证更改:
1
| cat /etc/tb-edge/conf/tb-edge.conf
|
步骤 2. 重启 ThingsBoard Edge
修改 tb-edge.conf 后需重启服务使更改生效:
1
| sudo service tb-edge restart
|
Edge 服务启动后,在 http://localhost:8080 打开 Edge UI,使用 租户凭据 登录。
故障排查
ThingsBoard Edge 日志存放在以下目录:
检查服务端是否有错误:
1
| cat /var/log/tb-edge/tb-edge.log | grep ERROR
|
检查连通性:
1
| curl -x http://proxy_host:proxy_port https://your_tb_cloud_url
|
- 将 proxy_host 和 proxy_port 替换为代理的主机名和端口。
确认服务可到达代理服务器:
1
2
| ping proxy_host
traceroute proxy_host
|
下一步
|
前提条件
- 具备代理服务器(HTTP 或 HTTPS),含地址、端口及凭据(如需)。
- 已安装并运行 ThingsBoard Edge,且可访问 ThingsBoard Cloud。
- 本机已安装 Docker 和 Docker Compose。
进行代理配置前,请将终端切到包含 docker-compose.yml 文件的目录。
步骤 1. 停止 Docker 容器
停止当前运行的 TB Edge 容器(若仍在运行):
步骤 2. 修改 .yml 文件
在 docker-compose.yml 中填入代理设置。
打开文件可使用:
1
| sudo nano docker-compose.yml
|
将以下行写入文件的 “environment” 块:
1
2
3
| HTTP_PROXY: http://proxy_user:proxy_password@<proxy_host:proxy_port
HTTPS_PROXY: http://proxy_user:proxy_password@<proxy_host:proxy_port
NO_PROXY: localhost,127.0.0.1,postgres,PUT_YOUR_CLOUD_IP
|
- 在 HTTP_PROXY 和 HTTPS_PROXY 行分别指定 HTTP 与 HTTPS 代理服务器
- 例如:HTTP_PROXY=http://user:password@proxy.example.com:8080
- 在 NO_PROXY 行列出需绕过代理的地址
- 例如:NO_PROXY=localhost,127.0.0.1,postgres,thingsboard.cloud
预期结果:
步骤 3. 重启容器
启动此 docker compose,执行以下命令:
1
| docker compose up -d && docker compose logs -f mytbedge
|
Edge 服务启动后,在 http://localhost:8080 打开 Edge UI,使用 租户凭据 登录。
故障排查
确认 docker-compose.yml 中的代理环境变量已正确设置:
1
2
3
| echo $HTTP_PROXY
echo $HTTPS_PROXY
echo $NO_PROXY
|
若变量未设置,检查容器内是否已正确应用:
1
| docker exec -it container_name printenv | grep -i proxy
|
若缺失,确保在 docker-compose.yml 中正确定义。
容器运行后,验证其是否可通过代理访问互联网:
1
| docker exec -it container_name curl -I https://google.com
|
若请求失败,可能表示代理配置错误或网络问题。
检查 Docker 容器日志以查找其他代理相关错误:
1
| docker logs container_name
|
检查连通性:
1
| curl -x http://proxy_host:proxy_port https://your_tb_cloud_url
|
下一步
|