iptv-proxy 是什么?开源 IPTV 反向代理工具的完整入门指南

📅 2026/8/19 20:00:24
iptv-proxy 是什么?开源 IPTV 反向代理工具的完整入门指南
iptv-proxy 是什么开源 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 编写的开源 IPTV 反向代理工具它能把远程的 m3u / m3u8 播放列表和 Xtream Codes 服务端 API 全部搬到你自己的服务器上生成全新的可访问地址。无论你是刚接触 IPTV 的新手还是想自建代理的老手这篇 iptv-proxy 入门指南都能帮你快速上手。一、iptv-proxy 能做什么核心功能一图看懂简单说iptv-proxy 做两件事代理播放列表和代理 Xtream 接口。它本身不存储任何视频内容只负责中转把上游的直播源地址改写成指向你自己服务器的地址从而隐藏真实源、统一管理入口。 功能一M3U / M3U8 播放列表反向代理你手上可能有一个来自服务商的 m3u 播放列表文件里面是一堆形如http://iptvexample.net:1234/12/test/1的直播地址。iptv-proxy 会把整个 m3u 文件解析、转换生成一份全新的、指向你服务器的列表例如原始频道地址 →http://你的服务器:8080/xxxx/用户/密码/0/1原始 m3u 文件 → 新地址http://你的服务器:8080/iptv.m3u?usernametestpasswordpasswordtest之后你用任意播放器加载这个新地址就能正常观看而真实源地址被完全隐藏了。m3u8 格式HLS 直播流同样支持播放器请求切片时也会被自动转发可参考源码中的路由定义routes.go。 功能二Xtream Codes 客户端 API 代理很多 IPTV 服务商采用 Xtream Codes 协议提供get.php、player_api.php、xmltv.php等接口。iptv-proxy 能把这些接口全部代理过来将上游的xtream-user/xtream-password替换为你自定义的user/password将上游服务器地址替换为你的域名和端口直播live、点播VOD、剧集series、EPG 节目单全部支持也就是说你只要把新账号发给家人朋友他们看到的是一套属于你的 Xtream 服务完全不知道真实服务器在哪里。核心逻辑在 xtream-proxy.go 和 xtreamHandles.go 中实现。二、iptv-proxy 工作原理简述整个流程非常直观用三步就能讲清楚拉取上游列表启动时从--m3u-url指定的远程地址或本地文件解析 m3u 播放列表并生成代理后的新列表文件。重写地址把列表里每一条原始流地址改写成指向 iptv-proxy 自己的新地址这个逻辑在 server.go 的replaceURL中完成。按需转发当播放器请求新地址时iptv-proxy 作为反向代理去请求上游真实地址再把数据流原样传回给播放器。整个过程对播放器是透明的对上游服务器来说请求都来自你的代理服务器。三、iptv-proxy 的 4 种安装方式新手也能搞定方式 1下载编译好的二进制最简单前往项目 Releases 页面下载对应平台的压缩包解压后直接运行即可无需安装任何依赖。方式 2Go 源码安装如果你本机装有 Go 环境在项目根目录执行go install方式 3Docker 一键部署推荐项目自带 Dockerfile 和 docker-compose.yml只需几步把本地 m3u 文件放入iptv/目录或在 compose 文件中配置远程M3U_URL修改环境变量中的端口、主机名和账号密码启动服务docker-compose up -d方式 4从源码手动构建克隆仓库后进入目录直接构建git clone https://gitcode.com/gh_mirrors/ip/iptv-proxy cd iptv-proxy go build -o iptv-proxy .四、Docker 快速部署最省心的配置方法以最常用的 Docker 方式为例环境变量是这样配置的环境变量说明示例值M3U_URL远程 m3u 地址使用本地文件则填/root/iptv/iptv.m3uhttp://上游:1234/get.php?...PORT服务监听端口8080HOSTNAME对外域名或 IPlocalhostUSER/PASSWORD你定义的代理访问账号test/testpasswordXTREAM_USER等Xtream 上游信息可选见下文注意compose 文件里ports暴露的端口必须与PORT一致。启动后访问http://你的服务器:8080/iptv.m3u?usernametestpasswordtestpassword就能拿到代理后的播放列表。五、开启 Xtream 代理的 3 个步骤如果你用的是 Xtream Codes 服务商加上这几个参数即可配置上游XTREAM_USER、XTREAM_PASSWORD和XTREAM_BASE_URL设置对外账号USER/PASSWORD用新地址访问http://你的服务器:8080/get.php?usernametestpasswordtestpasswordtypem3u_plusoutputts这时所有 Xtream 接口live / vod / series / EPG都会返回代理后的数据。更有趣的是当你把 m3u-url 填成/get.php?typem3u_plus格式的 Xtream 地址时iptv-proxy 会自动识别上游是 Xtream 服务商并开启对应代理这个智能判断在 root.go 中完成。六、进阶玩法HTTPS 与 Traefik 集成想用域名 HTTPS 访问项目在traefik/目录下提供了现成的 Traefik 反向代理配置将traefik/目录内容复制到项目根目录在 traefik/docker-compose.yml 中把iptv.proxyexample.xyz换成你的域名设置HTTPS: 1让代理地址自动使用https://协议执行docker-compose up -d这样你的 IPTV 服务就走上了全 HTTPS 通道播放器连接更稳定、更安全。七、常用命令行参数速查表不想用 Docker直接命令行运行也完全没问题常用参数如下参数作用--m3u-url上游 m3u 文件或 URL--port监听端口默认 8080--hostname对外主机名--user/--password代理访问账号--xtream-user等Xtream 上游信息--m3u-cache-expiration列表缓存时长小时--https开启 https 协议链接更完整的配置结构可以查看 config.go。八、使用前必知的 3 个注意事项鉴权偏基础目前账号密码校验以查询参数方式实现属于基础鉴权作者也在 README 中说明未来会升级为数据库 令牌的正式认证公网使用建议搭配防火墙或更安全的网关。仅限合法用途请确保你有权代理相应的流媒体内容遵守服务商条款和当地法律法规。反向代理场景友好--advertised-port参数可以指定对外暴露端口方便你把 iptv-proxy 放在 Nginx、Traefik 等反向代理后面。九、常见问题 FAQQ播放器无法播放代理后的地址怎么办A先确认HOSTNAME和端口是否对外可达再检查USER/PASSWORD是否与请求中的参数一致。Qm3u 和 m3u8 有什么区别Am3u 是基础播放列表格式m3u8 是 UTF-8 编码的 HLS 流列表通常配合分片传输。两者 iptv-proxy 都支持且 m3u8 的分片请求也会被自动代理转发。Q上游地址变更了怎么办A重启服务即可重新拉取并生成最新列表配合--m3u-cache-expiration可以控制列表缓存时长。十、总结iptv-proxy 是一个非常轻量、优雅的开源 IPTV 反向代理解决方案一条命令就能把远程 m3u / m3u8 列表和 Xtream Codes 服务完整代理到自己的服务器上支持 Docker、支持 Traefik HTTPS、支持全类型流媒体。整个项目只有几千行 Go 代码却覆盖了代理场景的大部分需求非常适合个人用户和自建 IPTV 服务场景。现在去克隆一份源码动手试试吧git clone https://gitcode.com/gh_mirrors/ip/iptv-proxy从拿到代理列表到手机播放器流畅观看整个过程不超过 10 分钟。祝你看得开心【免费下载链接】iptv-proxyReverse proxy on iptv m3u and m3u8 file and xtream codes client api项目地址: https://gitcode.com/gh_mirrors/ip/iptv-proxy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考