一、实验项目
通过 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://localhost 或 http://内网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 服务端口)

图 1:客户端 P2PTunnel Agent 端口映射配置(本地 10002 映射服务端 80 端口)
五、外网访问测试
步骤 1:浏览器访问网页
打开客户端网页浏览器,输入访问地址:
http://127.0.0.1:10002/html
(说明:127.0.0.1 是客户端本地回环地址,10002 是映射的本地端口,html 是服务端 Apache 根目录下的网页文件夹)
图 2:外网访问内网网页文件成功
步骤 2:访问多媒体目录
输入目录访问地址,查看服务端多媒体文件列表:
http://127.0.0.1:10002/myubuntu
(myubuntu 是服务端 Apache 根目录下的多媒体文件夹,包含 MP4 视频等文件)
步骤 3:播放多媒体文件
点击目录中的 MP4 文件,浏览器将通过 HTTP 协议+P2PTunnel 隧道加载并播放内网视频文件:

图 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 服务是否正常运行
