假如你经常在Linux桌面上运行多个网络应用,或在家中让多台电脑共享带宽;那么你可能想更好地控制带宽的使用。否则,当你使用下载器下载一个大文件时,交互式SSH会话可能会变得缓慢以至不可用;或者当你通过Dropbox来同步一个大文件夹时,你的室友可能会抱怨在她的电脑上,视频流变得断断续续。
在本教程中,我将为你描述两种在Linux中限制网络流量速率的不同方法。
在Linux中限制一个应用的速率
限制网络流量速率的一种方法是通过一个名为trickle的命令行工具。通过在程序运行时,预先加载一个速率限制socket库的方法,trickle命令允许你改变任意一个特定程序的流量。trickle命令有一个很好的特性是它仅在用户空间中运行,这意味着,你不必需要root权限就可以限制一个程序的带宽使用。要能使用trickle程序控制程序的带宽,这个程序就必须使用非静态链接库的套接字接口。当你想对一个不具有内置带宽控制功能的程序进行速率限制时,trickle可以帮得上忙。
在Ubuntu,Debian及其衍生发行版中安装trickle:
复制代码