![Vytvořte více IP adres na jedno síťové rozhraní](/f/57e47f4aa4c9f4125529b4366cf0bbad.png?width=100&height=100)
Setkali jste se někdy se situacemi, kdy jedna aplikace ovládala vaši šířku pásma celé sítě? Pokud jste se někdy dostali do situace, kdy jedna aplikace snědla veškerý váš provoz, pak si role aplikace omezovače šířky pásma ceníte.
Buď jste a správce systému nebo jen a Uživatel Linuxu, musíte se naučit ovládat rychlosti odesílání a stahování aby se aplikace ujistily, že šířka vaší sítě není vypálena jedinou aplikací.
[ Mohlo by se Vám také líbit: 16 Užitečné nástroje pro sledování šířky pásma pro analýzu využití sítě v Linuxu ]
Pramínek je nástroj pro utváření šířky pásma sítě, který nám umožňuje spravovat rychlosti odesílání a stahování aplikací, aby se zabránilo tomu, že by některý z nich oklamal celou (nebo většinu) dostupnou šířku pásma.
Stručně řečeno, pramínek vám umožní ovládat síťový provoz sazba na základě aplikace, na rozdíl od ovládání na uživatele, což je klasický příklad tvarování šířky pásma v prostředí klient-server, a pravděpodobně jde o nastavení, které známe více.
Kromě toho nám pramínek může pomoci definovat priority na základě aplikace, takže kdy pro celý systém byly stanoveny celkové limity, prioritní aplikace budou mít stále větší šířku pásma automaticky.
Pro splnění tohoto úkolu pramínek nastavuje limity provozu na způsob odesílání a přijímání dat ze soketů pomocí připojení TCP. Musíme poznamenat, že kromě rychlosti přenosu dat pramínek v žádném daném okamžiku nijak nemění chování procesu, který utváří.
Jediným omezením, abych tak řekl, je, že pramínek nebude fungovat se staticky propojenými aplikacemi nebo binárními soubory s PŘIDÁNO nebo SGID bitů, protože používá dynamické propojení a načítání, aby se umístil mezi tvarovaný proces a jeho přidružený síťový soket. Trickle pak funguje jako proxy mezi těmito dvěma softwarovými komponentami.
Jelikož pramínek ke spuštění nevyžaduje oprávnění superuživatele, mohou si uživatelé nastavit vlastní limity provozu. Protože to nemusí být žádoucí, prozkoumáme, jak nastavit celkové limity, které uživatelé systému nemohou překročit. Jinými slovy, uživatelé budou i nadále moci spravovat své přenosy, ale vždy v mezích stanovených správcem systému.
V tomto článku vysvětlíme, jak pomocí pramene omezit šířku pásma sítě používané aplikacemi na serveru Linux.
K vygenerování potřebného provozu použijeme ncftpput a ncftpget (oba nástroje jsou k dispozici po instalaci ncftp) na klientovi (CentOS server - dev1: 192.168.0.17), a vsftpd na serveru (Debian - dev2: 192.168.0.15) pro demonstrační účely. Stejné pokyny fungují také na Červená čepice, Fedora a Systémy založené na Ubuntu.
1. Pro RHEL/CentOS 8/7, povolit úložiště EPEL. Extra balíčky pro Enterprise Linux (EPEL) je úložiště vysoce kvalitního bezplatného a open-source softwaru spravovaného projektem Fedora a je 100% kompatibilní s jeho spinoffy, jako je např. Red Hat Enterprise Linux a CentOS. Oba pramínek a ncftp jsou k dispozici z tohoto úložiště.
2. Nainstalujte ncftp jak následuje:
# yum update && sudo yum install ncftp [Na systémech založených na RedHat] # aptitude update && aptitude install ncftp [V systémech založených na Debianu]
3. Nastavte server FTP na samostatném serveru. Pamatujte, že ačkoli je FTP ze své podstaty nezabezpečený, stále je široce používán v případech, kdy není nutné zabezpečení při nahrávání nebo stahování souborů.
V tomto článku ji používáme k ilustraci odměn za pramínky a protože ukazuje přenosové rychlosti v standardní výstup na klientovi a ponecháme diskusi o tom, zda by měl nebo neměl být použit pro jiné datum a čas.
# yum update && yum install vsftpd [On RedHat based systems] # apt update && apt install vsftpd [Na systémech založených na Debianu]
Nyní upravte /etc/vsftpd/vsftpd.conf soubor na FTP server takto:
$ sudo nano /etc/vsftpd/vsftpd.conf. NEBO. $ sudo /etc/vsftpd.conf.
Proveďte následující změny:
anonymous_enable = NE. local_enable = ANO. chroot_local_user = ANO. allow_writeable_chroot = ANO.
Poté se ujistěte, že spustíte vsftpd pro aktuální relaci a povolíte automatické spuštění při budoucích bootech:
# systemctl start vsftpd [Pro systémy založené na systemd] # systemctl povolit vsftpd. # service vsftpd start [Pro systémy založené na init] # chkconfig vsftpd zapnuto.
4. Pokud jste se rozhodli nastavit FTP server v CentOS/RHEL kapka s klíči SSH pro vzdálený přístup, budete potřebovat uživatelský účet chráněný heslem s příslušným oprávnění adresáře a souboru pro nahrávání a stahování požadovaného obsahu mimo domovský adresář root.
Poté můžete přejít do svého domovského adresáře zadáním následující adresy URL do prohlížeče. Zobrazí se přihlašovací okno s výzvou k zadání platného uživatelského účtu a hesla na serveru FTP.
ftp://192.168.0.15.
Pokud ověření proběhne úspěšně, zobrazí se vám obsah vašeho domovského adresáře. Později v tomto kurzu budete moci tuto stránku aktualizovat a zobrazit soubory, které byly nahrány během předchozích kroků.
Nyní nainstalujte pramínek přes Mňam nebo výstižný.
Aby byla zajištěna úspěšná instalace, je dobrým zvykem zajistit, aby byly aktuálně nainstalované balíčky aktuální (using mňam aktualizace) před instalací samotného nástroje.
# yum -y aktualizace && yum install pramínek [Na systémech založených na RedHat] # apt -y update && apt install trickle [Na systémech založených na Debianu]
Ověřte, zda bude pramínek fungovat s požadovaným binárním souborem. Jak jsme vysvětlili dříve, pramínek bude fungovat pouze s binárními soubory pomocí dynamických nebo sdílených knihoven. Chcete-li ověřit, zda můžeme tento nástroj použít s určitou aplikací, můžeme použít známé ldd nástroj, kde ldd znamená dynamické závislosti seznamu.
Konkrétně budeme hledat přítomnost glibc (knihovna GNU C) v seznamu dynamických závislostí jakéhokoli daného programu, protože je to právě tato knihovna, která definuje systémová volání zapojená do komunikace prostřednictvím soketů.
Spusťte následující příkaz proti danému binárnímu souboru, abyste zjistili, zda lze k vytvoření šířky pásma použít pramínek:
# ldd $ (což [binární]) | grep libc.so.
Například,
# ldd $ (což ncftp) | grep libc.so.
jehož výstupem je:
# libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)
Řetězec mezi hranatými závorkami ve výstupu se může změnit ze systému na systém a dokonce i mezi následnými spuštěními stejného příkazu, protože představuje adresu načtení knihovny ve fyzické paměti.
Pokud výše uvedený příkaz nevrací žádné výsledky, znamená to, že binární soubor, proti kterému byl spuštěn, nepoužívá libc, a proto nelze pramínek v takovém případě použít jako tvarovač šířky pásma.
Nejzákladnější použití pramene je v samostatném režimu. Pomocí tohoto přístupu se pomocí pramene explicitně definují rychlosti stahování a odesílání dané aplikace. Jak jsme vysvětlili dříve, kvůli stručnosti použijeme pro testy stahování a nahrávání stejnou aplikaci.
Porovnáme rychlosti stahování a nahrávání s použitím a bez použití pramene. The -d
volba udává rychlost stahování v KB/s, zatímco -u
flag říká, že má omezit rychlost nahrávání stejnou jednotkou. Kromě toho použijeme -s
příznak, který určuje, že pramínek by měl běžet v samostatném režimu.
Základní syntaxe pro spouštění pramene v samostatném režimu je následující:
# trickle -s -d [rychlost stahování v KB/s] -u [rychlost stahování v KB/s]
Chcete -li provést následující příklady sami, ujistěte se, že máte pramínek a ncftp nainstalován na klientském počítači (192.168.0.17 v mém případě).
Používáme volně šiřitelné Základy Linuxu Soubor PDF (k dispozici od tady) pro následující testy.
Tento soubor si můžete zpočátku stáhnout do aktuálního pracovního adresáře pomocí následujícího příkazu:
# wget http://linux-training.be/files/books/LinuxFun.pdf
Syntaxe pro nahrání souboru na náš server FTP bez přelévání je následující:
# ncftpput -u uživatelské jméno -p heslo 192.168.0.15 /vzdálený_adresář local -název_souboru
Kde /remote_directory je cesta adresáře pro nahrávání vzhledem k domovu uživatelského jména a local-název_souboru je soubor ve vašem aktuálním pracovním adresáři.
Konkrétně bez stékání dosáhneme maximální rychlosti nahrávání 52,02 MB/s (Upozorňujeme, že toto není skutečná průměrná rychlost nahrávání, ale okamžitý počáteční vrchol) a soubor se nahraje téměř okamžitě:
# ncftpput -u uživatelské jméno -p heslo 192.168.0.15 /testdir LinuxFun.pdf
Výstup:
LinuxFun.pdf: 2,79 MB 52,02 MB/s.
S pramínkem omezíme přenosovou rychlost nahrávání na 5 kB/s. Než soubor nahrajeme podruhé, musíme jej odstranit z cílového adresáře; v opačném případě, ncftp nás bude informovat, že soubor v cílovém adresáři je stejný, jako se pokoušíme nahrát, a neprovede přenos:
# rm /absolute/path/to/destination/directory/LinuxFun.pdf
Pak:
# trickle -s -u 5 ncftpput -u uživatelské jméno -p heslo 111.111.111.111 /testdir LinuxFun.pdf
Výstup:
LinuxFun.pdf: 2,79 MB 4,94 kB/s.
Ve výše uvedeném příkladu vidíme, že průměrná rychlost nahrávání klesla na ~ 5 KB/s.
Nejprve nezapomeňte odstranit PDF z původního zdrojového adresáře:
# rm /absolute/path/to/source/directory/LinuxFun.pdf
Následující případy stáhnou vzdálený soubor do aktuálního adresáře v klientském počítači. Tuto skutečnost naznačuje období („.‘), Která se zobrazí za IP adresou serveru FTP.
Bez pramene:
# ncftpget -u uživatelské jméno -p heslo 111.111.111.111. /testdir/LinuxFun.pdf
Výstup:
LinuxFun.pdf: 2,79 MB 260,53 MB/s.
S pramínkem omezení rychlosti stahování na 20 kB/s:
# trickle -s -d 30 ncftpget -u uživatelské jméno -p heslo 111.111.111.111. /testdir/LinuxFun.pdf
Výstup:
LinuxFun.pdf: 2,79 MB 17,76 kB/s.
Trickle může také běžet v nespravovaném režimu podle řady parametrů definovaných v /etc/trickled.conf. Tento soubor definuje, jak se chová a spravuje pramínek (daemon).
Kromě toho, pokud chceme nastavit globální nastavení, které budou používány celkově všemi aplikacemi, budeme muset použít zkrácený příkaz. Tento příkaz spouští démona a umožňuje nám definovat limity stahování a odesílání, které budou sdíleny všemi aplikacemi spuštěnými přes pramínek, aniž bychom museli pokaždé zadávat limity.
Například běh:
# trickled -d 50 -u 10.
Způsobí, že rychlost stahování a odesílání jakékoli aplikace procházející pramínkem bude omezena na 30 kB/s a 10 KB/s, resp.
Vezměte prosím na vědomí, že můžete kdykoli zkontrolovat, zda je spuštěno trickled a s jakými argumenty:
# ps -ef | grep stékal | grep -v grep.
Výstup:
root 16475 1 0 Dec24? 00:00:04 stékající -d 50 -u 10.
V tomto příkladu použijeme volně šiřitelný „He je dar”Video, které je k dispozici ke stažení z tento odkaz.
Tento soubor nejprve stáhneme do vašeho aktuálního pracovního adresáře pomocí následujícího příkazu:
# wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
Nejprve spustíme zkráceného démona výše uvedeným příkazem:
# trickled -d 30 -u 10.
Bez pramene:
# ncftpput -u uživatelské jméno -p heslo 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
Výstup:
2014-00-1460-on-je-dárek-360p-eng. Mp4: 18,53 MB 36,31 MB/s.
S pramínkem:
# trickle ncftpput -u uživatelské jméno -p heslo 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
Výstup:
2014-00-1460-on-je-dárek-360p-eng. Mp4: 18,53 MB 9,51 kB/s.
Jak vidíme na výstupu výše, přenosová rychlost nahrávání klesla na ~ 10 KB/s.
Jako v Příklad 2, stáhneme soubor do aktuálního pracovního adresáře.
Bez pramene:
# ncftpget -u uživatelské jméno -p heslo 192.168.0.15. /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
Výstup:
2014-00-1460-on-je-dárek-360p-eng. Mp4: 18,53 MB 108,34 MB/s.
S pramínkem:
# trickle ncftpget -u uživatelské jméno -p heslo 111.111.111.111. /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
Výstup:
2014-00-1460-on-je-dárek-360p-eng. Mp4: 18,53 MB 29,28 kB/s.
Což je v souladu s dříve nastaveným limitem stahování (30 kB/s).
Poznámka: Že jakmile je démon spuštěn, není nutné nastavovat individuální limity pro každou aplikaci, která používá pramínek.
Jak jsme zmínili dříve, tvarování šířky pásma pramene lze dále přizpůsobit prostřednictvím trickled.conf. Typická část v tomto souboru se skládá z následujících položek:
[servis] Priorita =Time-Smoothing = Vyhlazování délky =
Kde,
Změna hodnot vyhlazování se převede do aplikace určené pomocí [servis] pomocí přenosových rychlostí v intervalu místo pevné hodnoty. Bohužel neexistuje vzorec pro výpočet dolní a horní hranice tohoto intervalu, protože to závisí hlavně na každém konkrétním scénáři případu.
Následuje a trickled.conf ukázkový soubor v klientu CentOS 7 (192.168.0.17):
[ssh] Priorita = 1. Časové vyhlazení = 0,1. Vyhlazování délky = 2 [ftp] Priorita = 2. Časové vyhlazení = 1. Vyhlazování délky = 3.
Pomocí tohoto nastavení bude trikováno upřednostňovat připojení SSH před přenosy FTP. Interaktivní proces, například SSH, používá menší hodnoty časového vyhlazení, zatímco služba provádějící hromadné přenosy dat (FTP) používá vyšší hodnotu.
Hodnoty vyhlazování jsou zodpovědné za rychlosti stahování a odesílání v našem předchozím příkladu, které neodpovídají přesné hodnotě určené zkráceným démonem, ale pohybují se v intervalu, který je mu blízký.
[ Mohlo by se Vám také líbit: Jak zabezpečit a chránit server OpenSSH ]
V tomto článku jsme prozkoumali, jak omezit šířku pásma používanou aplikacemi pomocí pramínků v distribucích založených na Fedoře a Debianu / derivátech. Mezi další možné případy použití patří mimo jiné:
Otázky a komentáře jsou vítány. Neváhejte použít níže uvedený formulář a pošlete nám je.