มีวิธีง่าย ๆ ในการ จำกัด การใช้แบนด์วิดท์ของผู้ใช้ให้พูดถึง 10kpbs หรือไม่? ผู้ใช้รายอื่นไม่ควรได้รับผลกระทบ สิ่งที่ดีที่สุดที่ฉันพบคือ tc แต่มันดูซับซ้อนเกินไปที่จะทำสิ่งง่าย ๆ
มีวิธีง่าย ๆ ในการ จำกัด การใช้แบนด์วิดท์ของผู้ใช้ให้พูดถึง 10kpbs หรือไม่? ผู้ใช้รายอื่นไม่ควรได้รับผลกระทบ สิ่งที่ดีที่สุดที่ฉันพบคือ tc แต่มันดูซับซ้อนเกินไปที่จะทำสิ่งง่าย ๆ
คำตอบ:
tc คือคำตอบที่ถูกต้องสำหรับการกำหนดค่าของคุณ
tc อาจดูซับซ้อนเพราะจัดการกับสาวกที่เข้าคิวแบบ classfull (และน้อยกว่า) ซึ่งให้ความยืดหยุ่นแบบไม่ จำกัด และเลเยอร์ของรูปร่างและการกรอง
อย่างไรก็ตามนี่ไม่ใช่กรณี ในฐานะที่เป็น tc ใช้สาวกคิว (หรือโมดูลาร์) ในตัวในเคอร์เนลจึงเป็นวิธีที่ง่ายที่สุด / ดีที่สุดในการ จำกัด แบนด์วิดท์บนพื้นฐานต่อผู้ใช้
นี่คือตัวอย่างการตั้งค่าฉันทิ้งไว้ในรูปแบบ Mbit แต่คุณสามารถเปลี่ยนการวัดอัตราเป็น kbps
tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1Mbit ceil 1Mbit prio 1
สำหรับกฎ iptables ของคุณเพียงแค่เปลี่ยน - uid-owner เป็น uid ของผู้ใช้ที่คุณต้องการ จำกัด เอกสารประกอบบอกว่าคุณสามารถใช้ชื่อผู้ใช้แทน UID ได้ยังไม่ได้ทดสอบว่า
iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m owner --uid-owner 1000 -j CLASSIFY --set-class 1:1
ถึงแม้ว่าคุณไม่ต้องการ HTB ก็ตามฉันขอแนะนำตามตัวเลือกที่มีและความเร็วที่คุณ จำกัด