Cara Mengehadkan Penggunaan Jalur Jalur Rangkaian di Linux Menggunakan Trickle

Cara Mengehadkan Penggunaan Jalur Jalur Rangkaian di Linux Menggunakan Trickle

Pernahkah anda menghadapi situasi di mana satu aplikasi menguasai jalur lebar semua rangkaian anda? Sekiranya anda pernah berada dalam situasi di mana satu aplikasi memakan semua trafik anda, maka anda akan menghargai peranan aplikasi pembentuk jalur lebar melumpuhkan.

Sama ada anda seorang pentadbir sistem atau hanya a Pengguna Linux, Anda perlu belajar bagaimana mengawal kelajuan muat naik dan memuat turun untuk aplikasi untuk memastikan jalur lebar rangkaian anda tidak dibakar oleh satu aplikasi.

[Anda mungkin juga suka: 16 alat pemantauan jalur lebar yang berguna untuk menganalisis penggunaan rangkaian di Linux]

Apa yang meleleh?

Meleleh adalah alat pembentuk jalur lebar rangkaian yang membolehkan kami menguruskan muat naik dan memuat turun kelajuan aplikasi untuk mengelakkan mana -mana satu daripada mereka untuk memeluk semua (atau kebanyakan) lebar jalur yang tersedia.

Dalam beberapa perkataan, Trickle membolehkan anda mengawal kadar trafik rangkaian secara per-permohonan, berbanding dengan kawalan per-pengguna, yang merupakan contoh klasik jalur lebar yang membentuk dalam persekitaran pelayan klien, dan mungkin persediaan kita lebih banyak biasa dengan.

Bagaimana kerja meleleh?

Di samping itu, peletasan dapat membantu kita untuk menentukan keutamaan secara per-permohonan supaya apabila had keseluruhan telah ditetapkan untuk keseluruhan sistem, aplikasi keutamaan masih akan mendapat lebih banyak jalur lebar secara automatik.

Untuk melaksanakan tugas ini, peletasan menetapkan had lalu lintas ke cara data yang dihantar dan diterima dari, soket menggunakan sambungan TCP. Kita mesti ambil perhatian bahawa, selain daripada kadar pemindahan data, meleleh tidak mengubah suai dalam apa jua cara tingkah laku proses yang dibentuk pada bila -bila masa.

Apa yang Tidak Boleh Meletupkan?

Satu -satunya batasan, jadi untuk bercakap, adalah bahawa meleleh tidak akan berfungsi dengan aplikasi atau binari yang berkaitan dengan statik dengan Suid atau Sgid bit ditetapkan kerana ia menggunakan menghubungkan dan memuatkan dinamik untuk meletakkan dirinya di antara proses berbentuk dan soket rangkaian yang berkaitan. Tangkapan kemudian bertindak sebagai proksi antara kedua -dua komponen perisian ini.

Oleh kerana Trickle tidak memerlukan keistimewaan Superuser untuk dijalankan, pengguna boleh menetapkan had lalu lintas mereka sendiri. Oleh kerana ini mungkin tidak diingini, kami akan meneroka bagaimana untuk menetapkan had keseluruhan yang pengguna sistem tidak dapat melebihi. Dengan kata lain, pengguna masih dapat menguruskan kadar lalu lintas mereka, tetapi selalu berada di dalam sempadan yang ditetapkan oleh pentadbir sistem.

Persekitaran ujian

Dalam artikel ini, kami akan menerangkan cara mengehadkan jalur lebar rangkaian yang digunakan oleh aplikasi dalam pelayan Linux dengan meleleh.

Untuk menjana trafik yang diperlukan, kami akan menggunakan ncftpput dan ncftpget (Kedua -dua alat boleh didapati dengan memasang NCFTP) pada pelanggan (Centos pelayan - dev1: 192.168.0.17), dan vsftpd di pelayan (Debian - Dev2: 192.168.0.15) untuk tujuan demonstrasi. Arahan yang sama juga berfungsi Topi merah, Fedora dan sistem berasaskan Ubuntu.

Memasang NCFTP dan VSFTPD di Linux

