你有没有遇到过一个程序占用了你所有的网络带宽的情况?如果你遇到过,那么你就需要限制带宽的应用。不管你是一个系统管理员还是一名普通Linux用户,您都应该学习如何控制应用的上传和下载速度来确保你的网络带宽不会被一个程序耗光。

Trickle 是什么?

Trickle是一款带宽控制供给,用来限制如Firefox, FTP , SSH以及其他使用网络带宽的程序的带宽。你希望你的Youtube音乐体验影响到你的ftp下载么?如果不想,请继续阅读这篇文章,学习如何在你的机器上安装和使用trickle。

怎样在Linux上安装Trickle

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

在 Debian/Ubuntu/Linux Mint 上

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

$ sudo apt-get update
$ sudo apt-get install trickle

在 RHEL/CentOS/Fedora 上

首先你需要更新系统,然后使用下面的命令安装trickle。

# yum update
# yum install trickle

Trickle如何工作?

Trickle通过控制socket数据读写量来控制和限制应用的上传/下载速度。它使用另一个版本的BSD套接字API,但是区别是trickle还管理socket调用。

要注意的是trickle使用动态链接和加载,所以它只对于使用"Glibc库"的程序有用。由于trickle可以设置数据在socket上的传输延迟,所以它可以用来限制一个应用的网络带宽。

Trickle不能做什么?

Trickle不能用于限制使用UDP协议的应用的带宽,它只可用于TCP连接,但是你要知道它也并不是对所有的TCP连接有效。如果你一直仔细地看这篇文章,你可以猜到原因是什么。你还记得trickle只对使用Glibc库应用有效吧?

还要说一下,trickle无法工作在使用静态链接的可执行程序上。

确定Trickle是否可运行在某个特定应用上

既然trickle无法限制每个应用的上传/下载速度,就应该有个方法找出trickle可以工作的应用。

ldd工具可以帮我们找出某个特定的程序是否使用了libc.so库。如果程序使用了这个库,就可以使用trickle来限制它的网络带宽使用。

ldd命令用于打印每个程序需要的共享库。如果你是一个好奇的Linux Geek,那么你可以使用man命令来找出关于ldd工具的更多信息。

# man ldd

Filezilla是一款使用ftp协议传输文件的程序,trickle可以用来限制它的下载或者上传速度么?在你考虑的时候,我使用以下的命令来找出trickle是否可用于filezilla。

# ldd filezilla | grep libc.so

就我而言,它输出了如下:

oltjano@oltjano-X55CR:/usr/bin$ ldd filezilla | grep libc.solibc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6bc4000)

既然filezilla使用了“libc.so”库,那么trickle可以用来限制它的网络带宽。这个方法可以用在任何你感兴趣的程序上。

学习如何使用Trickle

使用下面的命令输出trickle工具的版本。

root@oltjano-X55CR:~# trickle -V
trickle: version 1.07

Linux有很多命令行工具使测试(实验)变得有趣和美丽。下面的命令使用wget 工具来下载最新的Pear OS镜像.

root@oltjano-X55CR:~# wget http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download--2013-11-20 11:56:32--  http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
Resolving sourceforge.net (sourceforge.net)... 216.34.181.60
Connecting to sourceforge.net (sourceforge.net)|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384928843&use_mirror=kaz [following]
--2013-11-20 11:56:33--  http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384928843&use_mirror=kaz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso [following]
--2013-11-20 11:56:33--  http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 88.204.157.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|88.204.157.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1093664768 (1.0G) [application/octet-stream]
Saving to: ‘download’0% [ ] 30,78,278    381KB/s  eta 1h 50m

从输出可以看到,下载速度大约是381 KB/s。我想限制下载速度到13 K/s,这样我就可以用我的带宽做其他的事情了。下面的命令用来限制wget速度到13 K/s。

ravisaive@ravisaive-OptiPlex-380:~$ trickle -d 13 wget http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download--2013-11-20 12:01:19--  http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
Resolving sourceforge.net (sourceforge.net)... 216.34.181.60
Connecting to sourceforge.net (sourceforge.net)|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384929129&use_mirror=kaz [following]
--2013-11-20 12:01:19--  http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384929129&use_mirror=kaz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso [following]
--2013-11-20 12:01:20--  http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 88.204.157.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|88.204.157.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1093664768 (1.0G) [application/octet-stream]
Saving to: ‘download.1’0% [ ] 2,01,550    13.1KB/s  eta 21h 5m

从输出可以看到,下载速度被限制到了13K/s。下载将会持续21小时5分钟。上面的“-d”选项表示下载,还可以结合使用 “-d”选项和上传选项(-u),如下例所示。

# trickle -u 100 -d 50 ftp

上面的命令限制ftp 客户端的上传速度为100K/s,下载速度为50K/s。还可以使用下面的命令,限制在一个shell里运行的所有命令的带宽。

trickle -d 130 -u 13 bash

每个命令行工具都对用户提供了帮助,使用"trickle -h"命令来找出更多trickle工具的用法。

