openwrt修复udpxy一段时间后无法使用问题

家里iptv使用单线复用方式,通过udpxy转成单播供所有设备使用,使用一段时间后就会出现无法使用的情况。

查询服务日志,现象是请求接口返回500,同时日志中显示

1
Sun Oct 20 08:52:51 2024 local0.err udpxy[28012]: set_multicast: setsockopt MCAST option: ADD: No such device

搜索查询后发现挺多人也遇到这样的问题,主要原因是iptv端口ip更改,貌似只有重启udpxy后才能恢复,没有找到能够自动处理的机制。

看了下openwrt文档,可以通过回调脚本来实现重启iptv后自动重启udpxy,假设我的iptv端口叫作iptv,在openwrt中手动添加自动重启脚本/etc/hotplug.d/iface/99-udpxy,相比定时重启,这样更加精准保证服务一直可以用。

1
2
#!/bin/sh
[ "$ACTION" = ifup ] && [ "$INTERFACE" = iptv ] && /etc/init.d/udpxy restart