1. Untuk RHEL/CENTOS 8/7, Dayakan repositori Epel. Pakej tambahan untuk Enterprise Linux (Epel) adalah repositori perisian bebas dan sumber terbuka yang berkualiti tinggi yang dikendalikan oleh projek fedora dan 100% serasi dengan spin-spinnya, seperti Red Hat Enterprise Linux dan Centos. Kedua -duanya meleleh dan NCFTP disediakan dari repositori ini.

2. Pasang NCFTP seperti berikut:

# yum kemas kini && sudo yum pasang ncftp [pada sistem berasaskan redhat] # kemas kini aptitud & aptitude memasang ncftp [pada sistem berasaskan debian] 

3. Sediakan pelayan FTP di pelayan yang berasingan. Sila ambil perhatian bahawa walaupun FTP tidak semestinya tidak selamat, ia masih digunakan secara meluas dalam kes apabila keselamatan dalam memuat naik atau memuat turun fail tidak diperlukan.

Kami menggunakannya dalam artikel ini untuk menggambarkan kelebihan menetap dan kerana ia menunjukkan kadar pemindahan di stdout pada pelanggan, dan kami akan meninggalkan perbincangan sama ada ia sepatutnya atau tidak boleh digunakan untuk tarikh dan masa yang lain.

# yum update && yum Pasang vsftpd [pada sistem berasaskan redhat] # apt update && apt install vsftpd [on debian bosed wates] 

Sekarang, edit /etc/vsftpd/vsftpd.Conf Fail pada pelayan FTP seperti berikut:

$ sudo nano/etc/vsftpd/vsftpd.conf atau $ sudo /etc /vsftpd.Conf 

Buat perubahan berikut:

anonymous_enable = no local_enable = ya chroot_local_user = ya membenarkan_writeable_chroot = ya 

Selepas itu, pastikan untuk memulakan VSFTPD untuk sesi semasa anda dan untuk membolehkannya untuk permulaan automatik pada butir masa depan:

# Systemctl Mula VSFTPD [untuk sistem berasaskan SystemD] # SystemCTL Dayakan VSFTPD # Service VSFTPD Mula [untuk sistem berasaskan INIT] # chkconfig vsftpd pada 

4. Sekiranya anda memilih untuk menyediakan pelayan FTP di a Centos/RHEL Titisan dengan kekunci SSH untuk akses jauh, anda memerlukan akaun pengguna yang dilindungi kata laluan dengan direktori dan kebenaran fail yang sesuai untuk memuat naik dan memuat turun kandungan yang dikehendaki di luar direktori rumah Root.

Anda kemudian boleh melayari direktori rumah anda dengan memasukkan url berikut di penyemak imbas anda. Tetingkap log masuk akan muncul mendorong anda untuk akaun pengguna dan kata laluan yang sah di pelayan FTP.

ftp: // 192.168.0.15 

Sekiranya pengesahan berjaya, anda akan melihat kandungan direktori rumah anda. Kemudian dalam tutorial ini, anda akan dapat menyegarkan halaman itu untuk memaparkan fail yang telah dimuat naik semasa langkah -langkah sebelumnya.

Pokok Direktori FTP

Cara memasang shickle di linux

Sekarang pasang meleleh melalui yum atau Apt.

Untuk memastikan pemasangan yang berjaya, ia dianggap sebagai amalan yang baik untuk memastikan pakej yang dipasang sekarang terkini (menggunakan kemas kini yum) sebelum memasang alat itu sendiri.

# yum -y update && yum Pasang trickle [on redhat berasaskan sistem] # apt -y update & & apt install trickle [on debian berasaskan sistem] 

Sahkan sama ada STLLLE akan berfungsi dengan binari yang dikehendaki. Seperti yang dijelaskan sebelum ini, The Trickle hanya akan berfungsi dengan binari menggunakan perpustakaan yang dinamik atau dikongsi. Untuk mengesahkan sama ada kita boleh menggunakan alat ini dengan aplikasi tertentu, kita boleh menggunakan yang terkenal ldd utiliti, di mana ldd bermaksud senarai kebergantungan dinamik.

Khususnya, kita akan mencari kehadiran glibc (Perpustakaan GNU C) dalam senarai kebergantungan dinamik dari mana -mana program yang diberikan kerana tepatnya perpustakaan yang mentakrifkan panggilan sistem yang terlibat dalam komunikasi melalui soket.

Jalankan perintah berikut terhadap binari yang diberikan untuk melihat jika meleleh boleh digunakan untuk membentuk jalur lebarnya:

# ldd $ (yang [binari]) | Grep Libc.Jadi 

Sebagai contoh,

# ldd $ (yang ncftp) | Grep Libc.Jadi 

output yang:

# libc.Jadi.6 => /lib64 /libc.Jadi.6 (0x00007effff2e6c000) 

Rentetan antara kurungan dalam output mungkin berubah dari sistem ke sistem dan bahkan antara larian berikutnya dari perintah yang sama kerana ia mewakili alamat beban perpustakaan dalam memori fizikal.

Sekiranya perintah di atas tidak mengembalikan hasil, ini bermakna bahawa binari yang dilancarkan tidak digunakan libc, dan dengan itu meleleh tidak boleh digunakan sebagai pembentuk jalur lebar dalam kes itu.

Ketahui Cara Menggunakan Meletik di Linux

Penggunaan yang paling asas dalam menetap adalah dalam mod yang berdiri sendiri. Menggunakan pendekatan ini, Trickle digunakan untuk menentukan secara jelas muat turun dan memuat naik kelajuan aplikasi yang diberikan. Seperti yang dijelaskan sebelum ini, demi keringkasan, kami akan menggunakan aplikasi yang sama untuk memuat turun dan memuat naik ujian.

Menjalankan Trickle dalam Mod Berdiri

Kami akan membandingkan kelajuan muat turun dan memuat naik dengan dan tanpa menggunakan stabil. The -d pilihan menunjukkan kelajuan muat turun dalam kb/s, sementara -u Bendera memberitahu Trickle untuk mengehadkan kelajuan muat naik oleh unit yang sama. Di samping itu, kami akan menggunakan -s Bendera, yang menentukan bahawa pelik harus berjalan dalam mod mandiri.

Sintaks asas untuk berjalan menetas dalam mod mandiri adalah seperti berikut:

# Trickle -S -D [Kadar muat turun dalam kb/s] -u [Kadar muat naik dalam kb/s] 

Untuk melaksanakan contoh -contoh berikut sendiri, pastikan ada meleleh dan NCFTP dipasang pada mesin klien (192.168.0.17 dalam kes saya).

Contoh 1: memuat naik 2.Fail pdf 8 mb dengan dan tanpa meleleh.

Kami menggunakan yang boleh diedarkan secara bebas Asas Linux Fail PDF (tersedia dari sini) untuk ujian berikut.

Pada mulanya anda boleh memuat turun fail ini ke direktori kerja semasa anda dengan arahan berikut:

# wget http: // linux-training.Be/Fail/Books/Linuxfun.pdf 

Sintaks untuk memuat naik fail ke pelayan FTP kami tanpa menetes adalah seperti berikut:

# ncftpput -u nama pengguna -p kata laluan 192.168.0.15 /Remote_Directory Local-Filename 

Di mana /remote_directory adalah jalan direktori muat naik berbanding rumah nama pengguna, dan nama-nama tempatan adalah fail dalam direktori kerja semasa anda.

Khususnya, tanpa meleleh, kami mendapat kelajuan muat naik puncak 52.02 mb/s (Sila ambil perhatian bahawa ini bukan kelajuan muat naik purata sebenar, tetapi puncak permulaan segera), dan fail itu dimuat naik hampir dengan serta -merta:

# ncftpput -u nama pengguna -p kata laluan 192.168.0.15 /testdir linuxfun.pdf 

Pengeluaran:

Linuxfun.PDF: 2.79 MB 52.02 mb/s 

Dengan meleleh, kami akan mengehadkan kadar pemindahan muat naik di 5 kb/s. Sebelum memuat naik fail untuk kali kedua, kita perlu memadamkannya dari direktori destinasi; jika tidak, NCFTP akan memaklumkan kepada kami bahawa fail di direktori destinasi adalah sama yang kami cuba muat naik, dan tidak akan melakukan pemindahan:

# rm/mutlak/laluan/ke/destinasi/direktori/linuxfun.pdf 

Kemudian:

# STIVLE -S -U 5 NCFTPPUT -U Nama Pengguna -P Kata Laluan 111.111.111.111 /testdir linuxfun.pdf 

Pengeluaran:

Linuxfun.PDF: 2.79 MB 4.94 kb/s 

