当前位置:首页 > 互联网 > 正文内容

提升家庭网络稳定性:OpenWRT限制京东云连接数教程

cmc2个月前 (05-10)互联网122

连接数量对网速的影响

之前我并没有意识到连接数量对网络稳定性和网络速度存在影响,但是查阅部分资料后,发现活动连接数量过多

会影响网速的原因主要包括以下几个方面:

  1. 带宽消耗:每个连接都占用了网络带宽,活动连接数量增加时,带宽会被多个连接分摊,导致每个连接可用

    的带宽减少,最终导致整体网速下降。

  2. 路由器/网络设备的处理能力:路由器和其他网络设备在处理大量连接时会增加工作负荷。如果设备的处理能

    力有限,过多的连接会导致设备反应变慢,增加数据包的处理延迟,进而影响网速。

  3. 网络拥塞:过多的连接可能会导致网络拥塞,尤其是在家庭局域网中。网络拥塞会导致数据包丢失、重传等

    问题,进一步降低实际的传输速度。

  4. NAT表的限制:对于使用NAT(网络地址转换)的网络,每个连接需要在NAT表中建立一条记录。NAT表的

    容量有限,当连接数过多时,NAT表可能会溢出或处理速度变慢,导致网络性能下降。

  5. CPU和内存负载:如果你的设备(如计算机或服务器)处理大量的并发连接,CPU和内存负载会增加,可能

    导致设备性能下降,进而影响网速。例如我的Asus Acrh17,在12000活动连接数时,内存占用超过70%,

    此时局域网内其他设备明显可感觉到延迟。

  6. 运营商活动连接数量限制:大部分运营商会对每户入网的宽带进行活动连接数量限制,不同地区、不同运营商

    甚至所属不同片区均不相同,当达到一定量的活动连接数量时,更多的连接会进行丢包处理,所以会直接影响

    到使用者的体验。目前检索到的消息可以查看这里:

宽带连接数限制测试结果(来源):上海电信:公网不限制,私网 8000,云宽带 2800 上海移动:私网 2500 上海联通:公网 6000,私网 1500 江苏移动:公网不限制,私网 2500 浙江移动:公网 6000,私网 2000 江苏联通:公网 6000,私网 3000 江苏电信:公网不限制,私网 6000
 

本地网络环境介绍

简单介绍一下我本地的网络环境:


notion image


