如何用 Docker Compose 一键部署 iptv-proxy:10 分钟启动你的 IPTV 代理服务
2026/8/19 20:38:47 网站建设 项目流程

如何用 Docker Compose 一键部署 iptv-proxy:10 分钟启动你的 IPTV 代理服务

【免费下载链接】iptv-proxyReverse proxy on iptv m3u and m3u8 file and xtream codes client api项目地址: https://gitcode.com/gh_mirrors/ip/iptv-proxy

如果你正在寻找一个简单可靠的 IPTV 代理服务解决方案,那么开源项目 iptv-proxy 会是一个很棒的选择。它是一个基于 Go 语言编写的轻量级反向代理工具,核心功能是把 m3u / m3u8 播放列表和 Xtream Codes 客户端 API 统一代理转发,帮助你隐藏真实流媒体源地址、统一认证鉴权,并让任意播放器都能稳定接入。本文将手把手带你用 Docker Compose 一键部署 iptv-proxy,全程无需手动编译源码,10 分钟内即可启动属于自己的 IPTV 代理服务。

什么是 iptv-proxy?为什么你需要一个 IPTV 代理

iptv-proxy 本质上是一个"翻译官":它读取你的原始 IPTV 订阅(m3u 文件或 Xtream Codes 账号),然后把所有频道地址重写为指向代理服务器的全新链接。这样做有三大好处:

  • 🛡️隐藏真实源:播放器只看到你的代理域名,原始服务器地址不泄露;
  • 🔑统一认证:把上游的账号密码替换为你自己设定的 USER / PASSWORD,安全性更高;
  • 📺兼容性强:转换后的播放列表可以直接导入 TiviMate、IPTV Smarters、VLC 等主流播放器。

项目核心配置与路由逻辑分别位于 cmd/root.go 与 pkg/config/config.go,但普通用户完全不需要关心源码,我们只需使用官方提供的 Dockerfile 和 docker-compose.yml 即可。

部署前的准备工作:3 项前置条件

在开始 Docker Compose 部署之前,请先确认以下条件:

  1. Docker 与 Docker Compose:建议 Docker 20+ 版本,Docker Compose v2 可直接使用docker compose命令;
  2. 一份 IPTV 源:可以是远程 m3u 链接(如http://xxx/get.php?...),也可以是本地的iptv.m3u文件;若使用 Xtream Codes 账号,则需要 base-url、用户名和密码;
  3. 一台可访问的服务器或 NAS:本机测试使用localhost即可,外网使用则需公网 IP 或域名。

一切就绪后,我们开始一键安装。

10 分钟快速部署 iptv-proxy:Docker Compose 一键安装步骤

第一步:获取项目文件

打开终端,克隆项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/ip/iptv-proxy cd iptv-proxy

克隆完成后,你会看到项目根目录下的 docker-compose.yml 以及用于放置本地播放列表的iptv/文件夹。

第二步:准备你的 IPTV 源文件

如果使用本地 m3u 文件,把它复制到iptv/目录并命名为iptv.m3u

cp /你的路径/playlist.m3u iptv/iptv.m3u

如果使用远程 m3u 链接,则跳过此步,直接修改环境变量即可。

第三步:修改 compose 配置(最快配置方法)

打开docker-compose.yml,重点修改environment部分:

environment: M3U_URL: /root/iptv/iptv.m3u # 本地文件路径;远程源则填 https://example.com/get.php?username=user&password=pass&type=m3u_plus&output=m3u8 PORT: 8080 # 监听端口 HOSTNAME: localhost # 对外暴露的主机名或 IP GIN_MODE: release USER: test # 代理访问用户名 PASSWORD: testpassword # 代理访问密码

只需改这四个关键项即可跑通,其余为可选配置。

第四步:一键启动服务

在项目根目录执行:

docker compose up -d

等待镜像构建完成,看到Started状态即代表 IPTV 代理服务启动成功 🎉

核心环境变量详解:让配置不再神秘

想进一步定制?项目在 cmd/root.go 中定义了全部可配置参数,对应环境变量如下:

环境变量作用示例
M3U_URLm3u 文件路径或远程链接/root/iptv/iptv.m3u
PORT代理服务监听端口8080
HOSTNAME对外暴露的主机名/IPlocalhost
ADVERTISED_PORT反代场景下的对外端口443
HTTPS置为1生成 https 链接1
XTREAM_USERXtream 上游用户名xtream_user
XTREAM_PASSWORDXtream 上游密码xtream_password
XTREAM_BASE_URLXtream 上游基础地址http://example.tv:1234
M3U_CACHE_EXPIRATIONm3u 缓存过期时间(小时)1

需要代理 Xtream Codes 服务时,只需补上XTREAM_USERXTREAM_PASSWORDXTREAM_BASE_URL三个变量,系统会自动开启 Xtream 代理支持 live、vod、series 和完整 EPG。

如何验证你的 IPTV 代理服务是否正常运行

启动后用浏览器或 curl 访问代理生成的播放列表:

curl "http://localhost:8080/iptv.m3u?username=test&password=testpassword"

如果返回一份包含#EXTINF标签且所有频道地址都指向localhost:8080的 m3u 内容,说明代理转发已生效。接下来只需把这个地址添加到任意播放器即可:

  • VLC:媒体 → 打开网络串流 → 粘贴上述 URL;
  • TiviMate / IPTV Smarters:在订阅管理中添加"新订阅",填入 URL 与账号密码。

Xtream 用户则使用标准 API 地址:

http://localhost:8080/get.php?username=test&password=testpassword&type=m3u_plus&output=ts

常见问题排查:让部署一次成功

  • 端口被占用8080冲突时,修改docker-compose.ymlportsPORT两个值(两者必须一致);
  • 播放列表为空:检查M3U_URL路径是否写错,本地文件是否确实放在iptv/目录(该目录已挂载到容器/root/iptv);
  • 播放器提示 401:确认 URL 中的usernamepasswordUSERPASSWORD环境变量一致;
  • 远程源加载缓慢:适当调大M3U_CACHE_EXPIRATION缓存时长。

进阶技巧:配合 Traefik 为 IPTV 代理服务开启 HTTPS

对外提供服务时强烈建议启用 HTTPS。项目在traefik/目录内置了完整方案,参考 traefik/docker-compose.yml 把 iptv-proxy 与 Traefik 编排在一起,设置HOSTNAME为你的域名、HTTPS: 1ADVERTISED_PORT: 443,Traefik 便会自动申请证书并完成 TLS 终止,让播放器通过https://你的域名/iptv.m3u安全访问。

总结

通过 Docker Compose 一键部署 iptv-proxy,你可以在 10 分钟内轻松拥有一个稳定、私密且兼容性极佳的 IPTV 代理服务。无论是保护源地址、统一账号认证,还是让 Xtream Codes 源无缝接入任意播放器,这个轻量级代理都能胜任。现在就动手试试,享受自建 IPTV 代理服务的乐趣吧!🚀

【免费下载链接】iptv-proxyReverse proxy on iptv m3u and m3u8 file and xtream codes client api项目地址: https://gitcode.com/gh_mirrors/ip/iptv-proxy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询