一、实验项目
本实验通过 TUTK P2PTunnelAPIs 建立虚拟隧道,实现外网客户端通过 HTTP 协议访问内网设备(Ubuntu 服务器)上的多媒体文件(网页、视频等)。
文档信息:Version: v3.4.7.3+ | 适用场景: P2PTunnel+HTTP跨网访问 | 支持平台: Linux(服务端)/Windows(客户端)
二、实验准备
(一)硬件环境
- 服务端:Ubuntu 22.04 系统电脑(模拟内网多媒体服务器);
- 客户端:Windows 系统电脑(外网访问端,需安装网页浏览器)。
(二)软件环境
- 服务端:
- Apache HTTP Server:提供HTTP访问支持;
- TUTK P2P SDK:需包含 P2PTunnelAPIs 模块(用于启动Tunnel Server)。
- 客户端:
- 网页浏览器:如 Chrome、Edge(用于HTTP访问);
- Xftp:可选,用于辅助管理服务端文件(如上传多媒体文件);
- TUTK P2P SDK:需包含 P2PTunnel 客户端 Demo(用于启动Tunnel Agent)。
(三)前置条件
已完成 P2PTunnel 隧道打通(服务端 Tunnel Server 与客户端 Tunnel Agent 正常连接),参考文档:
三、实验步骤
(一)服务端配置(内网 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,流程如下:
- 进入 SDK 示例目录:SDK目录/Sample/Linux/Sample_P2PTunnelAPIs;
- 编译并运行 Tunnel Server(按示例文档配置 UID、License Key 等参数);
- 确保 Tunnel Server 正常启动,等待客户端 Tunnel Agent 连接。
(二)客户端配置(外网 Windows)
1. 安装辅助工具(可选)
安装 Xftp 软件(用于辅助管理服务端文件,如上传多媒体文件到 Apache 根目录,安装流程略)。
2. 启动 P2PTunnel Agent(隧道客户端)
参考 SDK 示例代码启动 Tunnel Agent,流程如下:
- 进入 SDK 示例目录:SDK目录/Sample/Windows/Sample_P2PTunnel(可联系官方获取编译好的客户端程序);
- 运行客户端 Demo,输入服务端设备 UID、认证信息,建立 P2PTunnel 隧道连接;
- 隧道连接成功后,配置端口映射(核心步骤)。
四、端口映射与访问配置(核心步骤)
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:外网访问内网多媒体目录成功
3. 播放多媒体文件
点击目录中的 MP4 文件,浏览器将通过 HTTP 协议+P2PTunnel 隧道加载并播放内网视频文件:

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