linux 限制带宽命令,Linux服务器限制网络带宽流量速率

  • 一、限制应用程序的网络流量速率
    • 1、trickle介绍
    • 2、如何判断trickle对应用程序是否有效?
    • 3、Linux安装Trickle
    • 4、trickle基本使用方法。
  • 二、限制网络接口的网络流量速率
    • 1、wondershaper介绍
    • 2、Linux安装Wonder Shaper

在本文中,我将为你分享两种 Linux 服务器限制网络流量速率的方法,希望可以帮助到你~

一、限制应用程序的网络流量速率

限制应用程序的网络流量速率的方法就是trickle工具。

1、trickle介绍

Trickle是一款轻量级的用户空间带宽控制管理工具,用来限制如浏览器Firefox等,FTP,SSH,curl,wget,scp等等使用网络带宽。

Trickle通过控制socket数据读写量来控制和限制应用的上传和下载速度。要注意的是trickle使用动态链接和加载,所以只对于使用libc.so库的程序有用,其他的则无效。由于trickle可以设置数据在socket上的传输延迟,因此就可以用来限制应用程序的网络带宽。

Trickle不能用于限制使用UDP协议的应用的带宽,只可用于TCP连接。也无法工作在使用静态链接的可执行程序上。

即便如此,trickle 命令有一个很好的特性是它仅在用户空间中运行,这意味着你不需要 root 权限就可以限制一个程序的带宽使用。

2、如何判断trickle对应用程序是否有效?

根据是否使用libc.so库来判断

可以通过ldd命令来查看这个程序是否使用了libc.so库。如果应用程序使用了这个库,就可以用trickle来限制网络带宽,否则就不行。

ldd /usr/bin/wget | grep libc.so
libc.so.6 => /lib64/libc.so.6 (0x00002adc30397000) 

3、Linux安装Trickle

Trickle工具有一些依赖包,安装和使用trickle之前必须安装“libevent库”,不过这个库在大多数现在的linux服务器上已经默认安装了。

在 Ubuntu/Debian/Linux Mint服务器上运行 apt-get install trickle进行安装。请确保源列表已经更新,接着安装你想要的应用。

sudo apt-get update
sudo apt-get install trickle

在 Fedora/ CentOS/RHEL服务器上需要更新系统,然后使用下面的命令安装trickle

yum update
yum install trickle

4、trickle基本使用方法。

trickle --help
Usage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>]
[-l <length>] [-n <path>] command ...
-h Help (this)
-v Increase verbosity level
-V Print trickle version
-s 在独立模式下独立运行
-d <rate> 设置最大累计下载速率为 <rate> KB/s
-u <rate> 设置最大累计上传速度为 <rate> KB/s
-w <length> 设置窗口长度为 <length> KB 。默认512KB。
-t <seconds> 设置默认的平滑时间 <seconds> s 。平滑时间决定多少时间间隔trickle将尝试让应用程序传输数据。较小的值(0.1 - 1秒)会导致更连续(平滑)会话,非常适合于交互式应用。而较大的值(1 - 10秒)可能会产生一阵阵的发送和接收数据,对需要大量带宽的应用程序更好。
-l <length> 设置默认的平滑长度 <length> KB 。 默认10 KB。
-n <path> 指定trickled socket名称 <path> 。 默认/tmp/.trickled.sock 。
-L <ms> 设置延时。

只需简单地把 trickle 命令(及速率参数)放在你想运行的命令之前。

trickle -d -u 这就可以将下载和上传速率限定为特定值(单位 KBytes/s)。

例如,将你的 scp 会话的最大上传带宽设定为 100 KB/s

trickle -u 100 scp backup.tgz alice@192.168.4.93:/home/wslu

如若你想,你可以通过创建一个自定义启动器的方式,使用下面的命令为你的 Firefox 浏览器设定最大下载速率(例如, 300 KB/s)。

trickle -d 300 firefox %u

二、限制网络接口的网络流量速率

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

总结

在本文中,我分享了两种不同的方法,来达到Linux 服务器限制应用程序和网络接口的带宽流量速率的目的。 两种工具的使用都很简单,都为用户提供了一个快速且容易的方式来调整或限制流量。

以上便是今日的分享,感谢您的阅读,加个关注不迷路~

