Bii a ṣe le Fi opin si Lilo Bandiwidi Nẹtiwọọki ni Lainos Lilo Trickle


Njẹ o ti dojukọ awọn ipo nibiti ohun elo kan ṣe jẹ gaba lori gbogbo bandiwidi nẹtiwọọki rẹ? Ti o ba ti wa ninu ipo kan nibiti ohun elo kan jẹ gbogbo ijabọ rẹ, lẹhinna o yoo ni idiyele ipa ti ohun elo apẹrẹ bandwidth trickle.

Boya o jẹ abojuto eto tabi olumulo Linux kan, o nilo lati kọ bi o ṣe le ṣakoso ikojọpọ ati awọn iyara igbasilẹ fun awọn ohun elo lati rii daju pe bandiwidi nẹtiwọọki rẹ ko jo nipasẹ ohun elo kan.

[O tun le fẹran: Awọn irinṣẹ Abojuto Bandwidth Wulo 16 si Itupalẹ Lilo Nẹtiwọọki ni Lainos]

Kini Trickle?

Trickle jẹ ọpa apẹrẹ bandiwidi nẹtiwọọki kan ti o fun wa laaye lati ṣakoso ikojọpọ ati awọn iyara igbasilẹ ti awọn ohun elo lati le ṣe idiwọ eyikeyi ọkan ninu wọn lati hog gbogbo (tabi pupọ julọ) ti bandiwidi ti o wa.

Ni awọn ọrọ diẹ, ẹtan jẹ ki o ṣakoso iye owo ijabọ nẹtiwọọki lori ipilẹ ohun elo kan, ni ilodisi iṣakoso olumulo kọọkan, eyiti o jẹ apẹẹrẹ Ayebaye ti ṣiṣapẹrẹ bandiwidi ni agbegbe olupin olupin kan, ati pe o ṣee ṣe iṣeto ti a wa siwaju sii faramọ pẹlu.

Bawo ni Ẹtan Ṣiṣẹ?

Ni afikun, ẹtan kan le ṣe iranlọwọ fun wa lati ṣalaye awọn ayo lori ipilẹ ohun elo kan nitori pe nigbati a ti ṣeto awọn ifilelẹ lọpọ fun gbogbo eto, awọn ohun elo ayo yoo tun gba bandiwidi diẹ sii laifọwọyi.

Lati ṣaṣepari iṣẹ yii, ẹtan naa ṣeto awọn opin ijabọ si ọna eyiti a fi ranṣẹ data si ati gba lati, awọn iho nipa lilo awọn asopọ TCP. A gbọdọ ṣe akiyesi pe, miiran ju awọn oṣuwọn gbigbe data lọ, ẹtan ko ni yipada ni eyikeyi ọna ihuwasi ti ilana ti o n ṣe ni eyikeyi akoko ti a fifun.

Kini Ko le Trickle ṣe?

Iwọn aropin nikan, nitorinaa lati sọ, ni pe ẹtan kii yoo ṣiṣẹ pẹlu awọn ohun elo ti o ni asopọ pẹlu iṣiro tabi awọn alakomeji pẹlu awọn ohun elo SUID tabi SGID ti a ṣeto nitori o nlo isopọ agbara ati ikojọpọ lati fi ara rẹ si laarin ilana apẹrẹ ati iho isopọ nẹtiwọọki rẹ. Trickle lẹhinna ṣiṣẹ bi aṣoju laarin awọn paati sọfitiwia meji wọnyi.

Niwọn igba ti ẹtan ko nilo awọn anfani superuser lati le ṣiṣẹ, awọn olumulo le ṣeto awọn opin ijabọ ara wọn. Niwọn bi eyi ko le jẹ wuni, a yoo ṣawari bi a ṣe le ṣeto awọn ifilelẹ apapọ ti awọn olumulo eto ko le kọja. Ni awọn ọrọ miiran, awọn olumulo yoo tun ni anfani lati ṣakoso awọn oṣuwọn ijabọ wọn, ṣugbọn nigbagbogbo laarin awọn aala ti o ṣeto nipasẹ olutọju eto.