Dalam contoh di atas, kita dapat melihat bahawa kelajuan muat naik purata jatuh ke ~ 5 kb/s.

Contoh 2: memuat turun 2 yang sama.Fail pdf 8 mb dengan dan tanpa meleleh

Pertama, ingatlah untuk memadam PDF dari direktori sumber asal:

# rm/mutlak/laluan/ke/sumber/direktori/linuxfun.pdf 

Sila ambil perhatian bahawa kes berikut akan memuat turun fail jauh ke direktori semasa dalam mesin klien. Fakta ini ditunjukkan oleh tempoh ('.') yang muncul selepas alamat IP pelayan FTP.

Tanpa meleleh:

# ncftpget -u nama pengguna -p kata laluan 111.111.111.111 . /testdir/linuxfun.pdf 

Pengeluaran:

Linuxfun.PDF: 2.79 MB 260.53 mb/s 

Dengan meleleh, mengehadkan kelajuan muat turun di 20 kb/s:

# Trickle -S -D 30 NCFTPGET -U Nama Pengguna -P Kata Laluan 111.111.111.111 . /testdir/linuxfun.pdf 

Pengeluaran:

Linuxfun.PDF: 2.79 MB 17.76 kb/s 

Berlangsung dalam mod yang diawasi [Unmanaged]

Trickle juga boleh dijalankan dalam mod yang tidak diurus, berikutan satu siri parameter yang ditakrifkan dalam /etc/trickled.Conf. Fail ini mentakrifkan betapa menelan (daemon) berkelakuan dan berjaya meleleh.

Di samping. Perintah ini menjalankan daemon dan membolehkan kami menentukan batasan muat turun dan memuat naik yang akan dikongsi oleh semua aplikasi yang berjalan melalui pelik tanpa kami perlu menentukan had setiap kali.

Sebagai contoh, berjalan:

# Trickled -D 50 -U 10 

Akan menyebabkan kelajuan muat turun dan muat naik mana -mana aplikasi yang dijalankan melalui pelipan terhad kepada 30 kb/s dan 10 kb/s, masing -masing.

Sila ambil perhatian bahawa anda boleh menyemak pada bila -bila masa sama ada Trickled sedang berjalan dan dengan apa argumen:

# ps -ef | Grep Trickled | grep -v grep 

Pengeluaran:

akar 16475 1 0 dec24 ? 00:00:04 Trickled -D 50 -U 10 
Contoh 3: Memuatkan fail MP4 19 MB ke pelayan FTP kami menggunakan dengan dan tanpa menetes.

Dalam contoh ini kita akan menggunakan "H" yang boleh diedarkan secara bebase adalah hadiah"Video, tersedia untuk dimuat turun dari pautan ini.

Kami pada mulanya akan memuat turun fail ini ke direktori kerja semasa anda dengan arahan berikut:

# wget http: // media2.ldscdn.org/aset/mubaligh/kami-orang-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Mula -mula, kami akan memulakan daemon yang ditipu dengan arahan yang disenaraikan di atas:

# Trickled -D 30 -U 10 

Tanpa meleleh:

# ncftpput -u nama pengguna -p kata laluan 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Pengeluaran:

2014-00-1460-HE-is-the-gift-360p-eng.MP4: 18.53 MB 36.31 mb/s 

Dengan meleleh:

# Meletakkan NCFTPPUT -U Nama Pengguna -P Kata Laluan 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Pengeluaran:

2014-00-1460-HE-is-the-gift-360p-eng.MP4: 18.53 MB 9.51 kb/s 

Seperti yang dapat kita lihat dalam output di atas, kadar pemindahan muat naik jatuh ke ~ 10 kb/s.

Contoh 4: Muat turun video yang sama dengan dan tanpa meleleh

Seperti dalam Contoh 2, Kami akan memuat turun fail ke direktori kerja semasa.

Tanpa meleleh:

# ncftpget -u nama pengguna -p kata laluan 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Pengeluaran:

2014-00-1460-HE-is-the-gift-360p-eng.MP4: 18.53 MB 108.34 mb/s 

Dengan meleleh:

# menetas ncftpget -u nama pengguna -p kata laluan 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Pengeluaran:

2014-00-1460-HE-is-the-gift-360p-eng.MP4: 18.53 MB 29.28 kb/s 

Yang selaras dengan had muat turun yang ditetapkan sebelumnya (30 kb/s).

