我局域网中的另一台机器正在上传到Dropbox,并使我的互联网连接的上传带宽饱和。 当这种情况发生时,我的平均时间为8.8.8.8,时间为3000-6000毫秒。 当dropbox不上传我的ping到8.8.8.8是45ms。
我试图简单地减慢和降低转发stream量到/从我的Linux路由器的Dropboxstream量。
我已经尝试了两个略有不同的指南,并没有任何成功。 我认为造成混淆的一个因素是,Dropbox的stream量似乎每隔一两分钟就会加速并减速。 我没有访问Dropbox上传的机器,所以我看不到为什么stream量高了几分钟,然后低了几秒钟,振荡。 也许它上传了许多文件,每个文件之间都有一个暂停。
我已经根据3个略有不同的指南在线做了3次尝试。
我的理解是1:30是最低优先级的stream量类,这是我想要的Dropbox。
更新:我稍微调整了这一点,以形成我从我自己的电脑上运行的下载。 限速工作如预期。 但是现在我必须testing上传。
尝试1
#!/bin/bash tc qdisc add dev br0 root handle 1:0 htb default 1 tc class add dev br0 parent 1:0 classid 1:30 htb rate 64kbps ceil 128kbps prio 0 tc filter add dev br0 parent 1:0 prio 0 protocol ip handle 30 fw flowid 1:30 iptables -I FORWARD -t mangle -s 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 30 iptables -I FORWARD -t mangle -d 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 30
iptables-save -c显示相关的stream量正在被标记
[145:212599] -A FORWARD -d 162.125.0.0/16 -j MARK --set-xmark 0x1e/0xffffffff [72:2880] -A FORWARD -s 162.125.0.0/16 -j MARK --set-xmark 0x1e/0xffffffff
尝试2
#!/bin/bash #tc qdisc add dev br0 root handle 1: htb #tc class add dev br0 parent 1: classid 1:30 htb rate 32kbps ceil 64kbps #tc filter add dev br0 parent 1: prio 0 protocol ip handle 30 fw flowid 1:30 #iptables -I FORWARD -t mangle -s 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 30 #iptables -I FORWARD -t mangle -d 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 30
尝试3
tc qdisc add dev br0 root handle 1: htb default 1 #Second add a class (bucket) with bandwidth restrictions tc class add dev br0 parent 1: classid 1:30 htb rate 512kbit #Then add a filter to force packets through the class tc filter add dev br0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:30 iptables -I FORWARD -t mangle -s 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 0x1 iptables -I FORWARD -t mangle -d 162.125.0.0/16,199.47.216.0/22,108.160.160.0/20,205.189.0.0/24,64.124.102.192/29,209.99.70.0/24,45.58.64.0/20,208.185.144.160/27 -j MARK --set-mark 0x1
如果你有它的下载stream量的工作,那么你的configuration是好的。 stream量整形仅适用于出口stream量。 这是因为整形控制了接口的发送缓冲区,对接收端没有影响(入口stream量)。
有两种可能的解决scheme:一种是使用IFB (在链接的文章中提到),或者在另一个接口(不面向客户端)configuration出口整形。 澄清第二点:
Clients <=> (download limit) [Server] (upload limit) <=> [Edge router]
您想通过在不同的接口上应用下载和上传限制来在“服务器”上设置stream量,如图所示。 上传的数据是到第二个接口(非面向)客户端的出口stream量。
这里有类似的post: post1和post2 。