linux 限制带宽命令,Linux服务器限制网络带宽流量速率(限制应用程序和指定网卡的流量)相关推荐

  1. linux 查看带宽命令,linux查看带宽的命令

    linux系统一些命令可以显示带宽的状态信息,下面由学习啦小编为大家整理了linux查看带宽的相关知识,希望对大家有帮助! linux查看带宽命令详解 linux查看带宽命令1.nload nload ...

  2. linux 限制带宽命令,在 Linux 中限制网络带宽使用(限制指定程序和指定网卡的流量)...

    在本文中,我将为你描述两种在 Linux 中限制网络流量速率的不同方法. 在 Linux 中限制一个应用的速率 限制网络流量速率的一种方法是通过一个名为 trickle的命令行工具.通过在程序运行时, ...

  3. linux shell 未找到命令,未找到linux问题setenv命令(linux issue setenv command not found)

    未找到linux问题setenv命令(linux issue setenv command not found) 我在Linux中开发了一个Tcl / Tk脚本工具. 为了运行该工具,每次需要在she ...

  4. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  5. linux 限制带宽命令,怎样在 Linux 中限制网络带宽使用

    假如你经常在 Linux 桌面上运行多个网络应用,或在家中让多台电脑共享带宽:那么你可能想更好地控制带宽的使用.否则,当你使用下载器下载一个大文件时,交互式 SSH 会话可能会变得缓慢以至不可用:或者 ...

  6. linux 建站命令,Linux 服务器建站新手教程(小白宝塔建站全流程)-不需要敲一行命令,...

    Linux 服务器建站新手教程(小白宝塔建站全流程)-不需要敲一行命令, Linux 服务器配置.运行.不用敲命令 WordPress 建站攻略--助力新手快速利用Linux系统建立属于自己的站点-- ...

  7. 【Linux】free命令查询服务器内存信息

    Linux的free命令对于很多的Linux运维来说,应该是非常熟悉的了.但作为一个经常使用linux系统的小白来说,我们也需要了解一下free命令. free 命令显示系统内存的使用情况,包括物理内 ...

  8. linux 使用scp命令,Linux scp命令使用实例汇总

    Linux下要实现两台服务器之间的文件传送,使用scp命令就可以了,在Linux系统中,scp命令的用法简单而又实用,系统之家就给大家介绍下如何使用scp命令进行Linux服务器之间的文件传送. sc ...

  9. 总结Linux 的常用命令(Linux入门)

    Linux 这篇文章主要是写一些Linux中常用的命令,属于入门了哈哈(主要是针对Java的学习) 那么首先既然是入门,我们也得知道Linux这玩意到底是咋读的把? 大家可能多多少少也听旁边的人说过很 ...

最新文章

  1. NPOI导Excel样式设置
  2. 看到数学就打怵不是你的错:百万人调查发现上黑板做题、作业太多、家长陪写都会引发焦虑|PNAS...
  3. linux c 获取 CPU、内存、IO、磁盘、网速
  4. mysql大表myisam的导入
  5. 天池 在线编程 最长AB子串(哈希)
  6. VS2013配置Qt5.8.0环境
  7. python 不等于_python怎么一次输入两个数
  8. docker构建dpdk运行环境镜像
  9. pip 错误:ModuleNotFoundError: No module named pip
  10. docker volume源码分析
  11. 如何在 Mac 上使用“备忘录”管理扫描文稿?
  12. ps2021没法用神经元滤镜,ps2021神经滤镜不能下载
  13. 代码与国家地区对照表
  14. 史上最强C语言教程----万字初识C语言
  15. 什么是强制性3C认证?
  16. 假若明天来临——《AI.未来》读后感3900字
  17. python特殊函数_SciPyTutorial-特殊函数
  18. 海量的超赞 Linux 软件
  19. STM32F105RCT6使用CubeMX初始化工程——2:初始化CAN通信
  20. iOS 作为蓝牙外设广播信息

热门文章

  1. 诺华创血小板减少症新药纳入新版国家医保目录
  2. 目标检测YOLO系列总结
  3. 大数据告诉你,中国女人的勤奋碾压全世界!
  4. 李·德福雷斯特如何发明了第一个电子三极管?
  5. 用 python 分析基金!让赚钱赢在起跑线!
  6. Dell R730服务器 Raid5配置
  7. SRE之路01-互联网基本架构
  8. 上海python培训比较好的机构
  9. web——md5 collision(NUPT_CTF)(100)——Bugku
  10. Android app 应用审核不通过