ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 7985|回复: 2
上一主题 下一主题
[交流讨论]

发现udpxy的一个bug

[复制链接]
跳转到指定楼层
楼主
发表于 2025-2-22 20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 | 来自辽宁
本帖最后由 dddfr 于 2025-2-22 20:42 编辑

udpxy是IPTV组播转单播常用的工具,实现局域网,甚至在全网上转发流媒体。近日在给别人配置IPTV融合时,当时使用没有任何问题,过两三小时udpxy就不好用了,重启路由后又好了,再过一会又故障,真挠头。
路由是miwifi 3G的,老古董了,wan口正常上网,lan1接了个NAS,lan2口接IPTV网线,新建接口和防火墙域,名子都是IPTV,为防止与外网默认路由冲突,接口IPTV取消默认路由,防火墙域允许OUTPUT,INPUT只允许UDP,这样tr069就管不着我们了。
由于取消IPTV接口的默认路由,udpxy配置里必需要填source,具体配置:
  1. config udpxy
  2.         option disabled '0'
  3.         option respawn '1'
  4.         option verbose '0'
  5.         option status '1'
  6.         option bind '0.0.0.0'
  7.         option port '4022'
  8.         option source 'lan2'
复制代码
使用一段时间在故障出现后,发现udpxy的组播源地址未随lan2的dhcp renew更新,见下图
发现udpxy的一个bug
lan2的ip地址使用一段时间后要重新获取,udpxy的source接口设定为lan2,但未跟随dhcp renew而变化,导致故障发生。
解决方案:
治本方案:修改udpxy源码,重新编译,暂时还没这个水平,等待作者或其它牛人去做了
治标方案:检查dhcp renew事件,发生时让udpxy重启。这个路由器dhcp用的是udhcpc,在etc目录下有个udhcpc.user文件,当事件发生时会执行这个文件,写入如下内容就可以解决问题
  1. # This script is sourced by udhcpc's dhcp.script at every DHCP event.
  2. if [ "lan2" = $interface ]
  3. then
  4.         case "$1" in
  5.         deconfig)
  6.                 service udpxy stop
  7.                 echo "udpxy stop"
  8.         ;;
  9.         renew)
  10.                 service udpxy stop
  11.                 sleep 2
  12.                 service udpxy start
  13.                 echo "udpxy restart"
  14.         ;;
  15.         bound)
  16.                 service udpxy start
  17.                 echo "udpxy start"
  18.         ;;
  19.         esac
  20. fi
复制代码
注意第二行lan2需要替换为IPTV所在的接口名

上一篇:文件管理器+ v3.5.5 强大文件管理 支持手机/电视
下一篇:请教一下如何实现远程控制电视盒子呢?
沙发
发表于 2025-2-23 22:36 | 只看该作者 | 来自广东
学习了谢谢分享
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2025-3-19 13:22 | 只看该作者 | 来自辽宁
又发现了一个Bug,udpxy在android root环境下运行会报错,
setpidfile:file not exist
经检查osdef.h代码中默认的pid文件存放在/var/run和/var/temp中,而这两个文件夹在android中都不存在
  1. #if defined(HAS_VARRUN)
  2.     #define PIDFILE_DIR     "/var/run"
  3. #elif defined(HAS_VARTMP)
  4.     #define PIDFILE_DIR     "/var/tmp"
  5. #endif
复制代码
将其中一个修改为/tmp,重新编译后运行正常

udpxy_android.zip (45.53 KB, 下载次数: 0)




回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-4-26 00:18 , Processed in 0.060491 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表