CentOS 6.X 限制网络接口的网络流量速率

有时候,我们需要在内网测试数据库在低速网络情况下,复现现在的一些问题,但一般内网都是100M或1000M,哭于没有这种环境

如果通过路由器来做,感觉有点大炮打蚊子

今天在网上发现Linux下一宽非常好用的带宽限速工具,特地来分享一下:

注意:这款工具只能在CentOS6.x有效果,在CentOS 7.x,没有效果

Linux 服务器限制网络接口的流量速率需要用到一个工具:WonderShaper。

1、wondershaper介绍

Wondershaper实际上是一个shell脚本,它使用tc来定义流量调整命令,使用QoS来处理特定的网络接口。外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的;而传入流量通过丢包的方式来达到速率限制的目的。

事实上, wondershaper 的既定目标不仅仅是对一个接口增加其带宽上限;当批量下载或上传正在进行时,wondershaper 还试图去保持互动性会话如 SSH 的低延迟。同样的,它还会控制批量上传(例如 Dropbox 的同步)不会使得下载“窒息”,反之亦然。

2、Linux安装Wonder Shaper

1)安装依赖

Debian/Ubuntu系统
sudo apt-get update
sudo apt install -y wondersharper

Centos系统
yum install epel-release -y
sudo yum install -y wondersharper
使用二进制


2)下载wondershaper

git clone https://github.com/magnific0/wondershaper.git
cd wondershaper
#直接运行wondershaper
./wondershaper 

3)全局安装wondershaper
cd wondershaper
sudo make install


3、wondershaper 基本用法

首先找到网络接口的名称。以下是查找网卡详细信息的几个常用方法。

$ ip addr 

$ route 

$ ifconfig

一旦找到了网卡名称,就可以限制带宽速率了,如下所示。

$ sudo wondershaper -a <adapter> -d <rate> -u <rate>
比如说你的网卡名是enp0s8,你希望将下载和上传的带宽限制分别限制于1024 Kbps和512 kbps,命令应该是:

$ sudo wondershaper -a enp0s8 -d 1024 -u 512 

其中
-a:网卡名
-d:下载速率
-u:上传速度

想取消网络适配器的速度限制,只要运行:

$ sudo wondershaper -c -a enp0s8
或者
$ sudo wondershaper -c enp0s8
想了解更多详细信息,请运行以下命令,查看帮助部分:

$ wondershaper -h
USAGE: ./wondershaper [-hcs] [-a <adapter>] [-d <rate>] [-u <rate>]
Limit the bandwidth of an adapter
OPTIONS:
-h Show this message                                 //显示帮助信息
-a <adapter> Set the adapter                         //指定网卡接口,通过ifconifg或者ip show addr查看:比如eth0
-d <rate> Set maximum download rate (in Kbps) and/or //限制下载的速度
-u <rate> Set maximum upload rate (in Kbps)          //限制上传的速度
-p Use presets in "/etc/systemd/wondershaper.conf"
-c Clear the limits from adapter                     //清除对应网卡接口的规则
-s Show the current status of adapter                //显示当前网卡状态
-v Show the current version                          //显示版本信息
Configure HIPRIODST in "/etc/systemd/wondershaper.conf" for hosts
requiring high priority i.e. in case ssh uses dport 443.
MODES:
wondershaper -a <adapter> -d <rate> -u <rate>
wondershaper -c -a <adapter>
wondershaper -s -a <adapter>
EXAMPLES: //针对以上示例给出的example
wondershaper -a eth0 -d 1024 -u 512    //限制eth0上行速度512kbps,下行速度1024kbps
wondershaper -a eth0 -u 512            //仅限制eth0上行速度512kbps
wondershaper -c -a eth0                //清除为eth0设定的wondershaper的相关规则
或者查阅参考手册页。

$ man wondershaper 



分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS