Bagaimana cara membatasi bandwidth jaringan?

74

Kami meng-hosting aplikasi di server jarak jauh. Kita perlu mengujinya dengan bandwidth jaringan terbatas (untuk pengguna dengan akses Internet buruk).

Bisakah saya membatasi bandwidth internet saya? Misalnya: 128 KB per detik.

fiksi
sumber

Jawaban:

68

Anda dapat membatasi bandwidth jaringan pada antarmuka menggunakan perintah yang disebut tchalaman manual yang tersedia di http://linux.die.net/man/8/tc

Untuk skrip sederhana, coba keajaiban .

Contoh dari menggunakan tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

Nikhil Mulley
sumber
6
Tautan ke atmail.com meminta otorisasi nama pengguna / kata sandi untuk saya ... :(
Ash
1
Anda dapat mengakses konten atmail di sini: web.archive.org/web/20130719031908/http://atmail.com/kb/2009/…
Tom Saleeba
lebih baik terlambat daripada tidak pernah jika Anda akan menggunakan router busybox metode yang lebih baik adalah tcperintah, Anda dapat memeriksa posting tanda di sini mark.koli.ch/... wiki openvz memiliki lebih banyak contoh openvz.org/Traffic_shaping_with_tc
nwgat
sepertinya juga dimungkinkan untuk membatasi bandwidth dengan iptables (Anda dapat mengedit jawabannya jika diperlukan): serverfault.com/questions/52027/…
baptx
62

Seperti disebutkan dalam jawaban sebelumnya, wonderershaper melakukan pekerjaan dengan mudah. Saya memasukkan informasi dari tautan di atas oleh Jwalanta Shrestha

apt-get install wondershaper

wondershaper - Alat mudah untuk membatasi bandwidth antarmuka tertentu.

$ sudo wondershaper {interface} {down} {up}

{down} dan {up} adalah bandwidth dalam kpbs

Jadi misalnya jika Anda ingin membatasi bandwidth antarmuka eth1 ke 256kbps downlink dan 128kbps uplink,

$ sudo wondershaper eth1 256 128

Untuk menghapus batas,

$ sudo wondershaper clear eth1 
Eden
sumber
2
Idealnya, Anda harus mengedit jawaban asli alih-alih menambahkan yang baru. Ini adalah kebijakan standar. Bagaimanapun, +1 untuk jawaban Anda, untuk itu menambahkan informasi ke jawaban.
shivams
2
Ini sangat berguna jika Anda menambatkan data seluler dan memiliki batas penggunaan wajar (dan Anda harus membeli bundel baru setelahnya, kasing untuk Lycamobile). Di situs web streaming video seperti YouTube, seluruh video dimuat secara langsung jika Anda memiliki bandwidth yang cukup. Jika Anda membatasi bandwidth, video akan secara otomatis beralih ke resolusi rendah dan mengunduh apa yang Anda tonton saja, yang menyimpan data jika Anda tidak ingin menonton semuanya.
baptx
2
Berguna juga untuk mengunggah file besar, karena tidak hanya membatasi bandwidth, tetapi juga memprioritaskan lalu lintas. Sehingga saat mengunggah file 10gb Anda masih bisa menggunakan SSH.
PeterM
5
Wondershaper sangat ketinggalan jaman: Wondershaper Must Die (Bufferbloat.net)
Niklas Holm
10

Membatasi sumber daya jaringan berdasarkan beberapa kriteria adalah subjek QoS . Ada beberapa cara berbeda untuk mengontrol lalu lintas pengguna di sistem Linux.

Ada How-to yang bagus tentang teknik perutean canggih dan kontrol lalu lintas di Linux oleh Bert Hubert.

Emre Yazici
sumber
2
Apakah Anda merujuk ke bagian tertentu di dalamnya?
rogerdpack
1
Jika Anda tidak ingin mengubah pengaturan sistem, cukup instal squid3 proxy lalu setel aplikasi "terbatas" Anda melalui proxy. Untuk aplikasi cli, Anda dapat mengatur torsocks atau proxychains, dan untuk aplikasi GUI yang berat, Anda juga dapat menginstal Fiddler mono, jadi ya ... ada beberapa cara untuk mengontrol semuanya :)
erm3nda
(ini hanya jawaban tautan)
Konrad Gajewski
7

Jika Anda sudah memiliki pengaturan Apache di suatu tempat, Anda dapat menggunakan mod_bw, yang juga berfungsi pada koneksi yang diproksi (yaitu Apache hanya meneruskan semuanya ke server yang tepat, tetapi memperlambat responsnya.)

Ulrich Schwarz
sumber
6

Dummynet melakukan apa yang Anda inginkan dan banyak lagi, Anda bahkan dapat mengontrol latensi, kehilangan paket acak dan banyak lagi.

Ammar Alammar
sumber
6

Anda juga dapat menggunakan modul hashlimit iptables. Ini adalah contoh sederhana:

iptables -A FORWARD -m hashlimit --hashlimit-di atas 512kb / detik --hashlimit-burst 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP

Aturan itu membatasi lalu lintas yang melewati rantai FORWARD sebagai 512kb / detik dengan burst 1mb untuk setiap pasangan sumber dan tujuan.

Periksa bagian hashlimit dari manual iptables untuk informasi lebih lanjut.

http://ipset.netfilter.org/iptables-extensions.man.html

ibrahim
sumber