Ninu àpilẹkọ yii, a yoo ṣalaye bi a ṣe le fi opin si bandiwidi nẹtiwọọki ti awọn ohun elo lo ninu olupin Linux kan pẹlu ẹtan kan.

Lati ṣe agbejade ijabọ ti o yẹ, a yoo lo ncftpput ati ncftpget (awọn irinṣẹ mejeeji wa nipa fifi ncftp sori ẹrọ) lori alabara (CentOS server - dev1: 192.168.0.17), ati vsftpd lori olupin (Debian - dev2: 192.168.0.15) fun awọn idi ifihan. Awọn itọnisọna kanna tun ṣiṣẹ lori RedHat, Fedora ati awọn eto ipilẹ Ubuntu.

Fifi ncftp ati vsftpd sori Linux

1. Fun RHEL/CentOS 8/7, mu ibi ipamọ EPEL ṣiṣẹ. Awọn idii Afikun fun Lainos Idawọlẹ (EPEL) jẹ ibi ipamọ ti didara ọfẹ ọfẹ ati sọfitiwia orisun orisun ti itọju nipasẹ iṣẹ Fedora ati pe o jẹ ibaramu 100% pẹlu awọn fifọ rẹ, bii Red Hat Enterprise Linux ati CentOS. Mejeeji ẹtan ati ncftp ni a ṣe wa lati ibi ipamọ yii.

2. Fi ncftp sii bi atẹle:

# yum update && sudo yum install ncftp		[On RedHat based systems]
# aptitude update && aptitude install ncftp	[On Debian based systems]	

3. Ṣeto olupin FTP kan ni olupin lọtọ. Jọwọ ṣe akiyesi pe botilẹjẹpe FTP ko ni aabo l’ẹda, o tun nlo ni lilo pupọ ni awọn ọran nigbati aabo ko ba nilo lati gbejade tabi gbigba awọn faili lati ayelujara.

A nlo rẹ ninu nkan yii lati ṣe apejuwe awọn ẹbun ti ẹtan ati nitori pe o fihan awọn oṣuwọn gbigbe ni imurasilẹ lori alabara, ati pe a yoo fi ijiroro silẹ boya o yẹ tabi ko yẹ ki o lo fun ọjọ ati akoko miiran.

# yum update && yum install vsftpd 		[On RedHat based systems]
# apt update && apt install vsftpd 	[On Debian based systems]

Bayi, satunkọ faili /etc/vsftpd/vsftpd.conf lori olupin FTP gẹgẹbi atẹle:

$ sudo nano /etc/vsftpd/vsftpd.conf
OR
$ sudo /etc/vsftpd.conf

Ṣe awọn ayipada wọnyi:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

Lẹhin eyini, rii daju lati bẹrẹ vsftpd fun igba lọwọlọwọ rẹ ati lati muu ṣiṣẹ fun ibẹrẹ aifọwọyi lori awọn bata orunkun iwaju:

# systemctl start vsftpd 		[For systemd-based systems]
# systemctl enable vsftpd
# service vsftpd start 			[For init-based systems]
# chkconfig vsftpd on

4. Ti o ba yan lati ṣeto olupin FTP ni droplet CentOS/RHEL pẹlu awọn bọtini SSH fun iraye si ọna jijin, iwọ yoo nilo akọọlẹ olumulo ti o ni aabo ọrọigbaniwọle pẹlu itọsọna ti o yẹ ati awọn igbanilaaye faili fun ikojọpọ ati gbigba akoonu ti o fẹ OUTSIDE ile gbongbo ilana.

