Linux下的流量整形

时间:2009-10-10 14:24:28

标签: python linux ubuntu trafficshaping

在哪里可以了解如何在Linux下控制/查询网络接口?我想获得特定的应用程序上传/下载速度,并强制执行特定应用程序的速度限制。

我特别喜欢可以帮助我使用Python编写流量整形应用程序的信息。

4 个答案:

答案 0 :(得分:6)

您需要iproute2套件,您可以在其中使用tc命令。 tc命令看起来像

tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 1600

这是使用iproute2的an existing Python traffic-shaping application

答案 1 :(得分:6)

使用Linux内核工具实际上很难塑造每个应用程序,除非应用程序使用您可以匹配的特定IP地址和/或端口。

假设情况确实如此,那么您需要阅读iptables,特别是fwmarks。您还需要阅读tc。结合这两个工具可以做你想要的。 Linux Advanced Routing & Traffic Control是一个很好的起点。

假设您的应用程序没有使用可预测的端口/ IP地址集,那么您将需要使用像Trickle这样的用户空间整形器。这会在应用程序和内核之间插入,并在用户空间中为该应用程序的流量进行整形。

我认为这些工具中没有任何直接的python绑定,但使用python编写脚本并直接调用可执行文件会很简单。

答案 2 :(得分:0)

你有什么理由想使用python吗?如上所述,它可能只是为了这个目的而交付已经开发的工具。但是,如果你环顾四周,你可以找到诸如Click! modular routerXORP之类的内容,以及为你想做的事情提供内容的其他内容 - 更不用说已经提供的所有建议(如作为iptablestc

答案 3 :(得分:0)

特定应用程序的带宽限制(在这种情况下为google-chrome)

trickle -d 600 -u 200 google-chrome

单位为千位

以太网设备的总带宽限制:

sudo wondershaper eth0 600 200

单位又以千比特为单位。将eth0更改为您的接口名称。它使用tc tbf和htb ...

要掌握Linux上的连接性,您需要学习的命令和程序是:

ip
ifconfig
route
iptables
netstat
tc
wondershaper
trickle
iftop
iptraf-ng
wget 
curl
nslookup
dig

您需要用作参考的文档是:

https://www.lartc.org/howto/index.html

Cookbook在此文档中有很好的示例。

一个易于阅读的博客博客页面是:

https://www.cnblogs.com/zengkefu/p/5635100.html

别忘了对它们进行试验很有趣;)。