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

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

cmc7天前互联网54

连接数量对网速的影响

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

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

  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

    分享给朋友:

    相关文章

    祝大家新年快乐

    日:给你温暖;月:给你温馨;星:给你浪漫;风:给你清爽;雨:给你滋润;雪:给你完美;霜,给你无暇;冰,给你晶莹;我:给你祝福;送一份美丽让你欢笑,送一份祝福让你骄傲,送一份开心让你不老,送一份梦想让你逍遥,送一份真情不要回报,再送你平安才算...

    54万!白血病女孩佘艳留下7份救命钱

    54万!白血病女孩佘艳留下7份救命钱

    昨日,对7个患白血病等重大疾病且面临生死危机的成都孩子来说,具有非常特别的意义。因为一个名叫“佘艳”的孩子,这7个孩子的命运得到彻底的改变——“我来过我很乖”的佘艳送给了这7个正徘徊在生死边缘的小朋友同一个礼物:“生命”。这7个孩子分别是杨...

    什么是IIS连接数,关于IIS连接数的详细解释说明

    IIS或WEB连接数是指在同一时间内服务器可以接受的访问数,可以简单的理解为在同一时间内允许打开多少个浏览器窗口访问你的网站。一般地,一个IE浏览器产生2个IIS连接,例如,我们在一台访问量为26万IP每天的服务器上,观察到这个值峰值为18...

    我最好的朋友,祝你一路顺风

    页面:点这里参观...

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

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

    分清电脑自动关机的原因 (硬件方面)

    1.市电电压不稳  一般家用计算机的开关电源工作电压范围为170V-240V,当市电电压低于170V时,计算机就会自动重启或关机。因为市电电压的波动我们有时感觉不到,所以就会误认为计算机莫名其妙的自动重启了。  解决方法:对于经常性供电不稳...

    发表评论

    访客

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