ฉันมีสคริปต์สร้างรูปร่างที่ควรจะลงโทษการดาวน์โหลดที่มีขนาดใหญ่กว่า 10mb โดยการลดระดับความเร็วการเชื่อมต่อ
หากฉันทดสอบด้วยการเชื่อมต่อเดียว การลงโทษจะมีผลและความเร็วในการดาวน์โหลดจะลดลงตามค่าที่ตั้งไว้ ถ้าฉันเปิดการดาวน์โหลดใหม่แบบขนาน อัตราการดาวน์โหลดค่าปรับจะถูกแชร์ระหว่างการเชื่อมต่อที่ถูกลงโทษทั้งสอง เป้าหมายของฉันคือการเสนออัตราโทษที่รับประกัน ไม่ใช่อัตราโทษที่ใช้ร่วมกัน ความคิดใดที่ฉันทำผิด?
dev=eth0
rate_full=100000mbit
conn_rate_limit=10mbit
conn_rate_ceil=20mbit
conn_rate_burst=30mbit
htb_class=10
max_byte=10485760
tc qdisc เดล dev $dev root > /dev/null 2>&1
tc qdisc เพิ่ม dev $dev root ที่จับ 1: htb
คลาส tc เพิ่ม dev $dev parent 1: classid 1:1 อัตรา htb $rate_full
คลาส tc เพิ่ม dev $dev parent 1: classid 1:$htb_class htb อัตรา $conn_rate_limit ceil $conn_rate_ceil ระเบิด $conn_rate_burst
ตัวกรอง tc เพิ่ม dev $dev parent 1: prio 0 โปรโตคอล ip จัดการ $htb_class fw flowid 1:$htb_class
#หลังจาก 10 เมกะไบต์ การเชื่อมต่อถือเป็นการดาวน์โหลด
iptables -t mangle -A OUTPUT -p tcp -m connbytes --connbytes $max_byte: --connbytes-dir ทั้งคู่ --connbytes-mode bytes -j MARK --set-mark $htb_class