|
本帖最后由 xykz 于 2023-3-8 18:36 编辑
先说结论:打开这个开关即可修复
---
无灯18年的某个版本用了很久没折腾过了,结果最近被家里人误操作清除了所有配置,遂打算编译一个4.4折腾一下;
用的是这份源码,啥都挺好,中断绑定、conntrack的问题都处理过了,我刚需的ovpn、sqm也是新版;不清楚是不是内核的原因,默频情况下,SFE+SQM能跑满我的500兆带宽,无灯的3.4版不行,10年那个测试版本都不行。
唯一美中不足的是UPNP有问题,翻了一下论坛和gayhub,发现有很多人提出过,但是没人解决。
具体表现是:刚刚开启UPNP的时候是好的,几分钟后便无法再开新端口;
用upnpc+wireshark可以看到,失效的时候,路由器不响应客户端发出的请求;后来无意中发现在路由端启用tcpdump抓包的时候,upnp过了很长时间都没失效,于是很自然的想到是混杂模式的问题;手动用ifconfig br0 promisc试了一下,果然解决了;
但是无灯的固件也没有打开混杂,而且要解释开启后短暂可用,不久后失效的话,应该是有什么东西在变更网桥的配置……于是抄出源码顺藤摸瓜查了一下,果然发现了问题所在:
这个方法会根据“IPTV组播路由到内网”的配置,变更多播查询和路由的参数,miniupnpd恰好就依赖多播路由;
这个方法还被rc.c文件中的handle_notifications所使用,貌似是个类似消息总线的设计,读取到switch变更的消息就配置一下网桥……
然后回到开头,打开开关试了一下,果然upnp不再失效了
至于修复兼容啥的,那是不会的(避免半吊子水改出其他问题),只能将就用用的样子
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|