O11 介绍:
一款可以推拉流被 drm 加密的 mpd 媒体流服务器,docker 基于 ubuntu 构建,因为 alphine 轻量化镜像不能正常运行 O11。
因原系统文件未开源,且不支持 ARM 架构,本容器仅允许运行在 X86 架构主机和服务器上。
众所周知 github 上发布的 o11 系统有提取 /etc/passwd
文件漏洞,经过 docker 封装后,始作俑者将提取不到任何有效的敏感信息。
使用方法:
docker run -itd --name=o11 --restart=always -p 自定义端口:1234 wechatofficial/o11:latest
日志查看:
docker logs -f o11
安全加固请参考:https://blog.csdn.net/yeqinghanwu/article/details/125979997
iptables -I INPUT -s 35.203.210.16 -j DROP
iptables -A OUTPUT -d 35.203.210.16 -j DROP
声明:本容器仅用于学习交流测试使用,请严格遵守当地法律法规,合理使用本容器。严禁用于违法项目,因此产生的法律纠纷与本容器无关。
预告:后续会陆续制作 xtreamUI flussonic 等 IPTV 系统镜像。
设置简单,测试了下,成功推流,对于一些不是很稳定的源还是不错的,我看了下会缓存 30 秒。正在研究 docker 之间访问,现在推流 dokcer 访问不了 4gtv docker。。。。。
想请问可以用来推 mytvsuper 吗?我把 key 放进去也不行,请教一下大佬 播放地址:https://mytvsuper.livednow.com/JUHD key: 2c045f5adb26d391cc41cd01f00416fa:XXXXXXXXXXXXXXXX
1.“uesrs”:“add uesr” - 添加用户,“password” - 设置密码。“admin”“web access”打钩,最后“save users”。
2.“congifg”:
(1)“new provided”右边空白位置“provider name”添加列表名称,填完后按回车即可。
(2)“add stream”右边空白位置“stream name”添加直播源名称,如:cctv1,填完后回车。
(3)此时最下面会出现刚添加的直播源名称,“mode”保持“live”,在“manifest”空白位置填入直播源地址,点击上面的“save provider”保存直播源,再点一下直播源最左边的播放三角按键,顺利的话,status 就会显示 starting,然后就变成“streaming”,这是表示推流成功,如果没有显示“streaming”,则点击一下看看哪里出了问题。如果是 mytvsuper,还需要在右边的空白大框里面填写 key,地址从 mytvsuper.m3u 获取,具体如下:
#EXTINF:-1 tvg-id="翡翠台" tvg-name="翡翠台" tvg-logo="https://assets.livednow.com/logo/.png翡翠台" group-title="綜合", 翡翠台 #KODIPROP:inputstream.adaptive.manifest_type=mpd #KODIPROP:inputstream.adaptive.license_type=clearkey #KODIPROP:inputstream.adaptive.license_key=xx58b9XXXX7622c465a6205eb2252b8ed:2d2fd7XXb1XXXb1e28XXXX82688XXX8480 http://192.168.8.16:8234/mytvsuper/J
直播源地址为:http://192.168.8.16:8234/mytvsuper/J key 为:xx58b9XXXX7622c465a6205eb2252b8ed:2d2fd7XXb1XXXb1e28XXXX82688XXX8480
3.顶部“playlist”,点解下拉小三角,点击“full”,获取播放列表,把“http://192.168.X.XX:XXXX/playlist.m3u”
扔进去播放器,enjoy
我的使用环境是旁路由里面开 docker,所以不用在 docker 里面设置代理,需要走代理的域名就在 openclash 规则里面改就是了,这个大佬有说明。
我的只是简单操作,具体深入的请大佬补充
直播源是 v6 地址么?docker 如果要支持 v6 有点麻烦,百度下也有。假如不是 v6 地址,检查下能否播放先啊,我用这个 docker 推流 mytvsuper,4gtv 都没有问题,也有推大街源,都是成功的,不过推组播就不行,也没有深入研究了
v6 其实也没必要推吧,基本都很稳定。我推流是因为客户端没有全局翻(只有浏览器用代理),不过话说。。。推了也没怎么看,就是图个折腾
对于 o11 我需要手动在界面一个一个创建频道 (stream),再把 url 和 clear key 贴进去,十分复杂。我看了文档也没找到相关操作的 api,有什么自动批量导入的思路吗?
iptables 限制 Docker IP 和端口访问
等保整改安全加固时,使用 iptabels 限制 docker 端口不生效,限制非 docker 容器端口可生效。经查阅大量资料,发现 Docker 容器创建时会自动创建 iptables 策略,Docker 使用的 i 规则链是 DOCKER-USER,所以需使用 iptables 对 DOCKER-USER 链做限制。
目录
一、【模板参考】限制与 Docker 主机的连接
二、【实际案例】iptables 限制 Docker 端口和 IP
1、案例 1:限制 IP 访问
2、案例 2:限制 docker 指定端口访问策略
3、查询 DOCKER-USER 策略
4、删除 DOCKER-USER 策略
5、保存 DOCKER-USER 策略,默认临时生效
三、访问测试
一、【模板参考】限制与 Docker 主机的连接 默认情况下,允许所有外部源 IP 连接到 Docker 主机。要仅允许特定的 IP 或网络访问容器,请在 DOCKER-USER 过滤器链的顶部插入一个否定的规则。
#限制除 192.168.1.1 地址外的其他地址访问 $ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP 请注意,您将需要更改 ext_if 与主机的实际外部接口相对应。!排除以外。您可以改为允许来自源子网的连接。
#限制除 192.168.1.0/24 网段外的其他地址访问 $ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP 最后,您可以指定要接受的 IP 地址范围--src-range(请记住-m iprange 在使用--src-range 或时也要添加--dst-range):
#限制除 192.168.1.1-192.168.1.3 外的其他地址访问 $ iptables -I DOCKER-USER -m iprange -i ext_if ! --src-range 192.168.1.1-192.168.1.3 -j DROP 您可以结合使用-s 或--src-range 与-d 或--dst-range 一起控制连续源地址和连续目标地址。例如,如果 Docker 守护程序同时监听 192.168.1.99 和 10.1.2.3,则可以制定特定于 10.1.2.3 并保持 192.168.1.99 打开的规则。
二、【实际案例】iptables 限制 Docker 端口和 IP 1、案例 1:限制 IP 访问 1.1 首先需添加一条禁止所有 IP 访问 docker 策略
iptables -I DOCKER-USER -i eth0 -s 0.0.0.0/0 -j DROP 注:允许上方命令后,如果出现容器无法上网问题,请将下方策略添加到上方策略前。
iptables -I DOCKER-USER -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT 1.2 在依次添加所有允许访问 docker 的 IP,允许 172.27.100.101 地址访问 docker
iptables -I DOCKER-USER -i eth0 -s 172.27.100.101 -j ACCEPT 2、案例 2:限制 docker 指定端口访问策略 2.1 禁止所有 IP 访问 docker 的 389 端口
iptables -I DOCKER-USER -i eth0 -p tcp --dport 389 -j DROP 2.2 允许 172.27.30.92 地址访问 docker 的 389 端口
iptables -I DOCKER-USER -i eth0 -s 172.27.30.92 -p tcp --dport 389 -j ACCEPT
3、查询 DOCKER-USER 策略
[root@test ~]# iptables --line -nvL DOCKER-USER
Chain DOCKER-USER (1 references)
num pkts bytes target prot opt in out source destination
1 8 432 ACCEPT tcp -- eth0 * 172.27.30.92 0.0.0.0/0 tcp dpt:389
2 13 740 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:389
3 188 12524 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
4、删除 DOCKER-USER 策略
#删除 DOCKER-USER 链第一条(num)规则
iptables -D DOCKER-USER 1
5、保存 DOCKER-USER 策略,默认临时生效
[root@test ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ]
三、访问测试
telnet 测试:
[root@zabbix_server ~]# telnet 127.0.0.1 8075 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection timed out nc 端口测试:
[root@node ~]# nc -zv 172.27.30.94 389 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.27.30.94:389. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
求教各位大佬,我的 o11 对 mytvsuper 推流不成功,请求失败,但我用 wget 是可以请求的,直接官网也是可以看的,试过直连和代理,都是一样报错:context deadline exceeded (Client.Timeout exceeded while awaiting headers)
直接 Docker 命令跑啊,我的是 M1 Pro 芯片。Mac 问题还未解决,我直接在斐讯 N1 软路由上定时任务生成静态 mytvsuper-tivimate.m3u 使用了,电视上用的是 Tivimate
请问一下你是用什么播放器在电视上看?我推流成功了,可以在电脑上用 potplayer 看,但是链接放在 tivimate 看不了......
各位大佬,我在控制版面找不到輸入電視台 Logo 的入口,請問在那個地方輸入?謝謝
無線新聞台" tvg-name="無線新聞台" tvg-logo="https://assets.livednow.com/logo/.png無線新聞台
What's next: View a summary of image vulnerabilities and recommendations → docker scout quickview wechatofficial/o11:latest Error response from daemon: failed to resolve reference "docker.io/wechatofficial/o11:latest": failed to authorize: failed to fetch oauth token: unexpected status from GET request to https://auth.docker.io/token?scope=repository%3Awechatofficial%2Fo11%3Apull&service=registry.docker.io: 401 Unauthorized