Search This Blog

2013-11-16

在GNU/Linux限制上传下载速度

在公用网络里面,上传下载需要限速,试了几个工具,大概记录一下。最强大的是wondershaper,用起来也方便。

wget,用--limit-rate参数可以限速,比如,wget --limit-rate=200k "{url}",可以限速200KB/s。仅限该程序的某次下载。

trickle,能给单个程序限速,"man trickle"里有这样一段话:trickle is a userspace bandwidth manager. Currently, trickle supports the shaping of any SOCK_STREAM (see socket(2)) connection established via the socket(2) interface. Furthermore, trickle will not work with statically linked executables, nor with setuid(2) executables. 确实不是所有的情况都能用,比如,能给wget限速,但是不能给java程序限速。

wondershaper,这是一个全局限速工具。"sudo zypper in wondershaper"即可安装。
在/etc/sysconfig/wondershaper配置上传下载速度限制,WSHAPER_DEV一般就填eth0,WSHAPER_DOWNLINK是下载速度,WSHAPER_UPLINK是上传速度,速度的单位都是kilobits,比如,限制下载速度到200KB/s,那WSHAPER_DOWNLINK可以设置为1600。
"sudo /etc/init.d/wondershaper {start|stop|status|restart}"用来控制运行状态。
如果是长时间的上传下载,可以把相关命令添加到crontab,便于自动控制。

tc,这个没有试过,只是看到有人提。从/etc/sysconfig/wondershaper最后的WSHAPER_QDISC_TYPE来看,wondershaper跟tc有些关系,支持的控制算法有cbq,htb,可以参考"man tc"的"CLASSFUL QDISCS"小节。

参考资料:

=文章版本=

20131102
20131116

No comments:

Post a Comment