我正在尝试减慢 TCP 分叉代理上的流量。
代码不再位于代理上,我仍在笔记本电脑上进行测试;Chrome 上的所有 HTTP(S) 请求都使用给定端口上的 SwitchyOmega 插件重定向(所以也许我只需要 OUTPUT 规则而不是 FORWARD)。
Ookla 速度测试我得到了13.92Mbps 下载/15.89Mbps,而最大速率和上限设置为256和316每秒的數量數。
我正在使用 Ubuntu 14.04 x86_64。由于我有一个 HTTP 代理,所以我唯一关心的端口是 80 和 443(我也处理 HTTPS 请求):
# usage: sudo ./filename.sh {set|clean} interface
IF=$2
#delete existing rules
tc qdisc del root dev wlan0
iptables -t mangle -F
if [ "$1" = "clean" ]
then
exit 0
fi
echo "Setting.."
# Turn on queuing discipline, enter:
tc qdisc add dev wlan0 root handle 1: htb
tc class add dev wlan0 parent 1: classid 1:1 htb rate 512kbps
# Define a class with limitations:
tc class add dev wlan0 parent 1:1 classid 1:5 htb rate 256kbps ceil 312kbps prio 1
# Define another class with limitations:
tc class add dev wlan0 parent 1:1 classid 1:6 htb rate 256kbps ceil 312kbps prio 0
# Assign it to appropriate qdisc:
tc filter add dev wlan0 parent 1:0 prio 1 protocol ip handle 5 fw flowid 1:5
# Assign it to appropriate qdisc:
tc filter add dev wlan0 parent 1:0 prio 0 protocol ip handle 6 fw flowid 1:6
# Port 80 is NOT defined anywhere in above class. You will use iptables mangle rule as follows:
iptables -A FORWARD -t mangle -p tcp --sport 80 -j MARK --set-mark 5
iptables -A OUTPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 5
# Port 443 is NOT defined anywhere in above class. You will use iptables mangle rule as follows:
iptables -A FORWARD -t mangle -p tcp --sport 443 -j MARK --set-mark 6
iptables -A OUTPUT -t mangle -p tcp --sport 443 -j MARK --set-mark 6
iptables-save
它仍然走得太快了:到底出了什么问题?