1. 参考资料

2. 内核配置

  • 开启 IFB - Intermediate Functional Block support, 这个会影响下行限速功能,如果只需要限制上行即出站的流量,也可不启用此模块

  • Networking support > Networking options > QoS and/or fair queueing 这一页的内容全部选中,可以选择编译进内核或作为外部模块,开机时加载;

    • 其中 TBF - Token Bucket Filter,这个会影响上行限速功能

3. tc工具移植

  • RK3566 SDK 中 busybox 集成的 tc 工具过于简陋,不支持流量整形,需要重新移植 tc 工具

  • tc工具是 iproute2中的一个组件,获取iproute2源码,我选择使用 5.18.0版本

    https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.18.0.tar.gz

  • 编译环境:Ubuntu20.04

  • 进入源码目录,执行 configure

    iproute2-5.2.0$ ./configure
  • 修改 config.mk 中的 AR CC,指定交叉编译工具链

  • 修改 config.mk, 取消 HAVE_SELINUX HAVE_ELF HAVE_MNL HAVE_CAP这几个宏定义

  • 编译

    iproute2-5.2.0$ make clean && make
  • 查看编译得到的 tc工具是不是目标平台格式的文件

  • 使用这个 tc工具替换 RK3566 中的 /sbin/tc

3. 限速测试

  • 上行限速,限个 500kbps 试试

    tc qdisc add dev eth0 root tbf rate 500Kbit latency 50ms burst 15kb
  • 使用 iperf3上行测速,限速成功

  • 下行限速,需要借助一个虚拟网口 ifb0 来实现

    # 创建一个虚拟网口ifb0,用于流量重定向和整形
    ip link add ifb0 type ifb
    ip link set dev ifb0 up # 将网口eth0入站流量重定向到ifb0
    # 在eth0上添加一个入站队列qdisc
    tc qdisc add dev eth0 handle ffff: ingress
    # 在eth0上添加一个过滤器,将所有IP包都重定向到网口ifb0上
    tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # 在网口ifb0上添加一个HTB队列
    tc qdisc add dev ifb0 root handle 1: htb default 10
    # 创建一个类class,匹配这个类的流量将被限制为500kbps
    tc class add dev ifb0 parent 1: classid 1:1 htb rate 500Kbit
    # 创建一个过滤器,将ifb0上的所有流量都匹配到上一步创建的类上
    tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1
  • 使用 iperf3 下行测速,限速成功

RK356X网口限速的更多相关文章

  1. tc令牌桶限速心得

    一.实验拓扑与实验现象 实验拓扑如图所示,在①号机上发送数据,③号机上接受数据,同时在④号机的eth1与eth2网口限制速率为115200kbps,命令如下 tc qdisc add dev eth1 ...

  2. C#限速下载网络文件

    代码: using System; using System.Collections.Concurrent; using System.Collections.Generic; using Syste ...

  3. PHP 文件限速下载代码

    php 文件限速下载代码 <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QU ...

  4. Nginx 限速模块一览

    为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施. 一.http 请求并发连接数模块:ngx_http_limit_conn_module 这个模块可以设置每个定义的变量(比如客户 ...

  5. PHP文件可限速下载代码

    <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QUERY_STRING&qu ...

  6. dm9000网口收发控制以及mac地址过滤设置

    目的 :完成网口收发调试   过程 :      1.网口初始化,根据芯片数据手册配置   2.网口发数,先向DM9000中的TX FIFO存入数据,然后出发发送寄存器完成发送:   3.网口接收 . ...

  7. Nginx限速遇到的问题

    公司使用的是Nginx做文件服务器,最近服务器流量增大,老板提出要给每个客户端进行限速. 在Nginx中进行限速配置: http { limit_zone one $binary_remote_add ...

  8. nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录

    geo指令使用ngx_http_geo_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_geo_module.ngx_http_geo_modu ...

  9. 百度云管家 5.3.6 VIP破解不限速版下载分享|百度云管家破解提速

    百度云管家PC客户端v5.3.6绿色版本,属于VIP破解不限速版.百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持教育网加速,支持手机端.它支持便捷地查看.上传.下载云端 ...

  10. SCP 和 rsync限速以及用法

    rsync限速以及用法 -- :: 标签:限速 rsync 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xficc.blog. ...

随机推荐

  1. Oracle trunc的使用

    在生产环境中我们经常会用到只取年月日或者时间处理的场景,大多数人用的都是to_char(string,'yyyy-mm-dd')或者to_date(string,'yyyy-mm-dd')来处理,不说 ...

  2. windows 安装Nacos步骤

    一.Nacos中文文档网址 1.Nacos官网地址:https://nacos.io/en-us/ Nacos中文文档网址:Nacos 快速开始https://nacos.io/zh-cn/docs/ ...

  3. 十二. Redis 集群操作配置(超详细配图,配截图详细说明)

    十二. Redis 集群操作配置(超详细配图,配截图详细说明) @ 目录 十二. Redis 集群操作配置(超详细配图,配截图详细说明) 1. 为什么需要集群-高可用性 2. 集群概述(及其搭建) 3 ...

  4. Ansible之一module

    常用自动化运维工具 Ansible:python,Agentless,中小型应用环境 saltstack:python,一般需部署agent,执行效率更高 puppet:ruby,功能强大,配置复杂, ...

  5. Iceberg问题记录-数据湖问题记录跟进

    一.问题追踪 问题 详细描述 提出问题时间 是否完成 计划完成时间 备注 了解Iceberg数据存储方式 了解元数据存储信息.数据组织方式.查询时处理流程等 20231013 是 20231019 ! ...

  6. WPF 调试工具使用

    参考链接: https://supportcenter.devexpress.com/ticket/details/t720001/how-to-use-the-snoop-utility-to-in ...

  7. C# 钩子函数使用

    1. 什么是钩子 hook(钩子)是windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通过 ...

  8. manim边学边做--相机Camera简介

    在Manim中,Camera是实现动画效果的重要工具之一. 它就像我们观察动画的 眼睛,通过控制相机的位置.角度和视野,可以创造出丰富多样的视觉效果. Manim社区版本中提供了多种Camera类型, ...

  9. MySQL - [09] 正则表达式

    转载:https://mp.weixin.qq.com/s/7RavuYGs9SthX2pxGJppqw select * from t1 where name rlike '^[a-zA-Z]+$' ...

  10. HDP集群部署

    一.环境准备 centos7 安装和系统环境处理 1)运行初始化脚本 !/bin/bash ------------------------------------- 系统环境初始化脚本 本脚本仅支持 ...