在这个家庭网络的拓扑结构中:
  1. 光猫:桥接模式(中兴老款F450,已尝试修改了硬桥接,未使用软桥接方式,同时,未做光猫本身最大

    连接数修改)

  2. 主路由:ASUS-ACRH17,系统为OpenWRT,开启Fullcone NAT。

  3. 旁路由(旁路网关):X86虚拟机(Hyper-V虚拟化),系统为OpenWRT的衍生版本ImmortalWRT

    (本篇中并不重要)。

  4. 网心云:X86版本(Hyper-V虚拟化)并配置静态地址,网关直接指向主路由,避免流量经过旁路。

      配置文件限制方法

    主路由目前使用的OpenWRT版本为24.10,在这个OpenWRT版本中已经使用nftable取代了iptables,所以

    在网上找到的很多iptables无法使用或者会提示过老版本,配置后查看规则计数器数据为0,没有生效。同时

    nftable在OpenWRT上并没有提供luci app插件以及对应的UI操作界面,所以就需要我们自行编写nftable规

    则进行连接数的控制。


    notion image


    在另一方面,由于主路由器开启了Fullcone NAT模式,所以使得所有来自外部的连接请求都可以通过主路由访问

    内网的网心云,且不再使用UPNP。这意味着,如果在 nftables 中通过ip fileter添加了针对网心云的INPUT和

    OUTPUT限制规则,那这些规则就不能正确匹配外部流量,所以通过INPUT和OUTPUT规则进行过滤没有任何的

    效果,这也是我在尝试之后,发现匹配规则数量为什么一直都是0的原因。

    同时,使用 conntrack (conntrack需要安装,一般都没有预装)查看连接时,我发现连接信息已经包含NAT处

    理后的外部IP地址和端口,而nftables规则要考虑对NAT后的地址和端口进行限制,那么目标就来到了 forward

    链上。

    Plain text

    首先确保OpenWRT已经安装了以下内核,如果缺少的话,在使用nftable时候会提示报错:“Error: Could

    not process rule: No such file or directory”。

    modprobe nft_chain_nat
    modprobe nft_counter
    modprobe nft_ct
    modprobe nft_limit
    modprobe nft_reject

    Shell

    可以通过如下命令进行安装:

    opkg update
    opkg install kmod-nft-core kmod-nft-nat kmod-nft-connlimit

    Shell


    下面编辑文件限制udp连接数,(京东云如果限制所有连接数,会导致与云平台失联,虽然跑的很欢,但是积分很低)。编辑/etc/nftables.d/10-custom-filter-chains.nft 文件,取消注释并修改 user_post_forward 链,像这样:

    chain user_post_forward {
        type filter hook forward priority 1; policy accept;
        # 限制从 192.168.0.4 发出的 UDP 连接数
            ip protocol udp ip saddr 192.168.0.4 ct count over 5000 counter drop
    
            # 限制发往 192.168.0.4 的 UDP 连接数
            ip protocol udp ip daddr 192.168.0.4 ct count over 5000 counter drop
    }
    Plain text

    然后重启firewall/etc/init.d/firewall restart

    /etc/init.d/firewall restart
    Shell

    通过nft list进行查看规则是否已经添加成功

    nft -a list ruleset

    Shell

    如果看到
    chain FORMARD { # handle 1
        type filter hook input priority filter - 1; policy accept;
        ip saddr X.X.X.X ct count over 5000 counter packets 0 bytes 0 drop # handle 36
        ip daddr X.X.X.X ct count over 5000 counter packets 0 bytes 0 drop # handle 37
     }


    Plain text
    则表示添加规则成功。
     

    OpenWRT查看端口占用

    1. 查看单独端口占用情况及对应程序,例如8080为要进行查看的端口

    netstat -tulnp | grep 8080


    Shell

    Shell

     

    2.查看客户端IP地址端口占用情况

    netstat -tulnp | grep <客户端IP>
    最终,通过Grafana查看效果(需要单独配置):



    总结归纳

    整体所需的软件包为:
    • kmod-nft-core(核心)

    • kmod-nft-nat(nat相关规则配置参数支持)

    • kmod-nft-connlimit(计数相关规则配置参数支持)

    • conntrack(查看连接,可选)

    以上软件包均可通过OPKG进行直接安装。

    目前配置完成之后(我配置的来源和目的地活动连接数量均为4000),主路由显示的活动连接数量大概在5000

    左右浮动,至于为什么没有完全和规则匹配上,我的猜想可能是因为有一些长连接还没有释放的原因,后续会进

    行持续观察。

    限制活动连接数量之后,对网心云的跑量影响需要等待几天才能看到,之后我也会更新到这里。目前来看,在上

    传带宽方面没有任何的变化,依旧可以跑满限制带宽,理论上延迟应该也可以降下来,但存在一个副作用,就是

    丢包也会上涨,这部分会影响多少的收益暂时还不清楚,同时具体连接数限制的数值的设定,也需要持续的观察

    才能确认最优配置。

    同时上述规则中没有配置IPV6的相关nftable规则,因为目前我的环境和观察下,IPV6的量只占很少的一部分,

    如果之后量起来了,对本地的网络环境已经有了体感的影响,我也会进行研究相关配置。

    这篇文章也不仅仅能应用于网心云,当你需要对局域网内的任何客户端,或者说是局域网内任何IP进行活动连

    接数量的限制时,都可以根据上面的内容进行操作,尤其是对于抖音、快手、爱奇艺这种活动连接请求大户。


    扫描二维码推送至手机访问。

    版权声明:本文由陈茂春的博客发布,如需转载请注明出处。

    本文链接:https://www.0817cmc.com/post/790.html

    分享给朋友:

    相关文章

    当本科生比蝗虫多 文凭到底还值多少钱?

    文化程度决定着一个民族的文化素质,决定着一个人的文化层次和文化涵养,文化程度的凭证就是文凭,文凭应该真实的反映一个人的文化程度和受教育的程度。  曾经有个时期,中国泛起了文凭热潮,男女老少、各阶层、各行业的人们为了取得后续学历的文凭,奋力拼...

    腾讯拒绝qq2004登陆?

    腾讯拒绝qq2004登陆?

    今天我的qq2004不能正常登陆了,现实如下图片:screen.width-333)this.width=screen.width-333"˃【QQ 版本】Build 12.73.8044【QQ 号码】272553123【操作系统】Mi...

    一个离开某大型门户网站人员自爆黑幕

    去年,我已在星星发表了一个关于免费发短信的各类软件的黑幕所在。而事实上的SMS(即短信)的黑幕远不止于此,今天,我终于有空坐下来,把其中的一些让你感觉平常却实际触目惊心的事情告诉你们,让你们知道SMS为什么是抢钱的最佳方式! 数据:2004...

    能卖的只剩身体? 当今社会流行病

    当能卖的只剩下身体---社会流行病“卖身救X”   谁来为“卖身救母”埋单?看起来,陈易红了,独立网络调查人火了,各网站热了,媒体赚了,然而一场为了“救母”而掀起的轰轰烈烈的全民运动,最终却以病母的死荒唐收场。 &nbs...

    32-bit Windows XP无法支持4GB内存?

    INQ近日利用4条1GB OCZ PC3700 EB Platinum内存(Dual Channel CL2-3-3-8)组合进行试验,发现32-bit Windows XP操作系统无法支持。  4GB内存?确实有点前卫,不过Nvidia和...

    延长系统的使用寿命 打造不死的Windows

    Windows给我们带来方便的同时,也让我们不得不忍受系统从崩溃→重装的痛苦。于是如何延长Windows的使用寿命,减少重装次数,也就提上了我们的日程……事实上,通常出现的一些诸如蓝屏、死机等现象,大多是由于某些系统文件操作不当或者感染病毒...

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。