root@oltjano-X55CR:/usr/bin# trickle -hUsage: trickle [-hvVs] [-d ] [-u ] [-w ] [-t ]                [-l ] [-n ] command ...     -h Help (this)     -v Increase verbosity level     -V Print trickle version     -s Run trickle in standalone mode independent of trickled     -d     Set maximum cumulative download rate to  KB/s     -u     Set maximum cumulative upload rate to  KB/s     -w   Set window length to  KB      -t  Set default smoothing time to  s     -l   Set default smoothing length to  KB     -n     Use trickled socket name      -L       Set latency to  milliseconds     -P     Preload the specified .so instead of the default one 

总结

本篇文章介绍如何在Linux机器上安装trickle工具,并用它如何做一些简单的事情。无论你为大公司工作还是自己使用,trickle都是高级Linux用户的必备工具。


via: http://www.tecmint.com/manage-and-limit-downloadupload-bandwidth-with-trickle-in-linux/

Linux 下使用Trickle限制下载/上传带宽相关推荐

  1. Linux使用SSH上传下载文件,Linux下通过ssh scp命令上传下载文件

    Linux下通过ssh scp命令上传下载文件. 1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 例如 scp /var/tale ...

  2. linux登录百度网盘下载上传文件

    这里写自定义目录标题 linux登录百度网盘下载上传文件 linux登录百度网盘下载上传文件 参考一下的三个地址: 1.https://blog.csdn.net/huojiahui22/articl ...

  3. linux sftp 上传文件内容为空,求linux 下 C/c++ 实现SFTP上传文件的代码,或shell 写的如何区分上传是否成功?...

    如题求linux系统下C/C++实现SFTP上传文件的代码,最好有一定的中文注释,谢谢了. 或是, 我看FTP上传的shell写的比较简单,但是,如何能判断是否上传成功哪?? 如果想做上传的进度条的话 ...

  4. ftp linux 推送文件_Linux下SSH用FTP命令上传文件至另一个FTP空间

    如果没有ftp 提示: -bash: ftp: command not found 请先安装ftp应用程序: yum install ftp #ftp 127.0.0.1 21 输入远程空间的FTP ...

  5. Linux 终端訪问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  6. Linux中使用SCP命令进行上传或者下载文件

    本文目录 1.本地主机与远程主机之间进行文件传输 1.1.单个文件的上传与下载 1.2.多个文件的上传与下载 1.3.按目录进行上传与下载 2.远程主机与远程主机之间进行文件传输 SCP(Secure ...

  7. 在windows环境下ftp服务器的文件上传和下载

    在windows环境下ftp服务器的文件上传和下载 mo 一.上传本地文件 第一步:登录FTP服务器.在开始菜单中输入cmd,回车进入.输入ftp进入服务器,输入命令格式:open FTP服务器地址 ...

  8. Linux安装FTP及使用python上传下载ftp

    参考 https://www.cnblogs.com/mingforyou/p/4103022.html 一.安装及配置 1.直接使用yum安装 yum -y install vsftpd 2.配置文 ...

  9. 强力推荐Linux下的五大BT下载工具

    强力推荐Linux下的五大BT下载工具 2009年03月11日01:22 来源:NULL 作者:NULL 编辑:周荣茂 评论:0条 本文Tag: linux Linux新闻 在Windows操作系统中 ...

最新文章

  1. Error in value[[3L]](cond) : You have a 32-bit version of Java. H2O works best with 64-bit Java.
  2. Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h
  3. canal解析mysql日志异常_利用Canal解析mysql binlog日志
  4. Apache Camel 2.20发布–新增功能
  5. hadoop yarn 获取日志_Hadoop YARN配置参数剖析(2)—权限与日志聚集相关参数
  6. android 启动一个应用,android 在一个应用中启动另一个应用
  7. Sicily 6271
  8. NS方程由精确解求源项matlab代码
  9. SQL数据库移植到ARM板步骤
  10. 随机积分理论中的几何布朗运动——Brown Motion and Stochastic Process
  11. 我的世界java出生蘑菇岛,我的世界:有出生蘑菇岛和要塞的超大村庄?这超富有种子满足你!...
  12. 计算机的二进制算法与易图中,A.黑色素瘤B.脂肪瘤C.纤维瘤D.血管瘤E.皮脂腺囊肿1.好发于皮下、界限清楚、分叶状、生长较慢的肿瘤是()2.好发于皮下、质硬、生长缓慢的舯瘤是()...
  13. Adobe Photoshop CC 2017图文安装教程,附下载地址
  14. 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
  15. Node.js是什么?Node.js简介
  16. 关于Windows PowerShell
  17. 云图说丨华为云区块链引擎服务:高安全的区块链技术服务平台,轻松部署,快速上链
  18. Java~List-son
  19. 一文看懂-ElasticSearch全文搜索引擎
  20. java tea属于红茶吗_乌龙茶属于红茶吗?

热门文章

  1. linux:du和df
  2. html如何让图片不失真,图片放大不失真的几种方法
  3. 404未找到是什么意思_常见的web错误404你知道是什么意思吗?
  4. Android 内存泄露
  5. openssl HeartBleed漏洞复现
  6. 2000-XP-2003操作系统常见问题
  7. 第32篇 网络(二)HTTP
  8. R语言笔记1:t检验和Wilcoxon检验
  9. 质量检验中那些不为人所知的事儿
  10. xp sp3 远程桌面连接到控制台