Lẹhinna o le lọ kiri si itọsọna ile rẹ nipa titẹ URL atẹle ni aṣawakiri rẹ. Window iwọle kan yoo gbe jade ni kiakia ti o fun iroyin olumulo to wulo ati ọrọ igbaniwọle lori olupin FTP.

ftp://192.168.0.15

Ti ijẹrisi naa ba ṣaṣeyọri, iwọ yoo wo awọn akoonu ti itọsọna ile rẹ. Nigbamii ninu ẹkọ yii, iwọ yoo ni anfani lati sọ oju-iwe yẹn lati han awọn faili ti o ti gbejade lakoko awọn igbesẹ iṣaaju.

Bii o ṣe le Fi Trickle sori Linux

Bayi fi sori ẹrọ ẹtan nipasẹ yum tabi apt.

Lati rii daju fifi sori aṣeyọri, o ka iṣe ti o dara lati rii daju pe awọn idii ti a fi sori ẹrọ lọwọlọwọ jẹ imudojuiwọn (lilo imudojuiwọn yum) ṣaaju fifi ọpa funrararẹ.

# yum -y update && yum install trickle 		        [On RedHat based systems]
# apt -y update && apt install trickle 	[On Debian based systems]

Daju boya ẹtan yoo ṣiṣẹ pẹlu alakomeji ti o fẹ. Gẹgẹbi a ti ṣalaye ni iṣaaju, ẹtan yoo ṣiṣẹ nikan pẹlu awọn binaries nipa lilo agbara tabi awọn ikawe ti a pin. Lati ṣayẹwo boya a le lo ọpa yii pẹlu ohun elo kan, a le lo iwulo ldd ti a mọ daradara, nibiti ldd duro fun atokọ awọn igbẹkẹle atokọ.

Ni pataki, a yoo wa niwaju glibc (ile-ikawe GNU C) ninu atokọ ti awọn igbẹkẹle ti o ni agbara ti eyikeyi eto ti a fun nitori pe o jẹ deede ile-ikawe ti o ṣalaye awọn ipe eto ti o ni ipa ninu ibaraẹnisọrọ nipasẹ awọn iho.

Ṣiṣe aṣẹ wọnyi si alakomeji ti a fun lati rii boya a le lo ẹtan lati ṣe apẹrẹ bandiwidi rẹ:

# ldd $(which [binary]) | grep libc.so

Fun apere,

# ldd $(which ncftp) | grep libc.so

ẹniti o wu jade jẹ:

# libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)

Okun laarin awọn akọmọ ninu iṣẹjade le yipada lati eto si eto ati paapaa laarin awọn ṣiṣiṣẹ atẹle ti aṣẹ kanna nitori o ṣe aṣoju adirẹsi fifuye ti ile-ikawe ni iranti ti ara.

Ti aṣẹ ti o wa loke ko ba da awọn abajade eyikeyi pada, o tumọ si pe alakomeji ti o ti ṣiṣẹ lodi si ko lo libc, ati nitorinaa a ko le lo ẹtan bi apẹrẹ bandwidth ninu ọran naa.

Kọ ẹkọ Bii o ṣe le Lo Ẹtan ni Linux

Lilo ipilẹ julọ ti ẹtan wa ni ipo iduro. Lilo ọna yii, a lo ẹtan lati ṣafihan asọye gbigba lati ayelujara ati awọn iyara ikojọpọ ti ohun elo ti a fifun. Gẹgẹbi a ti ṣalaye ni iṣaaju, fun idi kukuru, a yoo lo ohun elo kanna fun gbigba lati ayelujara ati gbe awọn idanwo wọle.

A yoo ṣe afiwe gbigba lati ayelujara ati awọn iyara ikojọpọ pẹlu ati laisi lilo ẹtan. Aṣayan -d tọka iyara gbigba lati ayelujara ni KB/s, lakoko ti asia -u sọ fun ẹtan lati ṣe idinwo iyara ikojọpọ nipasẹ ẹya kanna. Ni afikun, a yoo lo Flag -s , eyiti o ṣalaye pe ẹtan yẹ ki o ṣiṣẹ ni ipo iduro.

Iṣeduro ipilẹ lati ṣiṣẹ ẹtan ni ipo adashe jẹ atẹle yii:

# trickle -s -d [download rate in KB/s] -u [upload rate in KB/s]

Lati le ṣe awọn apẹẹrẹ wọnyi ni tirẹ, rii daju pe o ni ẹtan ati ncftp ti a fi sori ẹrọ ẹrọ alabara (192.168.0.17 ninu ọran mi).

A n lo faili PDF Awọn ipilẹ Lainos-kaakiri ọfẹ (ti o wa lati ibi) fun awọn idanwo wọnyi.

O le kọkọ gba faili yii si itọsọna iṣẹ lọwọlọwọ rẹ pẹlu aṣẹ atẹle:

# wget http://linux-training.be/files/books/LinuxFun.pdf 

Ilana lati gbe faili kan si olupin FTP wa laisi ẹtan jẹ bi atẹle:

# ncftpput -u username -p password 192.168.0.15  /remote_directory local-filename 

Nibo/remote_directory jẹ ọna ti itọsọna ikojọpọ ti o ni ibatan si ile orukọ olumulo, ati orukọ-faili agbegbe jẹ faili kan ninu ilana iṣẹ lọwọlọwọ rẹ.

Ni pataki, laisi ẹtan a gba iyara ikojọpọ giga ti 52.02 MB/s (jọwọ ṣe akiyesi pe eyi kii ṣe iyara ikojọpọ apapọ gidi, ṣugbọn oke giga ti o bẹrẹ lẹsẹkẹsẹ), ati pe faili naa ti gbe soke fere lesekese:

# ncftpput -u username -p password 192.168.0.15  /testdir LinuxFun.pdf 

Ijade:

LinuxFun.pdf:                                        	2.79 MB   52.02 MB/s

Pẹlu ọgbọn, a yoo ṣe iwọn oṣuwọn gbigbe gbigbe ni 5 KB/s. Ṣaaju ki o to ṣe ikojọpọ faili fun akoko keji, a nilo lati paarẹ lati inu itọsọna irin-ajo; bibẹẹkọ, ncftp yoo sọ fun wa pe faili ni itọsọna irin-ajo jẹ kanna ti a n gbiyanju lati gbe si, ati pe kii yoo ṣe gbigbe:

# rm /absolute/path/to/destination/directory/LinuxFun.pdf 

Lẹhinna:

# trickle -s -u 5 ncftpput -u username -p password 111.111.111.111 /testdir LinuxFun.pdf 

Ijade:

LinuxFun.pdf:                                        	2.79 MB	4.94 kB/s

Ninu apẹẹrẹ loke, a le rii pe iyara ikojọpọ apapọ silẹ si ~ 5 KB/s.

Ni akọkọ, ranti lati pa PDF kuro ninu itọsọna orisun atilẹba:

# rm /absolute/path/to/source/directory/LinuxFun.pdf 

Jọwọ ṣe akiyesi pe awọn ọran atẹle yoo ṣe igbasilẹ faili latọna jijin si itọsọna lọwọlọwọ ninu ẹrọ alabara. Otitọ yii jẹ itọkasi nipasẹ akoko (‘.‘) Ti o han lẹhin adirẹsi IP ti olupin FTP.

Laisi ẹtan:

# ncftpget -u username -p  password 111.111.111.111 . /testdir/LinuxFun.pdf 

Ijade:

LinuxFun.pdf:                                        	2.79 MB  260.53 MB/s

Pẹlu ẹtan, idinwo iyara igbasilẹ ni 20 KB/s:

# trickle -s -d 30 ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf 

Ijade:

LinuxFun.pdf:                                        	2.79 MB   17.76 kB/s

Trickle Nṣiṣẹ ni Ipo abojuto [ti ko ṣakoso]

Trickle tun le ṣiṣẹ ni ipo ainidi, ni atẹle atẹle awọn ipele ti a ṣalaye ninu /etc/trickled.conf. Faili yii ṣalaye bi o ṣe tan (daemon) huwa ati lati ṣakoso ẹtan.

Ni afikun, ti a ba fẹ ṣeto awọn eto kariaye lati ṣee lo, lapapọ, nipasẹ gbogbo awọn ohun elo, a yoo nilo lati lo aṣẹ ti o tan. Aṣẹ yii n ṣiṣẹ daemon ati gba wa laaye lati ṣalaye gbigba lati ayelujara ati awọn aala ikojọpọ ti yoo pin nipasẹ gbogbo awọn ohun elo ṣiṣe nipasẹ ẹtan laisi a nilo lati ṣalaye awọn aala nigbakugba.

Fun apẹẹrẹ, nṣiṣẹ:

# trickled -d 50 -u 10

Yoo fa pe gbigba lati ayelujara ati awọn iyara ikojọpọ ti eyikeyi ohun elo ti o ṣiṣẹ nipasẹ ẹtan yoo ni opin si 30 KB/s ati 10 KB/s, lẹsẹsẹ.

Jọwọ ṣe akiyesi pe o le ṣayẹwo ni igbakugba boya boya ẹtan ti nṣiṣẹ ati pẹlu awọn ariyanjiyan wo ni:

# ps -ef | grep trickled | grep -v grep

Ijade:

root 	16475 	1  0 Dec24 ?    	00:00:04 trickled -d 50 -u 10

Ninu apẹẹrẹ yii a yoo lo fidio pinpin kaakiri “Oun ni ẹbun”, wa fun igbasilẹ lati ọna asopọ yii.

A yoo kọkọ gba faili yii si itọsọna iṣẹ lọwọlọwọ rẹ pẹlu aṣẹ atẹle:

# wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Ni akọkọ, a yoo bẹrẹ daemon ẹlẹtan pẹlu aṣẹ ti a ṣe akojọ loke:

# trickled -d 30 -u 10

Laisi ẹtan:

# ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Ijade:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB   36.31 MB/s

Pẹlu ọgbọn:

# trickle ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Ijade:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB	9.51 kB/s

Bi a ṣe le rii ninu iṣelọpọ loke, iwọn gbigbe ikojọpọ silẹ si ~ 10 KB/s.

Gẹgẹ bi Apẹẹrẹ 2, a yoo ṣe igbasilẹ faili si itọsọna iṣẹ lọwọlọwọ.

Laisi ẹtan:

# ncftpget -u username -p password 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Ijade:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB  108.34 MB/s

Pẹlu ọgbọn:

# trickle ncftpget -u username -p password 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Ijade:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB   29.28 kB/s

Eyi ti o wa ni ibamu pẹlu opin igbasilẹ ti a ṣeto tẹlẹ (30 KB/s).

Akiyesi: Ni kete ti a ti bẹrẹ daemon, ko si ye lati ṣeto awọn ifilelẹ lọkọọkan fun ohun elo kọọkan ti o nlo ẹtan.

Gẹgẹ bi a ti mẹnuba tẹlẹ, ẹnikan le ṣe akanṣe iwọn bandwidth trickle ti ẹtan nipasẹ trickled.conf. Apakan aṣoju ninu faili yii ni awọn atẹle:

[service]
Priority = <value>
Time-Smoothing = <value>
Length-Smoothing = <value>

Nibo,

  1. [iṣẹ] tọkasi orukọ ohun elo naa ti lilo bandwidth a pinnu lati ṣe apẹrẹ.
  2. Ni ayo gba wa laaye lati ṣọkasi iṣẹ kan lati ni ibatan ti o ga julọ si omiiran, nitorinaa ko gba ohun elo kan laaye lati hog gbogbo bandiwidi eyiti daemon n ṣakoso. Nọmba ti isalẹ, iye bandwidth diẹ sii ti a sọtọ si [iṣẹ].
  3. Sisun-akoko <. Awọn iye ti o kere ju (ohunkan laarin sakani ti 0.1 - 1s) jẹ apẹrẹ fun awọn ohun elo ibaraenisọrọ ati pe yoo mu abajade igba diẹ sii (dan) lakoko ti awọn iye ti o tobi diẹ (1 - 10 s) dara julọ fun awọn ohun elo ti o nilo gbigbe pupọ. Ti ko ba ṣe apejuwe iye kan, aiyipada (5 s) ti lo.
  4. Gigun-Sisọ ni KB]: imọran naa jẹ kanna bii ti Sisọ-Akoko, ṣugbọn da lori gigun iṣẹ I/O. Ti ko ba ṣe apejuwe iye kan, aiyipada (10 KB) ti lo.

Yiyipada awọn iye didasilẹ yoo tumọ si ohun elo ti a ṣalaye nipasẹ [iṣẹ] nipa lilo awọn oṣuwọn gbigbe laarin aarin kan dipo iye ti o wa titi. Laanu, ko si agbekalẹ lati ṣe iṣiro awọn ifilelẹ isalẹ ati oke ti aarin yii bi o ṣe da lori pataki ti oju iṣẹlẹ ọran kọọkan.

Atẹle yii jẹ faili ayẹwo ti o ni ẹtan.conf ni alabara CentOS 7 (192.168.0.17):

[ssh]
Priority = 1
Time-Smoothing = 0.1
Length-Smoothing = 2

[ftp]
Priority = 2
Time-Smoothing = 1
Length-Smoothing = 3

Lilo iṣeto yii, ẹtan yoo ṣaju awọn isopọ SSH lori awọn gbigbe FTP. Akiyesi pe ilana ibaraenisepo, bii SSH, nlo awọn iye mimu didan akoko diẹ, lakoko ti iṣẹ kan ti o ṣe awọn gbigbe data lọpọlọpọ (FTP) nlo iye ti o pọ julọ.

Awọn iye didasilẹ jẹ iduro fun gbigba lati ayelujara ati awọn iyara ikojọpọ ninu apẹẹrẹ wa tẹlẹ ti ko ni ibamu pẹlu iye deede ti a ti ṣalaye nipasẹ daemon ẹlẹtan ṣugbọn gbigbe ni aarin aaye to sunmọ.

[O tun le fẹran: Bii o ṣe le ni ifipamo ati Ṣiṣe Ṣiṣe Oluṣakoso OpenSSH]

Ipari

Ninu nkan yii a ti ṣawari bi a ṣe le fi opin si bandiwidi ti awọn ohun elo lo nipa lilo ẹtan lori awọn pinpin orisun Fedora ati awọn itọsẹ Debian /. Awọn ọran lilo miiran ti o ṣee ṣe pẹlu, ṣugbọn kii ṣe opin si:

  • Idinwo iyara gbigba lati ayelujara nipasẹ iwulo eto bii alabara ṣiṣan, fun apẹẹrẹ.
  • Idinwo iyara eyiti eto rẹ le ṣe imudojuiwọn nipasẹ\"aptitude \", ti o ba wa ninu eto orisun Debian), eto iṣakoso package.
  • Ti olupin rẹ ba ṣẹlẹ lati wa lẹhin aṣoju tabi ogiriina (tabi jẹ aṣoju tabi ogiriina funrararẹ), o le lo ọgbọn lati ṣeto awọn idiwọn lori gbigba lati ayelujara ati ikojọpọ tabi iyara ibaraẹnisọrọ pẹlu awọn alabara tabi ita.

Awọn ibeere ati awọn asọye ni a gba julọ. Ni idaniloju lati lo fọọmu ti o wa ni isalẹ lati firanṣẹ ọna wa.