Giden bant genişliğini belirli bir arayüzde sınırlayın


32

Bir arabirim için giden bant genişliğini sınırlamanın en kolay yolunu bilmek istiyorum. Giden bağlantı noktası hızını sınırlamak istiyorum, böylece sunucularım arasında dosya aktarımları yoğun saatlerde başarısız olmaz.

En kolay çözüm nedir? Kullanabileceğimi biliyorum iptablesama basit bir kurulum / yapılandırma arıyorum.


HTB harika çalışıyor. Çok esnek oran sınırlama. sourceforge.net/projects/htbinit

Yanıtlar:


37

ethtool

NIC bağlantı noktasının toplam hızını kullanarak değiştirebilirsiniz ethtool.

$ sudo ethtool -s eth0 speed 10

Bu, örneğin portu 10 MB'a ayarlayacaktır.

wondershaper

Aracı wondershaperyapmak için de kullanabilirsiniz . NOT: Hız, saniye başına kilobit cinsinden olmalıdır.

$ sudo wondershaper eth1 downspeed upspeed

Örneğin:

$ sudo wondershaper eth0 10000 280

damlama

Üçüncü seçenek ise Trickle . Damlama, her program için kullanıcılar tarafından veya NIC'i tamamen düşüren bir arka plan programı olarak kullanılabilir.

Kullanıcı modu - damlama adam sayfası

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

Sadece bunun için hem yukarı hem aşağı trafik için 20K / s kısma wgetyapacak, her şey sınırlı olmayacak.

Daemon mode - kandırılmış adam sayfa

Daemon modunda, trickledbir program grubunu sabit bir bant genişliği sınırıyla sınırlayabilir. Daemon'u başlatmak için, trickled komutunu çalıştırın:

$ sudo trickled -d 20 -u 20

pyshaper

Dördüncü bir seçenek, fısıltıdır . Bu, GUI içerdiği ve zaman içindeki bant genişliğini dinamik olarak izlemesi ve ayarlaması gibi seçenekler arasında benzersiz bir seçenek. Daha fazla bilgi için pyshaper man sayfasını inceleyebilirsiniz .

                                            pyshaper gui

Referanslar


Sorunlu uygulamaların bant genişliği kullanımını krupiyeler yoluyla sınırlamak, eğer çekirdeği destekliyorsa, muhtemelen de faydalı olacaktır.
Bratchley

wondershaper çalışmıyor nedenini bilmiyorum (`wondershaper eth0 1000 1000` bile 'sudo kandırdın -d 20 -u 20` ile aynı internet bant genişliğine sahip değil.) Bir ağ arayüzünü sınırlandırmam gerekiyor. bant genişliği yalnızca belirli uygulamalar değil. Bunu nasıl yapabilirim?
Arash

damlama benim için işe yaramadı, ama wondershaper hile yaptı!
peschü

1

Wondershaper en son 2002'de düzenlendi, ancak bugün hala Fedora 21'de çalışıyor. Ancak, argüman olarak yalnızca birkaç seçenek vardır ve komut satırında yükleme / indirme hızını burada belirtildiği gibi belirleyemezsiniz - en azından 16 Nisan 2002'de yayınlanan 1.1a sürümünü indirmeyin. dosya, ve bir kabuk betiği. Küçük bir kabuk bilenler için zor değil.

Kullanım:

wondershaper (bu, bant genişliğinizi dosyadaki değerlere göre ayarlayacaktır)

wondershaper status
wondershaper stop

Bağlantı canlı iken kullanabilirsiniz, bu hoş.


1

Diğer bir seçenek de, olgun ve yaygın olarak kullanılan bir trafik yönlendirme / şekillendirme aracı gibi görünen ' iproute2'dir . Bunu bir RPM olarak buldum (muhtemelen birçok paket de, bakmadım). Bu yazı itibariyle en yeni sürüm 25.03.2016 tarihinde kurulmuş olan 4.4.0'dır.

Yapılandırma sözdizimine bakıldığında, göreceli olarak basit görünüyor ( ifconfigveya kadar basit olmasa da) route.


6
Cevabınız, giden bant genişliğini sınırlamak için gerçekte iproute2'yi nasıl kullanacağını ele almaz. Lütfen detaylandırabilir misiniz?
Michael,
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.