你的telly IPTV代理真的安全吗?一份新手也能看懂的加固实战指南

📅 2026/8/17 21:29:30
你的telly IPTV代理真的安全吗?一份新手也能看懂的加固实战指南
你的telly IPTV代理真的安全吗一份新手也能看懂的加固实战指南【免费下载链接】tellyAn IPTV proxy项目地址: https://gitcode.com/gh_mirrors/te/telly先说个真实场景。上个月我帮一位朋友排查问题他折腾了整整一天Plex 始终找不到设备。我远程一看配置文件里Base-Address 0.0.0.0:6077日志里还躺着一行刺眼的报错。改成一个 IP 后三分钟就通了。他挠着头问我这玩意儿不是装上就能用吗怎么这么多讲究telly 是一个用 Go 语言编写的 IPTV 代理工具核心作用是把 IPTV 源的 M3U 播放列表翻译成 Plex Live 能直接认出的虚拟电视调谐器。听起来很酷但正因为它天生就要暴露在局域网上、还要替你去拉取各种流媒体源它的telly安全配置做得好不好直接决定了你的 IPTV 服务是只给你自己看还是全网免费共享。这篇文章不整那些让人昏昏欲睡的安全理论就按风险从高到低的顺序带你把 telly 的每个薄弱点逐个焊死。全程有配置示例、有踩坑记录跟着走一遍新手也能在半小时内搞定。先搞清楚 telly 把门开在哪里telly 的全部行为都由一个 TOML 配置文件控制默认放在三个位置之一/etc/telly/telly.config.toml、$HOME/.telly/telly.config.toml或者运行目录下的telly.config.toml。官方示例配置可以看项目根目录的README.md里面注释写得非常详细建议当成字典来查。打开这个文件你会看到四个必填区块[Discovery]telly 怎么向 Plex 自我介绍、[IPTV]流媒体行为、[Log]日志、[Web]网络监听。另外还有一个[[Source]]区块用来配置你的 IPTV 源。记住这张地图下面所有操作都是在这个文件上做文章。改动后重启 telly 生效不需要重新编译任何东西。第一站身份信息还在用出厂默认值先把它换掉telly 的[Discovery]区块里有几个字段是它向 Plex 证明我是我的凭证。官方示例里给出的默认值是[Discovery] Device-Auth telly123 Device-ID 12345678 Device-UUID 问题在于所有下载过这个项目的人手里的默认值都长得一模一样。telly123这种密码说句不好听的跟没锁门没什么区别。隔壁邻居要是也装了 Plex 和 telly两边设备直接互相认亲你的频道列表可能就跑到人家电视上去了。正确做法其实很朴素[Discovery] Device-Auth Kx9#mP2!vL5qR7 # 至少12位混合大小写、数字和符号 Device-ID 8f3T2aB9 # 8位随机字母数字别用12345678这种连续串 Device-UUID # 留空让telly自动生成即可顺手说个进阶玩法如果你要跑两个telly 实例比如给两台不同的 Plex 用Device-ID、Device-UUID和端口三者组合起来才是每台设备的唯一钥匙记得每个实例都换成不同组合不然两台会打架。这个细节写在README.md的注释里属于资深用户才懂的坑。第二站监听地址设错了等于把家门钥匙挂门口这是整份配置里最容易出错、也最危险的一环。先看两个字段的分工Listen-Addresstelly 进程实际听哪个网卡的哪个端口也就是真正开着的门Base-Addresstelly 告诉 Plex你来找我玩的时候用这个地址相当于递给别人的名片不少教程会教你把两个都设成0.0.0.0:6077然后你就收获了和开头那位朋友一模一样的报错。telly 在启动时会对配置做检查逻辑在main.go的validateConfig函数里发现Base-Address是0.0.0.0会直接拒绝启动日志里写着base URL is set to 0.0.0.0, this will not work.——因为 Plex 拿到这张名片会傻乎乎地往 localhost 上连而 localhost 是它自己不是你的 telly。更隐蔽的坑在反向搭配Listen-Address全接口监听、Base-Address却是 localhost这时 telly 只会甩给你一行警告然后照常运行。后果是什么局域网里任何设备都能直接访问 telly 的 6077 端口而 Plex 却连不上流。所以请记住这组黄金搭配[Web] Base-Address 192.168.1.100:6077 # 必须是telly所在机器的实际内网IP Listen-Address 0.0.0.0:6077 # 全接口监听方便局域网设备发现如果你的 Plex 和 telly 在同一台机器上Base-Address用localhost:6077也没问题但一旦涉及局域网共享务必换成真实 IP。至于端口6077 只是约定俗成的默认值改成 8088、19000 之类的冷门端口能挡掉一大批只会扫默认端口的脚本小子。第三站配置文件本身就是你的保险柜聊完网络说点很多人忽略的那份telly.config.toml里躺着什么你的 IPTV 服务商账号密码、M3U 播放列表的完整 URL——不少供应商的播放列表链接里直接内嵌username和password参数。也就是说这份文件本身就是一把万能钥匙。所以它的文件权限必须按保险柜标准来chmod 600 /etc/telly/telly.config.toml # 或者 chmod 600 ~/.telly/telly.config.toml600的含义是只有所有者能读写其他人一律靠边站这对单用户家庭环境是够用的。如果你跟人合租服务器再狠一点把所属组也锁死别让同组的其他用户有可乘之机。有人可能要问那 M3U 地址里的密码会出现在日志里吗telly 这一点做得还算厚道——源码里内置了一个净化逻辑在lineup.go的getM3U和getXMLTV里会把日志中 URL 的username、password、token参数替换成REDACTED字样再输出。但注意日志净化≠日志安全它只负责打码不负责帮你隐藏其他敏感信息。还有一个容易踩的雷把[Log] Level调成debug时telly 启动会把完整配置以 JSON 形式打印到日志里见main.go包括你的 Source 区块。所以生产环境老老实实用infodebug 只留给本地调试。第四站日志和调试接口低调才能活得久接着上面说日志。[Log]区块有两个开关值得你认真权衡[Log] Level info # debug/info/warn/error/fatal 五档可选 Requests false # 是否记录每个HTTP请求Requests true的时候telly 会把每个访问请求的客户端 IP、User-Agent、路径、耗时全部写进日志代码在routes.go的ginrus中间件。开发期开着确实方便排查但生产环境开着等于把自己家的访客登记簿摊在门口。尤其当你把 telly 暴露到公网时这条建议从可选直接升级成必须——关掉它日志会安静很多也少了很多被人研究的素材。另一个低调的秘诀telly 自带一个/debug.json接口routes.go里注册的会返回完整的频道列表内部状态。这玩意儿在本地调试时很香但如果你开了公网端口记得在反向代理或防火墙层面把它挡掉或者干脆别让 telly 离开内网。顺带一提telly 还有一个/manage管理页面前端代码在frontend/目录下默认没有任何认证。谁连上你的 6077 端口谁就能看到这个页面。所以再次强调防火墙只放行该放行的 IP别让 6077 裸奔到公网。第五站用 Docker 部署这几行配置能救命如果你用 Docker 跑 telly官方镜像tellytv/telly:dev-ffmpeg自带 ffmpeg 转码能力隔离性天然比裸进程好一截但有几个细节值得抠一抠。最值得强调的就是配置文件的只读挂载。想象一下配置文件能被容器里的进程改写一旦某个环节出了岔子比如误操作你的保险柜就可能被自己人撬开。改成只读一劳永逸version: 3 services: telly: image: tellytv/telly:dev-ffmpeg container_name: telly ports: - 6077:6077 environment: - TZAsia/Shanghai volumes: - ./telly.config.toml:/etc/telly/telly.config.toml:ro # 关键就是末尾的:ro restart: unless-stoppedREADME.md里的 Docker 示例没有加:ro但你完全可以加这不影响任何功能纯赚一层保险。还有两点官方两个镜像dev和dev-ffmpeg中dev-ffmpeg只多了个 ffmpeg体积大得有限建议无脑选它。万一以后想开转码不用改任何启动命令。注意[IPTV]区块里的FFMpeg开关想用就取消注释设为true不想用就保持注释状态千万别写成false——这会让 telly 的解析逻辑陷入奇怪的状态属于 README 里明示的坑。关于 telly 还有个特色提醒它单实例加载超过 420 个频道时Plex 会直接卡死lineup.go里写死了这个上限超了直接 panic。所以老老实实用Filter正则把频道过滤到合理数量比如Filter Sports|United States.*这既是性能问题也是安全问题的近亲——频道越少暴露面越小。收尾出门前的十分钟自检到这里核心的加固动作都做完了。最后送你一份出门检查单每次改完配置重启 telly 之前花十分钟过一遍基本就稳了Device-Auth是不是还是telly123Device-ID还是不是12345678Base-Address填的是真实内网 IP而不是0.0.0.0配置文件权限是不是600Log Level是不是info级别Requests是不是false6077 端口有没有被防火墙限制在可信 IP 范围内有没有打开/debug.json和/manage这类无认证接口的公网访问Docker 挂载配置有没有加:ro如果有一项打了勾但答案是没做那就趁现在回去补上。安全这回事说穿了就是把默认值换掉、把暴露面收窄、把日志管住三件事。telly 的默认配置是为了让你跑起来而不是为了让你跑得安全——这两者之间就差今天这几步。最后啰嗦一句telly 处于活跃开发中配置项可能随版本变动动手之前先瞄一眼README.md和更新日志。愿你的 telly 从此只为你自己亮灯把 IPTV 的乐趣留给客厅把麻烦挡在门外。【免费下载链接】tellyAn IPTV proxy项目地址: https://gitcode.com/gh_mirrors/te/telly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考