Catatan: Bahawa apabila daemon telah dimulakan, tidak perlu menetapkan had individu untuk setiap aplikasi yang menggunakan meleleh.

Seperti yang telah kami sebutkan tadi, seseorang dapat menyesuaikan jalur lebar Trickle yang membentuk melalui Trickled.Conf. Bahagian biasa dalam fail ini terdiri daripada yang berikut:

[Perkhidmatan] Keutamaan = Masa-Smoothing = Length-Smoothing =  

Di mana,

  1. [Perkhidmatan] Menunjukkan nama aplikasi yang menggunakan jalur lebar yang kami berhasrat untuk membentuk.
  2. Keutamaan membolehkan kami menentukan perkhidmatan untuk mempunyai keutamaan yang lebih tinggi berbanding dengan yang lain, oleh itu tidak membenarkan satu aplikasi untuk memeluk semua jalur lebar yang mengurus daemon. Semakin rendah jumlahnya, lebih banyak jalur lebar yang diberikan kepada [perkhidmatan].
  3. Masa yang licin [Dalam saat]: mentakrifkan dengan selang waktu apa yang ditipu akan cuba membiarkan pemindahan aplikasi dan / atau menerima data. Nilai yang lebih kecil (sesuatu antara julat 0.1 - 1s) sesuai untuk aplikasi interaktif dan akan menghasilkan sesi yang lebih berterusan (lancar) manakala nilai yang lebih besar (1 - 10 s) lebih baik untuk aplikasi yang memerlukan pemindahan pukal. Sekiranya tiada nilai ditentukan, lalai (5 s) digunakan.
  4. Panjang-smoothing [Dalam KB]: Idea ini sama seperti dalam masa yang smoothing, tetapi berdasarkan panjang operasi I/O. Sekiranya tiada nilai ditentukan, lalai (10 kb) digunakan.

Menukar nilai pelicinan akan diterjemahkan ke dalam aplikasi yang ditentukan oleh [Perkhidmatan] menggunakan kadar pemindahan dalam selang bukan nilai tetap. Malangnya, tidak ada formula untuk mengira had bawah dan atas selang ini kerana ia bergantung kepada setiap senario kes tertentu.

Berikut adalah a menetas.Conf Fail sampel dalam pelanggan CentOS 7 (192.168.0.17):

[SSH] Keutamaan = 1 Masa-Smoothing = 0.1 panjang-smoothing = 2 [ftp] keutamaan = 2 time-smoothing = 1 panjang licin = 3 

Menggunakan persediaan ini, Trickled akan mengutamakan sambungan SSH melalui pemindahan FTP. Perhatikan bahawa proses interaktif, seperti SSH, menggunakan nilai masa yang lebih kecil, sedangkan perkhidmatan yang melakukan pemindahan data pukal (FTP) menggunakan nilai yang lebih besar.

Nilai pelicinan bertanggungjawab untuk muat turun dan muat naik kelajuan dalam contoh terdahulu kami yang tidak sepadan dengan nilai tepat yang ditentukan oleh daemon yang ditipu tetapi bergerak dalam selang dekat dengannya.

[Anda mungkin juga suka: Cara Mengamankan dan Mengasaskan Pelayan OpenSSH]

Kesimpulan

Dalam artikel ini, kami telah meneroka bagaimana untuk mengehadkan jalur lebar yang digunakan oleh aplikasi menggunakan pengedaran berasaskan fedora dan derivatif berasaskan fedora. Kes penggunaan lain yang mungkin termasuk, tetapi tidak terhad kepada:

  • Mengehadkan kelajuan muat turun melalui utiliti sistem seperti wget, atau pelanggan torrent, sebagai contoh.
  • Mengehadkan kelajuan di mana sistem anda boleh dikemas kini melalui 'yum' (atau 'kebolehan', jika anda berada dalam sistem berasaskan debian), sistem pengurusan pakej.
  • Sekiranya pelayan anda berada di belakang proksi atau firewall (atau proksi atau firewall itu sendiri), anda boleh menggunakannya untuk menetapkan had pada kedua -dua muat turun dan muat naik atau kelajuan komunikasi dengan pelanggan atau luar.

Soalan dan komen paling dialu -alukan. Jangan ragu untuk menggunakan borang di bawah untuk menghantarnya.