ฉันจะ จำกัด แบนด์วิดท์ดาวน์โหลด / อัพโหลดสำหรับ:
- ระบบปฏิบัติการทั้งหมด
- อินเตอร์เฟซเครือข่ายหนึ่ง
- แอปพลิเคชันเดียว
ฉันจะ จำกัด แบนด์วิดท์ดาวน์โหลด / อัพโหลดสำหรับ:
คำตอบ:
การ จำกัด อินเทอร์เฟซเดียวนั้นง่าย แต่การ จำกัด อัตราทั่วโลกต้องการกฎที่ซับซ้อนมากขึ้นเช่นเดียวกับกฎที่ใช้แอปพลิเคชัน ฉันไม่ได้บอกว่ามันทำไม่ได้ แต่มันต้องมีการขุดลึกเข้าไปใน internals ของเครือข่าย
นี่เป็นวิธีด่วนในการตั้งค่าขีด จำกัด ต่ออินเตอร์เฟส
หากคุณต้องการตั้งค่ากฎตามแอปพลิเคชันจริงๆคุณควรตรวจสอบกรอบงานไฟร์วอลล์บางอย่างเช่นshorewallซึ่งมีคุณสมบัติตัวช่วยในการกำหนดค่าการปรับรูปร่าง แม้จะใช้เครื่องมือเหล่านี้ แต่ก็ต้องมีการคิดล่วงหน้าและทดสอบเพื่อนำไปใช้จริง การทำอะไรที่คล้ายกันนี้ยังไม่ง่ายนัก
wondershaper eth0 1000 1000
ไม่มีแบนด์วิธอินเทอร์เน็ตฉันต้อง จำกัด แบนด์วิดธ์ของ eth0 ทั้งหมดไม่เพียง แต่เฉพาะแอปพลิเคชั่นเท่านั้นจะทำเช่นนั้นได้อย่างไร
แม้ว่านี่จะเป็นคำถามเก่า แต่ฉันก็พบสิ่งนี้เมื่อมองหาคำตอบของคำถามเดียวกัน ขีด จำกัด ระบบปฏิบัติการและอินเทอร์เฟซได้รับการแก้ไขแล้วในคำตอบก่อนหน้าดังนั้นนี่คือวิธีตั้งค่าขีด จำกัด เฉพาะแอปพลิเคชัน ใช้แอปพลิเคชันที่เรียกว่าหยด ทำเช่นsudo apt-get install trickle
นั้น คุณสามารถ จำกัด การอัปโหลด / ดาวน์โหลดสำหรับแอพที่ต้องการโดยการเรียกใช้
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
วิธีนี้จะเปิดแอปพลิเคชันด้วยขีด จำกัด ที่ระบุ นอกจากนี้คุณยังสามารถระบุเวลา "ปรับให้เรียบ" เพื่อให้หยดตัวอย่างในช่วงเวลาที่ต้องการในกรณีที่แอปพลิเคชันของคุณมีปริมาณการใช้แบนด์วิดท์และคุณต้องการอนุญาตให้มีการระเบิดตราบเท่าที่ค่าเฉลี่ยอยู่ในข้อกำหนดของคุณ
trickle: Could not reach trickled, working independently: No such file or directory
ดังนี้ trickle -s
คุณสามารถลบคำเตือนนี้โดยการดำเนินการหยดในโหมดสแตนด์อโลนกับ
หากคุณต้องการ จำกัด แบนด์วิดท์สำหรับที่อยู่ IP เฉพาะคุณสามารถใช้สิ่งนี้:
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
wondershaper
ปัญหาใน Ubuntu 17.10 ซึ่งอาจคล้ายกับสิ่งที่เกิดขึ้นกับ @ Zeromatiker ใน Ubuntu 17.04: bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421