玩客云(CasaOS)离线部署 udpxy 看IPTV
一、 背景环境
- 硬件: 玩客云(CPU 架构为 ARMv7 32位)。
- 系统: CasaOS (基于 Armbian)。
- 网络: * 内置网口
eth0接局域网(IP: 192.168.124.24)。- USB 网卡
enx3cab72beff30接光猫 ITV 口(用于接收组播信号)。
- USB 网卡
二、 操作步骤
1. 离线获取匹配架构的 Docker 镜像
由于玩客云无法直接拉取外网镜像,且架构特殊,必须在可联网的电脑上强制下载 ARMv7 版本。
- 拉取命令:Bash
docker pull --platform linux/arm/v7 vistalba/udpxy - 导出镜像:Bash
docker save -o udpxy_armv7.tar vistalba/udpxy
2. 镜像传输与加载
- 通过 CasaOS 的 Files 浏览器,将
udpxy_armv7.tar上传到/DATA/Downloads目录。 - 通过 SSH 登录玩客云,进入该目录加载镜像:Bash
docker load -i /DATA/Downloads/udpxy_armv7.tar
3. 准备 USB 网卡环境(关键)
Linux 系统中,如果网卡没有 IPv4 地址或处于 Down 状态,udpxy 无法抓包。
- 激活网卡:Bash
ip link set enx3cab72beff30 up - 分配“假地址”(静态 IP):Bash
# 只要是不冲突的私有 IP 即可,目的是激活网口的 IPv4 协议栈 ip addr add 192.168.200.1/24 dev enx3cab72beff30
4. 部署 Docker 容器
使用环境变量 UDPXY_OPTS 传递参数,并开启 host 网络模式。
- 部署命令:Bash
docker run -d \ --name udpxy \ --restart always \ --net=host \ -e UDPXY_OPTS="-p 4022 -c 30 -T -a eth0 -m enx3cab72beff30" \ vistalba/udpxy-p 4022: 监听端口。-T: 必须包含,防止容器作为后台进程直接退出。-a eth0: 绑定分发信号的网卡。-m enx3cab72beff30: 绑定接收信号的 USB 网卡。
三、 验证与播放
- 状态页验证: 浏览器访问
http://192.168.124.24:4022/status。 - 播放地址格式:
- 原始组播地址:
udp://239.254.200.9:8264 - udpxy 转发地址:
http://192.168.124.24:4022/udp/239.254.200.9:8264
- 原始组播地址:
四、 进阶:如何让“假地址”在开机后自动生效?
玩客云重启后,手动执行的 ip addr 命令会失效。你可以把激活命令写进 CasaOS 的启动脚本或系统的 rc.local 中。
简单方法: 在 CasaOS 的终端执行:
Bash
crontab -e
在末尾添加一行(重启后自动激活网卡并补全 IP):
Bash
@reboot sleep 30 && ip link set enx3cab72beff30 up && ip addr add 192.168.200.1/24 dev enx3cab72beff30
心得总结: 这次成功的核心在于:
- 镜像架构锁定:确保了 ARMv7 版本的正确性。
- 环境变量传参:顺应了镜像作者定义的
UDPXY_OPTS规则。 - 激活物理链路:通过“假地址”解决了 Linux 接口无载波(No Carrier)导致程序崩溃的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 水墨江南的blog!