简体中文

[实验]如何基于P2PTunnelAPIs+http搭建一个流媒体服务器?

外网HTTP访问内网设备多媒体文件 | TUTK P2P SDK 实验指南

[实验] 外网通过HTTP访问内网设备多媒体文件

Version: v3.4.7.3+ | 适用场景: P2PTunnel+HTTP跨网访问 | 支持平台: Linux(服务端)/Windows(客户端)

一、实验项目

通过 TUTK P2PTunnelAPIs 建立虚拟隧道,实现外网客户端通过 HTTP 协议访问内网设备(Ubuntu 服务器)上的多媒体文件(网页、视频等)。

二、实验准备

硬件环境:
  • 服务端:Ubuntu 22.04 系统电脑(模拟内网多媒体服务器)
  • 客户端:Windows 系统电脑(外网访问端,安装网页浏览器)
软件环境:
  • 服务端:安装 Apache HTTP Server、TUTK P2P SDK(含 P2PTunnelAPIs)
  • 客户端:安装网页浏览器(如 Chrome、Edge)、Xftp(可选,文件传输辅助)、TUTK P2P SDK(含 P2PTunnel 客户端 Demo)
前置条件:已完成 P2PTunnel 隧道打通(服务端 Tunnel Server 与客户端 Tunnel Agent 正常连接),参考文档:
  • 设备端(服务端):《基于 P2PTunnelAPIs 和 TCPIP 协议开发 NAS(或者摄像头)-设备端》
  • APP 端(客户端):《基于 P2PTunnelAPIs 和 TCPIP 协议开发 NAS(或者摄像头)-APP 端》

三、实验步骤

3.1 服务端配置(内网 Ubuntu 22.04)

步骤 1:安装 Apache HTTP Server
执行以下命令安装并启动 Apache 服务,用于提供 HTTP 访问支持:
sudo apt-get update
sudo apt-get install apache2  # 安装 Apache 服务器
sudo systemctl start apache2  # 启动服务
sudo systemctl enable apache2 # 设为开机自启(可选)
验证:内网环境下访问 http://localhosthttp://内网IP,若能看到 Apache 默认欢迎页,说明 HTTP 服务启动成功。
步骤 2:启动 P2PTunnel Server(隧道服务端)
参考 SDK 示例代码启动 Tunnel Server,流程如下:
  • 1. 进入 SDK 示例目录:SDK目录/Sample/Linux/Sample_P2PTunnelAPIs
  • 2. 编译并运行 Tunnel Server(按示例文档配置 UID、License Key 等参数)
  • 3. 确保 Tunnel Server 正常启动,等待客户端 Tunnel Agent 连接

3.2 客户端配置(外网 Windows)

步骤 1:安装辅助工具(可选)
安装 Xftp 软件(用于辅助管理服务端文件,如上传多媒体文件到 Apache 根目录,步骤略)。
步骤 2:启动 P2PTunnel Agent(隧道客户端)
参考 SDK 示例代码启动 Tunnel Agent,流程如下:
  • 1. 进入 SDK 示例目录:SDK目录/Sample/Windows/Sample_P2PTunnel(可联系官方获取编译好的客户端程序)
  • 2. 运行客户端 Demo,输入服务端设备 UID、认证信息,建立 P2PTunnel 隧道连接
  • 3. 隧道连接成功后,配置端口映射(关键步骤)

四、端口映射与访问配置(核心步骤)

HTTP 协议默认使用 80 端口,内网环境下可通过 http://内网IP:80/文件路径 访问,但外网无法直接使用内网 IP。需通过 P2PTunnel 做端口映射,将内网服务端的 80 端口映射到客户端本地端口。
映射规则:客户端本地端口(如 10002) ↔ P2PTunnel 隧道 ↔ 服务端 80 端口(Apache 服务端口)

截图.png

图 1:客户端 P2PTunnel Agent 端口映射配置(本地 10002 映射服务端 80 端口)

五、外网访问测试

步骤 1:浏览器访问网页
打开客户端网页浏览器,输入访问地址:                http://127.0.0.1:10002/html                (说明:127.0.0.1 是客户端本地回环地址,10002 是映射的本地端口,html 是服务端 Apache 根目录下的网页文件夹)

截图1.png

图 2:外网访问内网网页文件成功

步骤 2:访问多媒体目录
输入目录访问地址,查看服务端多媒体文件列表:                http://127.0.0.1:10002/myubuntu                (myubuntu 是服务端 Apache 根目录下的多媒体文件夹,包含 MP4 视频等文件)

截图3.png

图 3:外网访问内网多媒体目录成功
步骤 3:播放多媒体文件
点击目录中的 MP4 文件,浏览器将通过 HTTP 协议+P2PTunnel 隧道加载并播放内网视频文件:

截图4.png

图 4:外网播放内网 MP4 视频成功

关键 Tips

1. 协议适配通用性:HTTP、FTP、RTSP 协议与 P2PTunnelAPIs 对接方法一致:

  • 设备端(服务端):无需改动核心逻辑,仅需启动 P2PTunnel Server 并开放对应服务端口(如 FTP 21 端口、RTSP 554 端口)
  • APP 端(客户端):启动 P2PTunnel Agent 后,在应用程序中将目标 IP 改为 127.0.0.1,端口改为隧道映射的本地端口

2. 端口映射注意:客户端本地端口需选择未被占用的端口(如 10002、10003 等),避免与系统默认端口冲突

3. 故障排查:若访问失败,优先检查 P2PTunnel 隧道连接状态、端口映射配置是否正确、服务端 HTTP 服务是否正常运行

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部