İndirme / Yükleme bant genişliğini nasıl sınırlayabilirim?


Yanıtlar:


42

Tek bir arayüzü sınırlamak kolaydır, ancak genel oran limitleri uygulama tabanlı kurallar gibi daha karmaşık kurallara ihtiyaç duyar. Bunu yapamayacağımı söylemiyorum, ama ağın iç kısımlarına kazma biraz gerektirir.

İşte hızlı bir Arayüz limiti başına nasıl kurulur

Gerçekten uygulama tabanlı kurallar oluşturmak istiyorsanız , biçimlendirmeyi yapılandırmak için yardımcı özelliklere sahip olan shorewall gibi bazı güvenlik duvarı çerçevelerine bakmalısınız . Bu aletlerle bile, onu yerleştirmek için biraz öngörü ve test yapılmasını gerektirir. Bu geçici gibi bir şey yapmak o kadar kolay değil.


wondershaper hatta neden (bilmiyorum çalışmıyor wondershaper eth0 1000 1000 . internet yok bant genişliği vardır ben eth0 bant genişliğinin tüm sadece belirli uygulamaları sınırlamak gerekir yapmak içinde nasıl.?
Arash

67

Bu eski bir soru olmasına rağmen, aynı soruya bir cevap ararken buna rastladım. İşletim sistemi ve arayüz sınırları daha önce cevaplanmış durumda, bu nedenle uygulamaya özel sınırlar koymanın bir yolu var. Damlama adlı bir uygulama kullanın. Öyleyse yap sudo apt-get install trickle. Belirli bir uygulama için yükleme / indirme işlemini çalıştırarak sınırlayabilirsiniz.

trickle -u (upload limit in KB/s) -d (download limit in KB/s) application

Bu, uygulamayı belirtilen sınırlarla başlatacak. Ayrıca "yumuşatma" süresini de belirleyebilirsiniz, böylece uygulamanızın bant genişliği tüketiminde patlama olması durumunda ve numunelerin ortalama şartnameleriniz dahilinde olduğu sürece patlamalara izin verilmesini istemeniz durumunda, istenen süre zarfında numuneleri kandırmak için belirleyebilirsiniz.


14
Çok teşekkür ederim! Bu çözüm, uygulama başına temelinde bant genişliğini kontrol etmek için mükemmeldir. Lütfen, soru eski olsa bile, cevap yazmaktan çekinmeyin. Gelecekte başvurmak için: Size bir hata mesajı verilebilir trickle: Could not reach trickled, working independently: No such file or directory. Bu uyarıyı, bağımsız modda ile damlama çalıştırarak kaldırabilirsiniz trickle -s.
Mayıs 13

Damlama ile sınırlı limiti nasıl kaldırabilirim?
Anonymous Mouse

2
Trickle, uygulamayı sizin için uygulanan sınırlamalar dahilinde yürütecektir. Yapmanız gereken tek şey, trickle komutunu kullanmadan uygulamayı yeniden başlatmak.
SMeznaric

1
bu cevap için çok teşekkürler bu aradığım şeydi
Ali

1
Tam olarak ihtiyacım olan şey, yavaş bir ağ bağlantısını simüle etmeye çalışırken.
Ethan Kaminski

5

Belirli bir IP adresi için bant genişliğini sınırlamak istiyorsanız, bunu kullanabilirsiniz:

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

4
Bu oldukça sarsıldı. Birkaç yorum, uzun bir yol kat edecek. Örneğin, qdiscs, classids, htb, vb. İçin bağlantılar veya açıklamalar ekleyebilirsiniz.
oligofren

Öyleyse, varsayılan olarak yukarıdakiler başka bir kuyruğa filtre edilmediği sürece her şeyi 5000 kbps ile sınırlar mı? Ya her şeyi sınırlamak istemiyorsak ?
Ken Sharp,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.