Linux操作系统中限制网络带宽速率的使用方法

您所在的位置:网站首页 如何查看网卡的带宽 Linux操作系统中限制网络带宽速率的使用方法

Linux操作系统中限制网络带宽速率的使用方法

2024-04-19 15:13| 来源: 网络整理| 查看: 265

在Linux中限制一个网络接口的速率的方法

这里介绍的控制带宽资源的方式是在每一个接口上限制带宽。

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

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

安装 wondershaper

在 Fdora 或 CentOS/RHEL (带有 EPEL 软件仓库) 中安装 wondershaper(版本到 1.2 ):

# yum install wondershaper

经二次开发的最新版本( 最新为 1.4 ),直接下载github上的代码就可以了:

# git clone https://github.com/magnific0/wondershaper.git# cd wondershaper

wondershaper 的使用使用帮助:

# ./wondershaper -hUSAGE: ./wondershaper [-hcs] [-a ] [-d ] [-u ]Limit the bandwidth of an adapterOPTIONS: -h Show this message -a Set the adpter -d Set maximum download rate (in Kbps) and/or -u Set maximum upload rate (in Kbps) -p Use presets in /etc/conf.d/wondershaper.conf -c Clear the limits from adapter -s Show the current status of adapter -v Show the current versionMODES: wondershaper -a -d -u wondershaper -c -a wondershaper -s -a EXAMPLES: wondershaper -a eth0 -d 1024 -u 512 wondershaper -a eth0 -u 512 wondershaper -c -a eth0

参数说明:

-a :指定要限制的网卡名称或者接口名称-d :最大下载速率,单位:Kbps 。Kbps 即 Kb/s,p 是 peer 的意思。1KB/s=8Kb/s。1MB/s=1024KB/s。-u :最大上传速率,单位:Kbps 。-p :使用 /etc/conf.d/wondershaper.conf 的配置-c :清空所有规则,不再做任何限制-s :显示接口的当前状态

使用 ip addr show 查看要限制带宽的网卡名称,老的机器可能没有这个命令,改用 ifconfig 查看。

例子: 将 eth0 的最大下载/上传带宽分别设定为 3072 kbps 和 2048 kbps

# ./wondershaper -a eth0 -d 3072 -u 2048

清空规则,不再限制带宽

# ./wondershaper -a eth0 -c

这里的规则,重启服务器后就会失效,可以把命令写进 /etc/rc.local ,开机自启动。

测试网速

利用 speedtest-cli 来测试网速。

安装 speedtest-cli

speedtest-cli 是一个用 Python 编写的轻量级的命令行工具,用于测试带宽。Python2.4+ 的环境下均可运行。它是基于 speedtest.net 的基础架构来测量网络的上/下行速率。

pip/easy_install 方式安装:

# pip install speedtest-cli或# easy_install speedtest-cli

Github 方式安装:

# pip install git+https://github.com/sivel/speedtest-cli.git或# git clone https://github.com/sivel/speedtest-cli.git# python speedtest-cli/setup.py install

直接下载脚本:

# wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py# chmod +x speedtest-cli或# curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py# chmod +x speedtest-cli

使用 speedtest-cli 测试网速使用speedtest-cli命令也很简单,它不需要任何参数即可工作。

# speedtest-cliRetrieving speedtest.net configuration...Testing from China Telecom Guangdong (183.xxx.xxx.215)...Retrieving speedtest.net server list...Selecting best server based on ping...Hosted by ShenZhen Telecom (Shenzhen) [0.00 km]: 2.856 msTesting download speed................................................................................Download: 28.35 Mbit/sTesting upload speed................................................................................................Upload: 11.97 Mbit/s

结果解释:

183.xxx.xxx.215 :本服务器IPTesting from China Telecom Guangdong :ISP,这里是广东电信Hosted by ShenZhen Telecom (Shenzhen) :服务器所在地址[0.00 km] :本服务器和speedtest测试服务器地理位置之间距离

输入这个命令后,它会自动发现离你最近的 speedtest.net 服务器(地理距离),然后打印出测试的网络上/下行速率。

可以对比 wondershaper 配置前后的速率,验证限速是否生效。

speedtest-cli 常用命令详解:

–list :根据距离显示 speedtest.net 的测试服务器列表–server=SERVER :指定测试服务器列表中id的服务器来测试–share :分享测试结果,会在speedtest.net 网站上生成网速测试结果的图片–bytes :上传下载的带宽显示,用 bytes 代替 bits ,即 Mbyte/s 代替 Mbit/s 。换算关系: 1Mbyte/s = 8Mbit/s


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3