Memperlambat koneksi individual yang melewati router Linux?

8

Kami memiliki server Linux yang bertindak sebagai router / firewall untuk kantor kami. Kadang-kadang seseorang akan mengunggah file besar yang menghabiskan semua bandwidth kami. Saya tidak ingin menerapkan aturan rumit atau pembentukan lalu lintas, tapi saya ingin tahu apakah ada cara untuk memperlambat satu koneksi di tempat? Saya menemukan tcpnice , tetapi itu tidak memperlambat transfer dalam pengujian saya.

davr
sumber

Jawaban:

6

Jika pembentukan traffic tidak membentuk traffic dengan benar untuk shell dan upload aktif (saya pikir itu bisa, tetapi tidak yakin) maka Anda bisa:

a) jalankan ssh pada dua port - Anda dapat memprioritaskan satu untuk transfer file dan satu untuk pekerjaan interaktif.

b) batasi total tingkat ssh - satu-satunya masalah adalah jika Anda mengisi kapasitas unggahan tautan dan ssh akan berfungsi dengan baik secara interaktif jika Anda membatasi laju hingga 50 kbps (ini akan memaksa pengguna untuk menggunakan beberapa protokol lain untuk transfer file yang lebih besar )

c) memprioritaskan lalu lintas pada alamat sumber jika Anda bisa

juga, pembentukan lalu lintas harus membuat lalu lintas lebih seimbang terlepas sehingga koneksi tunggal tidak akan memonopoli seluruh tautan.

EDIT: Berikut ini contoh yang menggunakan skrip bash. Disebutkan bahwa ssh memang menetapkan TOS pada interaktif ke interaktif, jadi saya akan menganggap Wondershaper mengambil keuntungan dari itu.

Jika Anda ingin opsi lain selain Wondershaper pastikan Anda melihat shorewall atau pyshape .

Shorewall cukup matang dan keseimbangan yang baik antara fleksibilitas, kekuatan, dan kesederhanaan.

Tidak masuk akal
sumber
4

Wondershaper dapat melakukan keajaiban, dan cukup mudah untuk diatur. Selain itu, Anda dapat menemukan beberapa program userland untuk melakukan itu. Di Linux ada Trickle , mungkin ada yang setara untuk Windows.

Tapi sungguh, Anda ingin traffic shaping - orang akan lupa untuk menjalankan program, dll. Hanya membatasi unggahan menjadi sedikit kurang dari kapasitas penuh Anda mungkin akan memberi Anda banyak manfaat.

alex
sumber
1
Masalah utama yang saya miliki dengan pembentukan lalu lintas adalah bahwa AFAIK tidak perlu menunggu untuk membedakan unggahan file melalui SFTP / SCP dari sesi SSH interaktif. Saya ingin memprioritaskan sesi SSH interaktif saya, tetapi melakukan itu juga akan memprioritaskan unggahan saya, mengalahkan tujuannya: /
davr
2
Saya percaya ssh membedakan penggunaan interaktif (ssh) dari non-interaktif (scp / sftp) dengan menggunakan header TOS TCP / IP, dan wonderershaper menggunakannya.
alex
Sayangnya baik Putty (klien SSH interaktif) maupun Filezilla (mentransfer file klien SFTP) tidak mengatur flag TOS TCP / IP. Jadi firewall saya tidak dapat membedakannya.
davr
Wondershaper juga berusia 8 tahun ... sepertinya selamanya dalam waktu internet.
davr
2

Lihatlah konrate di halaman iptables (8). Anda dapat mencocokkan tingkat koneksi dan memperlambat koneksi yang mengunggah terlalu cepat dengan memasukkannya ke kelas tc yang sesuai atau drop atau tarpit atau apa pun yang cocok untuk Anda.

Aleksandar Ivanisevic
sumber
1

Pernahkah Anda berpikir untuk mengatur proxy Squid terbalik dan mengatur penundaan-kolam ? Anda juga bisa melakukan ini dengan arahan batas iptables.

Satu masalah yang saya miliki dengan permintaan Anda adalah tampaknya Anda ingin mulai membatasi kecepatan transfer koneksi yang sudah ada yang akan sangat sulit untuk dilakukan karena semua yang dapat saya pikirkan adalah ingin mulai beroperasi pada koneksi baru, dan akan membuat koneksi yang ada berjalan.

Saya harus setuju dengan alex bahwa Anda mungkin akan memerlukan semacam pembentuk lalu lintas, yang ingin Anda lihat adalah paket per detik karena shell interaktif akan memiliki nilai yang jauh lebih kecil daripada transfer file sederhana.

d34dh0r53
sumber