钉钉里面集成的应用如何访问内网的视频流
1. 使用内网穿透服务【次选】
通过内网穿透服务(如 Ngrok、Frp、钉钉开放平台提供的 微应用隧道)将内网视频流服务暴露到公网:
- Ngrok/Frp:设置一个隧道,将内网服务映射到公网地址,然后将公网地址提供给钉钉应用使用。
- 钉钉微应用隧道:钉钉开放平台为企业提供了内网穿透服务,可以通过配置直接访问内网资源。
步骤:
- 部署并配置内网穿透服务。
- 获取映射后的公网地址。
- 在钉钉应用中配置视频流的访问链接。
优点:
- 快速、灵活。
- 无需复杂的网络配置。
缺点:
- 依赖第三方服务,可能存在带宽和稳定性问题。
- 数据传输需要关注安全性(建议加密流量)。
2. 配置企业内网 VPN 【pass】
将钉钉应用服务器与企业内网通过 VPN 连接:
- 在企业内网部署 VPN 服务。
- 将钉钉应用服务器配置为企业 VPN 的客户端。
- 钉钉应用服务器通过 VPN 直接访问内网视频流。
优点:
- 高安全性。
- 数据传输效率高。 缺点:
- 配置复杂,依赖企业 IT 基础设施。
3. 使用钉钉企业内部署版【pass】
钉钉提供企业专属部署方案,支持应用直接访问内网资源:
- 使用钉钉的专属定制服务或内网API网关,将应用部署在内网,直接访问内网服务。
优点:
- 钉钉官方支持。
- 无需公网暴露,安全性高。 缺点:
- 需要联系钉钉官方支持,可能涉及额外费用。
4. 通过反向代理 【首选】
如果你的内网视频流服务和钉钉应用都运行在局域网内,可以使用反向代理将视频流服务统一到一个子域名或路径下:
- 在内网服务器上部署 Nginx 或 Apache。
- 配置反向代理,将钉钉应用的请求路由到内网视频流服务。
优点:
- 简单易用,适合内网部署环境。 缺点:
- 仅适用于内网场景。
步骤
确保 Nginx 编译时启用了 http_proxy 模块(大多数版本默认已启用)。
修改 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default。)
添加以下配置:
conf
server {
listen 80; # 外网访问的端口
server_name your-domain.com; # 你的域名或外网 IP
location /ws/ {
proxy_pass http://172.27.240.40:8092/; # 转发到内网 WebSocket 服务
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# 设置超时时间
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
配置说明:
- proxy_pass:将外网请求转发到内网 WebSocket 服务。
- proxy_set_header Upgrade $http_upgrade 和 Connection "upgrade":支持 WebSocket 协议的升级请求。
- proxy_read_timeout 和 proxy_send_timeout:避免长连接超时。
- 测试 Nginx 配置
- sudo nginx -t 如果没有错误,重启 Nginx:
- sudo systemctl restart nginx
- 外网访问测试:配置完成后,外网用户可以通过配置的域名地址访问 WebSocket 服务