Batasi bandwidth keluar pada antarmuka tertentu

32

Saya ingin tahu cara termudah untuk membatasi bandwidth keluar untuk sebuah antarmuka. Saya ingin membatasi kecepatan port keluar sehingga transfer file antara server saya tidak gagal selama jam sibuk.

Apa solusi termudah? Saya tahu saya bisa menggunakan iptablestetapi saya sedang mencari instalasi / konfigurasi sederhana.

Gabe
sumber
HTB bekerja dengan sangat baik. Pembatasan tingkat sangat fleksibel. sourceforge.net/projects/htbinit

Jawaban:

37

ethtool

Anda dapat mengubah kecepatan agregat port NIC menggunakan ethtool.

$ sudo ethtool -s eth0 speed 10

Ini akan mengatur port ke 10MB, misalnya.

pembentuk keajaiban

Anda juga dapat menggunakan alat wondershaperuntuk melakukannya juga. CATATAN: Kecepatan harus dalam kilobit per detik.

$ sudo wondershaper eth1 downspeed upspeed

Sebagai contoh:

$ sudo wondershaper eth0 10000 280

berhamburan

Opsi ke-3 adalah Trickle . Trickle dapat digunakan per program oleh pengguna atau sebagai daemon yang mencekik NIC sepenuhnya.

Mode pengguna - tetesan halaman manual

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

Akan throttle 20K / s untuk lalu lintas naik dan turun hanya untuk ini wget, segala sesuatu yang lain tidak akan terbatas.

Mode daemon - halaman manual yang penuh tipuan

Dalam mode daemon, trickleddapat membatasi sekelompok program hingga batas bandwidth yang tetap. Untuk memulai daemon, jalankan perintah trickled:

$ sudo trickled -d 20 -u 20

pyshaper

Opsi ke-4 adalah pyshaper . Ini adalah pilihan unik di antara pilihan karena termasuk GUI dan secara dinamis memonitor dan menetapkan bandwidth dari waktu ke waktu. Anda dapat memeriksa halaman manual pyshaper untuk lebih jelasnya.

                                            pyshaper gui

Referensi

slm
sumber
Membatasi penggunaan bandwidth dari aplikasi yang bermasalah melalui cgroup mungkin juga akan bermanfaat jika kernel mereka mendukungnya.
Bratchley
wondershaper tidak berfungsi Saya tidak tahu mengapa (bahkan `wondershaper eth0 1000 1000` tidak memiliki bandwidth internet sama dengan` sudo trickled -d 20 -u 20`.) Saya perlu membatasi satu antarmuka jaringan. bandwidth tidak hanya aplikasi spesifik. bagaimana bisa di lakukan itu?
Arash
menetes tidak bekerja untuk saya, tetapi keajaiban melakukan trik!
peschü
1

Wondershaper diedit terakhir pada tahun 2002 tetapi masih bekerja pada Fedora 21 hari ini. Tetapi perhatikan, hanya ada beberapa opsi yang tersedia sebagai argumen dan Anda tidak dapat menentukan kecepatan unggah / unduh pada baris perintah seperti yang ditentukan di sini - setidaknya, tidak dalam Unduh versi 1.1a, dirilis 16 April 2002. Anda harus mengedit file, dan itu adalah skrip shell. Tidak sulit bagi mereka yang tahu sedikit cangkang.

Penggunaannya adalah:

wondershaper (yang ini akan mengatur bandwidth Anda sesuai dengan nilai-nilai dalam file)

wondershaper status
wondershaper stop

Anda dapat menggunakannya saat tautannya aktif, yang bagus.

Mike S
sumber
1

Pilihan lain adalah ' iproute2 ' yang tampaknya menjadi alat perutean / pembentukan lalu lintas yang matang dan tersedia secara luas. Saya menemukannya sebagai RPM (mungkin banyak paket lain juga, saya tidak melihat). Pada tulisan ini, versi terbaru adalah 4.4.0, dibangun pada 25 Jan 2016.

Melihat dari sintaks konfigurasi, tampaknya relatif sederhana (meskipun tidak sesederhana ifconfigatau route.)

hijau
sumber
6
Jawaban Anda tidak membahas bagaimana seseorang akan benar-benar menggunakan iproute2 untuk membatasi bandwidth keluar. Bisakah Anda menjelaskan lebih lanjut?
Michael