21
2024
11
20:30:32

Centos7主机带宽限速

目录

1. 限制出站(发送)流量

1.1 清除已有的规则

1.2 设置出站限速为 10Mbps

1.3 验证限速是否生效

2. 限制入站(接收)流量

2.1 使用 ifb 虚拟设备

2.2 将入站流量重定向到 ifb0

2.3 设置 ifb0 上的入站限速为 10Mbps

2.4 验证配置

3. 限速多维度验证

3. 移除规则

4. 测试和调整

注意事项


使用CentOS实现网络流量控制

引言

在现代计算机网络中,网络流量控制是管理和优化网络带宽资源的重要手段。通过合理的网络流量控制策略,我们可以确保网络带宽合理分配,避免因某些应用或用户的高带宽消耗而导致其他应用或用户的网络体验受损。CentOS作为一种广泛使用的Linux发行版,提供了多种工具和方法来实现网络流量控制。本文将介绍如何使用CentOS实现网络流量控制,包括使用tc命令配置流量控制规则和优先级,帮助程序员建立一个高效稳定的网络流量控制系统。

  1. 网络流量控制概述

网络流量控制是通过限制数据包的传输速率、优先级或阻塞特定端口或协议来管理网络流量的过程。它可以应用于整个网络、特定设备、用户或应用程序,以实现带宽管理和流量优化。

  1. 使用tc命令配置流量控制规则

tc(Traffic Control)命令是Linux中用于配置网络流量控制的工具。它允许我们在Linux内核的流量处理路径中插入不同类型的队列和过滤器,以实现流量的控制和管理。


需求:最近有两个主机经常把带宽打满。咨询了阿里云无法对内网网卡做限制。这边想使用linux默认的TC工具。


限速之前测试带宽。这时带宽有 168.4MB/s。

]# scp filebeat-8.8.2-x86_64.rpm 172.116.47.54:/root/
 100%   26MB 168.4MB/s   00:00

0.安装安装tc工具

首先,确保系统中已安装tc工具。如果没有安装,可以使用以下命令进行安装:

sudo yum install iproute-tc

1. 限制出站(发送)流量

限制出站流量的步骤如前所述,以下是步骤的概要:

1.1 清除已有的规则
sudo tc qdisc del dev eth0 root
1.2 设置出站限速为 10Mbps
sudo tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
1.3 验证限速是否生效
sudo tc qdisc show dev eth0

 传输文件验证测试实际带宽

16% 4384KB   3.0MB/s   00:07

2. 限制入站(接收)流量

限制入站流量需要使用 tc 的高级功能,并结合 iptables,因为 tc 主要控制出站流量。

2.1 使用 ifb 虚拟设备

我们需要使用 ifb(Intermediate Functional Block)虚拟设备来处理入站流量。首先,加载 ifb 模块:

sudo modprobe ifb

然后为 ifb0 设备设置流量处理:

sudo ip link set dev ifb0 up
2.2 将入站流量重定向到 ifb0

使用 tc 将入站流量重定向到 ifb0 设备:

sudo tc qdisc add dev eth0 handle ffff: ingress
sudo tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
2.3 设置 ifb0 上的入站限速为 10Mbps

现在,我们可以在 ifb0 设备上设置入站流量限速:

sudo tc qdisc add dev ifb0 root tbf rate 10mbit burst 32kbit latency 400ms
2.4 验证配置

可以用以下命令查看 ifb0 的配置:

sudo tc qdisc show dev ifb0

传输文件验证测试实际带宽

 27% 7328KB   2.3MB/s   00:0


3. 限速多维度验证

多个设备一起测试带宽,查看是否网卡级别限速,两个主机一起传文件,查看带宽只有3MB,限速成功。

82%   22MB   1.1MB/s   00:0
 26% 7184KB   1.2MB/s   00:1


查看主机监控


查看zabbix监控图标,这边限速已生效。


3. 移除规则

如果需要移除设置的限速规则,先移除 ifb0 的规则:

sudo tc qdisc del dev ifb0 root

sudo tc qdisc del dev eth0 ingress


4. 测试和调整

测试入站和出站流量限制后,可以根据实际需求对 rateburst 和 latency 参数进行调整。

注意事项

  • 限制入站流量可能会影响到整体网络性能,因此在实际使用中需要谨慎配置。

  • 使用 ifb 虚拟设备会引入一定的系统开销。

通过这些步骤,你可以实现对 eth0 网卡的出站和入站流量的带宽限制。


如果想更省事一些,推荐使用 wondershaper :



[root@~]# which wondershaper

/usr/bin/which: no wondershaper in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

[root@ ~]# yum provides wondershaper

Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager


This system is not registered with an entitlement server. You can use subscription-manager to register.


Loading mirror speeds from cached hostfile

wondershaper-1.2.1-3.el7.noarch : Simple Network Shaper

Repo        : epel




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8560.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

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

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: