openwrt关于DHT和最大连接数的破事水
今天闲着没事换着关键词搜索“软路由 连接数”,然后在PCDN相关的搜索结果里找到了以前从来没有搜到的路由器调教方法:udp老化这是padavan的:
参数设置->脚本->在路由器初始化前执行:
echo 30 > /proc/sys/net/netfilter/nf_conntrack_udp_timeout
echo 120 > /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream
参考链接:https://www.right.com.cn/forum/thread-4031767-1-1.html
这是openwrt的:
vi /etc/sysctl.d/10-default.conf
net.netfilter.nf_conntrack_udp_timeout=15
net.netfilter.nf_conntrack_udp_timeout_stream=30
参考链接:https://zhuanlan.zhihu.com/p/583959038
注:以上值都是修改过的,可能不适合直接拿来用(过于严格的设置可能降低做种甚至影响上网),建议结合软路由默认值和路由器体质食用。
据说padavan默认值是60和120,DHT最大连接数20000+;
设置成30和120之后,最大连接数11000+;
设置成15和120之后,最大连接数5000+。
(以上结果基于BC设置udp发包 200 package/s测试)
至于为什么路由器第三方固件普遍存在DHT断流的现象,我的猜测是:
刷第三方固件大多有特殊的用途,为了保证连接质量,路由器固件本身设置了比较宽松的参数;对于BT来说,这些参数过于宽松了,进而导致连接数爆炸。
D端硬路由的客户群体一般没有特殊的需求,因此使用了相对严格的参数,保证路由器不被迅雷等软件橄榄;对于BT来说,因为难查看到对应的参数,硬路由连接数和第三方固件不在一个数量级可能都不能很好的察觉。
今日的收获:
能够在最大连接数设置16384的前提下打开DHT了;
据说x86的软路由的最大连接数大多只能设置16384,搞不好以后自己用得上。 用的爱快软路由,默认设置是这样,没有遇到任何问题。
UDP 超时:10秒
UDP Stream 超时:60秒 小樱 发表于 2023/2/21 00:19
用的爱快软路由,默认设置是这样,没有遇到任何问题。
UDP 超时:10秒
UDP Stream 超时:60秒
这参数,这么激进啊呸,严格的吗?
{:3127:} 谢谢楼主的详细教程,今天又遇到一位openwrt路由出问题的人,我觉得路由器问题需要反馈给路由器作者,以便后续能够更新固件修复,当然我也搜索了下相关反馈,openwrt的作者任由摆烂,都不理睬用户反馈,或者说作者根本不知道问题为什么只会发生在他们路由器上
毕竟软件是不会产生这么多连接数的,软路由更推荐爱快,专业稳定,假如能联系到路由作者,建议他去固件中抓包分析原因,这是正在使用比特彗星的爱快路由器占用
从论坛各种反馈来看,出问题的都是openwrt
软路由使用pandavan,爱快等其它软路由,都没有问题,同样使用tp原厂固件也没有任何问题,爱快其实也是基于openwrt内核,但是爱快就没问题
目前接到反馈的,都是路由刷了openwrt,才会有这种现象。
一些网友猜测是upnp还是nat1插件什么的,通过测试还是会发现路由器固件死机异常现象,openwrt为什么会爆炸的具体原因至今还不知道
但是这个网友猜测的结果,我认为是目前最正确的,由于openwrt默认值的timeout_stream不合理:https://bbs.itzmx.com/thread-102521-1-1.html
本帖最后由 Github 于 2023/5/20 14:22 编辑
个人经验:官方openwrt固件,彗星的DHT让连接数爆满,在爆满的这段时间一边下载一边看YouTube直播也没问题,过一段时间连接数就回落了。
连接数应该跟内存有关,我默认的连接数几乎是16384*2。
reddit 上有人反馈他的 512MB RAM 的设备默认是16384,他自己把他改成65535,现在连接数是80%,路由器也运行正常。
@小樱 Github 发表于 2023/5/20 06:11
个人经验:官方openwrt固件,彗星的DHT让连接数爆满,在爆满的这段时间一边下载一边看YouTube直播也没问题 ...
前段时间买了ax6s刷官方固件openwrt,改最大连接数和udp老化都试过了,最后还是改最大连接数节约脑子。
官方固件最大连接数甚至16384连接数都不够,能忍? smilesadness 发表于 2023/5/20 11:13
前段时间买了ax6s刷官方固件openwrt,改最大连接数和udp老化都试过了,最后还是改最大连接数节约脑子。
...
刚开始我发现这个问题也想改最大连接数,不过后面发现不影响使用就不管了。 Github 发表于 2023/5/20 14:24
刚开始我发现这个问题也想改最大连接数,不过后面发现不影响使用就不管了。
每次都是连接数到上限就死机,BC(或者ISP的bras)一般只能跑到2W+,都没到你默认连接数的上限,当然没有影响啦( smilesadness 发表于 2023/5/20 18:49
每次都是连接数到上限就死机,BC(或者ISP的bras)一般只能跑到2W+,都没到你默认连接数的上限,当然没有 ...
我的情況也能跑到我的上限,不过好像没什么影响,大概一两分钟回落不到两千的连接数。期间也能正常的上网。 我用的padavan,最大连接数设16384时总是报 kernel: nf_conntrack: table full (16384), dropping packet。
才发现是彗星的DHT导致的……
按我的理解nf_conntrack_udp_timeout和network.max_udp_pkt_per_sec的值相乘要小于最大连接数对吧?
dht.udp_send_queue_threshold这个选项的作用是什么,如果内存足够的话是不是没必要调小?
页:
[1]