Daži no mums viena vai otra iemesla dÄļ neizmanto internetu bez VPN: kÄdam ir nepiecieÅ”ams Ä«paÅ”s IP, un vieglÄk un lÄtÄk ir iegÄdÄties VPS ar diviem IP, nekÄ pÄrkot adresi no pakalpojumu sniedzÄja, kÄds vÄlas piekļūt visÄm vietnÄm. , un ne tikai tiem, kas atļauti Krievijas FederÄcijas teritorijÄ, citiem ir nepiecieÅ”ams IPv6, bet pakalpojumu sniedzÄjs to nenodroÅ”ina...
VisbiežÄk VPN savienojums tiek izveidots paÅ”Ä ierÄ«cÄ, kas tiek izmantota noteiktÄ brÄ«dÄ«, kas ir jÄga, ja jums ir tikai viens dators un viens tÄlrunis un jÅ«s tos reti izmantojat vienlaikus. Ja jÅ«su mÄjas tÄ«klÄ ir daudz ierÄ«Äu vai, piemÄram, ir dažas, kurÄs VPN nevar konfigurÄt, ÄrtÄk bÅ«tu izveidot tuneli tieÅ”i mÄjas marÅ”rutÄtÄjÄ, lai nedomÄtu par katras ierÄ«ces iestatÄ«Å”anu atseviŔķi. .
Ja kÄdreiz savÄ marÅ”rutÄtÄjÄ esat instalÄjis OpenVPN, iespÄjams, esat bijis nepatÄ«kami pÄrsteigts par tÄ darbÄ«bas Ätrumu. Pat lÄtu marÅ”rutÄtÄju SoC bez problÄmÄm iziet cauri apmÄram gigabitu trafikam, jo āāmarÅ”rutÄÅ”anas un NAT funkcijas tiek pÄrsÅ«tÄ«tas uz atseviŔķu mikroshÄmu, kas paredzÄta tikai Å”im uzdevumam, un Å”Ädu marÅ”rutÄtÄju galvenie procesori ir diezgan vÄji, jo Uz tiem praktiski nav slodzes. Å is kompromiss ļauj sasniegt lielu marÅ”rutÄtÄja Ätrumu un ievÄrojami samazinÄt gatavÄs ierÄ«ces cenu - marÅ”rutÄtÄji ar jaudÄ«giem procesoriem maksÄ vairÄkas reizes vairÄk, un tiek novietoti ne tikai kÄ kaste interneta izplatÄ«Å”anai, bet arÄ« kÄ NAS, torrents. lejupielÄdÄtÄjs un mÄjas multivides sistÄma.
Mans marÅ”rutÄtÄjs TP-Link TL-WDR4300 nav nosaucams par jaunu - modelis parÄdÄ«jÄs 2012. gada vidÅ«, un tam ir 560 MHz MIPS32 74Kc arhitektÅ«ras procesors, kura jauda pietiek tikai 20-23 Mb/s Å”ifrÄtai trafikam. izmantojot OpenVPN, kas ir pÄc standartiem MÅ«sdienu mÄjas interneta Ätrums ir diezgan zems.
KÄ mÄs varam palielinÄt Å”ifrÄta tuneļa Ätrumu? Mans marÅ”rutÄtÄjs ir diezgan funkcionÄls, atbalsta 3x3 MIMO un kopumÄ darbojas labi, es negribÄtu to mainÄ«t.
TÄ kÄ tagad pieÅemts taisÄ«t 10 megabaitu interneta lapas, rakstÄ«t darbvirsmas aplikÄcijas iekÅ” node.js un iepakot 100 megabaitu failÄ, optimizÄcijas vietÄ palielinÄt skaitļoÅ”anas jaudu, tad izdarÄ«sim ko Å”ausmÄ«gu - pÄrsÅ«tÄ«sim VPN savienojumu uz produktÄ«vs vienas plates "dators" Orange Pi One, kuru mÄs uzstÄdÄ«sim marÅ”rutÄtÄja korpusÄ, neaizÅemot esoÅ”os tÄ«kla un USB portus, tikai par 9.99 USD*!
* + piegÄde, + nodokļi, + par alu, + MicroSD.
OpenVPN
MarÅ”rutÄtÄja procesoru nevar saukt par pilnÄ«gi vÄju - tas spÄj Å”ifrÄt un jaukt datus, izmantojot AES-128-CBC-SHA1 algoritmu ar Ätrumu 50 Mb/s, kas ir ievÄrojami ÄtrÄks par OpenVPN darbÄ«bu un mÅ«sdienu CHACHA20 straumi. Å”ifrs ar POLY1305 hash sasniedz pat 130 megabitus sekundÄ! KÄpÄc VPN tuneļa Ätrums ir tik mazs? Tas viss ir saistÄ«ts ar konteksta maiÅu starp lietotÄja telpu un kodola telpu: OpenVPN Å”ifrÄ trafiku un sazinÄs ar Ärpasauli lietotÄja kontekstÄ, un pati marÅ”rutÄÅ”ana notiek kodola kontekstÄ. OperÄtÄjsistÄmai ir nepÄrtraukti jÄpÄrslÄdzas uz priekÅ”u un atpakaļ par katru saÅemto vai pÄrsÅ«tÄ«to paketi, un Ŕī darbÄ«ba ir lÄna. Å Ä« problÄma ir raksturÄ«ga visÄm VPN lietojumprogrammÄm, kas darbojas, izmantojot TUN/TAP draiveri, un nevar teikt, ka mazÄ Ätruma problÄmu izraisa slikta OpenVPN optimizÄcija (lai gan, protams, ir vietas, kuras ir jÄpÄrstrÄdÄ). Neviens lietotÄja telpas VPN klients nenodroÅ”ina pat gigabitu ar atspÄjotu Å”ifrÄÅ”anu manÄ klÄpjdatorÄ, nemaz nerunÄjot par sistÄmÄm ar vÄju procesoru.
Oranžais Pi Viens
Vienas plates Orange Pi One no Xunlong ir Å”obrÄ«d labÄkais piedÄvÄjums veiktspÄjas/cenas attiecÄ«bas ziÅÄ. Par 9.99 $* jÅ«s iegÅ«stat stabilu Äetrkodolu ARM Cortex-A7 procesoru, kas darbojas (stabils) ar frekvenci 1008 MHz un nepÄrprotami pÄrspÄj savus cenas lÄ«meÅa kaimiÅus Raspberry Pi Zero un Next Thing CHIP. Å eit priekÅ”rocÄ«bas beidzas. UzÅÄmums Xunlong pilnÄ«bÄ nepievÄrÅ” uzmanÄ«bu savu dÄļu programmatÅ«rai, un laikÄ, kad One tika laists pÄrdoÅ”anÄ, tas pat neiesniedza dÄļa konfigurÄcijas failu, nemaz nerunÄjot par gataviem attÄliem. Allwinner, SoC ražotÄjs, arÄ« nav Ä«paÅ”i jutÄ«gs pret sava produkta atbalstu. ViÅus interesÄ tikai minimÄla veiktspÄja operÄtÄjsistÄmÄ Android 4.4.4, kas nozÄ«mÄ, ka mÄs esam spiesti izmantot 3.4 kodolu ar Android ielÄpiem. Par laimi, ir entuziasti, kas montÄ distribÅ«cijas, rediÄ£Ä kodolu, raksta kodu atbalsta dÄļiem galvenajÄ kodolÄ, t.i. viÅi faktiski dara darbu ražotÄja labÄ, padarot Å”o slikto darbu pieÅemamu. Saviem nolÅ«kiem es izvÄlÄjos Armbian izplatÄ«Å”anu; tas tiek bieži un Ärti atjauninÄts (jauni kodoli tiek instalÄti tieÅ”i caur pakotÅu pÄrvaldnieku, nevis kopÄjot failus uz Ä«paÅ”u nodalÄ«jumu, kÄ tas parasti notiek ar Allwinner), un tas atbalsta lielÄko daļu perifÄrijas ierÄ«ces, atŔķirÄ«bÄ no citÄm.
MarÅ”rutÄtÄju
Lai nenoslogotu vÄjo marÅ”rutÄtÄja procesoru ar Å”ifrÄÅ”anu un paÄtrinÄtu mÅ«su VPN savienojumu, varam Å”o uzdevumu pÄrcelt uz jaudÄ«gÄka Orange Pi procesora pleciem, kaut kÄdÄ veidÄ savienojot to ar rÅ«teri. NÄk prÄtÄ izveidot savienojumu, izmantojot Ethernet vai USB ā abus Å”os standartus atbalsta abas ierÄ«ces, taÄu es negribÄju izmantot esoÅ”os portus. Par laimi, ir izeja.
GL850G USB centrmezgla mikroshÄma, kas tiek izmantota marÅ”rutÄtÄjÄ, atbalsta 4 USB portus, no kuriem divi nav savienoti. Nav skaidrs, kÄpÄc ražotÄjs tos, pieļauju, neatlodÄja, lai neļautu lietotÄjiem vienlaikus savienot 4 ierÄ«ces ar lielu strÄvas patÄriÅu (piemÄram, cietos diskus). MarÅ”rutÄtÄja standarta baroÅ”anas avots nav paredzÄts Å”Ädai slodzei. JebkurÄ gadÄ«jumÄ tas mums ir izdevÄ«gi.
Lai iegÅ«tu citu USB portu, jums vienkÄrÅ”i jÄpielodÄ divi vadi pie tapÄm 8 (D-) un 9 (D+) vai 11 (D-) un 12 (D+).
TomÄr nepietiek vienkÄrÅ”i pievienot divas USB ierÄ«ces un cerÄt, ka viss darbosies pats no sevis, kÄ tas bÅ«tu ar Ethernet. PirmkÄrt, mums ir jÄpanÄk, lai viens no tiem darbotos USB klienta režīmÄ, nevis USB Host, un, otrkÄrt, mums ir jÄizlemj, kÄ ierÄ«ces atklÄs viena otru. TÄ sauktajiem USB sÄ«krÄ«kiem (nosaukti Linux kodola apakÅ”sistÄmas vÄrdÄ) ir daudz draiveru, kas ļauj emulÄt dažÄda veida USB ierÄ«ces: tÄ«kla adapteri, audio karti, tastatÅ«ru un peli, zibatmiÅas disku, kameru, konsoli, izmantojot seriÄlo savienojumu. osta. TÄ kÄ mÅ«su ierÄ«ce darbosies ar tÄ«klu, mums vislabÄk ir emulÄt Ethernet adapteri.
Ir trīs Ethernet-over-USB standarti:
- AttÄlais NDIS (RNDIS). Novecojis Microsoft standarts, ko galvenokÄrt izmanto operÄtÄjsistÄmÄ Windows XP.
- Ethernet vadÄ«bas modelis (ECM). VienkÄrÅ”s standarts, kas iekapsulÄ Ethernet kadrus USB paketÄs. Lieliski piemÄrots vadu modemiem ar USB pieslÄgumu, kur Ärti pÄrsÅ«tÄ«t kadrus bez apstrÄdes, taÄu vienkÄrŔības un USB kopnes ierobežojumu dÄļ tas nav Ä«paÅ”i Ätrs.
- Ethernet emulÄcijas modelis (EEM). ViedÄks protokols, kas Åem vÄrÄ USB ierobežojumus un optimÄli apvieno vairÄkus kadrus vienÄ, tÄdÄjÄdi palielinot caurlaidspÄju.
- TÄ«kla vadÄ«bas modelis (NCM). JaunÄkais protokols. Sniedz EEM priekÅ”rocÄ«bas un vÄl vairÄk optimizÄ autobusu lietoÅ”anas pieredzi.
Lai kÄds no Å”iem protokoliem darbotos mÅ«su panelÄ«, kÄ vienmÄr, mums bÅ«s jÄsaskaras ar dažÄm grÅ«tÄ«bÄm. SakarÄ ar to, ka Allwinner interesÄ tikai kodola Android daļas, normÄli darbojas tikai Android Gadget - kods, kas realizÄ saziÅu ar adb, eksportÄjot ierÄ«ci, izmantojot MTP protokolu, un emulÄjot zibatmiÅu Android ierÄ«cÄs. Pats Android sÄ«krÄ«ks atbalsta arÄ« RNDIS protokolu, taÄu tas ir bojÄts Allwinner kodolÄ. Ja mÄÄ£inÄsit kompilÄt kodolu ar jebkuru citu USB sÄ«krÄ«ku, ierÄ«ce vienkÄrÅ”i neparÄdÄ«sies sistÄmÄ neatkarÄ«gi no tÄ, ko jÅ«s darÄt.
Lai atrisinÄtu problÄmu draudzÄ«gÄ veidÄ, izstrÄdÄtÄju modificÄtÄ Android sÄ«krÄ«ka android.c kodÄ ir jÄatrod vieta, kur tiek inicializÄts USB kontrolleris, taÄu ir arÄ« risinÄjums, lai veiktu vismaz Ethernet emulÄciju. USB darbs:
--- sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:40.427088792 +0300
+++ sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:45.339088792 +0300
@@ -57,7 +57,7 @@
static sunxi_udc_io_t g_sunxi_udc_io;
static u32 usb_connect = 0;
static u32 is_controller_alive = 0;
-static u8 is_udc_enable = 0; /* is udc enable by gadget? */
+static u8 is_udc_enable = 1; /* is udc enable by gadget? */
#ifdef CONFIG_USB_SUNXI_USB0_OTG
static struct platform_device *g_udc_pdev = NULL;
Å is ielÄps piespiež USB klienta režīmu, ļaujot izmantot parastos USB sÄ«krÄ«kus no Linux.
Tagad jums vajadzÄtu atjaunot kodolu ar Å”o ielÄpu un nepiecieÅ”amo sÄ«krÄ«ku. Es izvÄlÄjos EEM, jo... SaskaÅÄ ar testa rezultÄtiem tas izrÄdÄ«jÄs produktÄ«vÄks par NCM.
Armbijas komanda nodroŔina userpatches/kernel/sun8i-default/otg.patch
, nedaudz rediÄ£Äjiet compile.sh
un atlasiet vajadzīgo sīkrīku:
Kodols tiks apkopots deb pakotnÄ, kuru nebÅ«s grÅ«ti instalÄt uz tÄfeles, izmantojot dpkg
.
Atliek tikai savienot plati, izmantojot USB, un konfigurÄt mÅ«su jauno tÄ«kla adapteri, lai saÅemtu adresi, izmantojot DHCP. Lai to izdarÄ«tu, jums jÄpievieno kaut kas lÄ«dzÄ«gs tÄlÄk norÄdÄ«tajam /etc/network/interfaces
:
auto usb0
iface usb0 inet dhcp
hwaddress ether c2:46:98:49:3e:9d
pre-up /bin/sh -c 'echo 2 > /sys/bus/platform/devices/sunxi_usb_udc/otg_role'
MAC adresi labÄk iestatÄ«t manuÄli, jo... tas bÅ«s nejauÅ”s katru reizi, kad ierÄ«ce tiek pÄrstartÄta, kas ir neÄrti un apgrÅ«tinoÅ”i.
MÄs savienojam MicroUSB kabeli ar OTG savienotÄju, pievienojam baroÅ”anu no marÅ”rutÄtÄja (to var piegÄdÄt Ä·emmes 2. un 3. tapÄm, nevis tikai strÄvas savienotÄjam).
Atliek tikai konfigurÄt marÅ”rutÄtÄju. Pietiek instalÄt pakotni ar EEM draiveri un pievienot mÅ«su jauno USB tÄ«kla ierÄ«ci vietÄjÄ ugunsmÅ«ra zonas tiltam:
opkg install kmod-usb-net-cdc-eem
Lai novirzÄ«tu visu trafiku uz VPN tuneli, marÅ”rutÄtÄja pusÄ ir jÄpievieno SNAT kÄrtula plates IP adresei vai jÄizplata dÄļa adrese kÄ vÄrtejas adrese, izmantojot dnsmasq. PÄdÄjais tiek darÄ«ts, pievienojot Å”Ädu rindu /etc/dnsmasq.conf
:
dhcp-option = tag:lan, option:router, 192.168.1.100
kur 192.168.1.100
ā jÅ«su dÄļa IP adrese. Neaizmirstiet ievadÄ«t marÅ”rutÄtÄja adresi tÄ«kla iestatÄ«jumos uz paÅ”as plates!
Lai izolÄtu plates kontaktus no marÅ”rutÄtÄja kontaktiem, tika izmantots melamÄ«na sÅ«klis. Tas izrÄdÄ«jÄs apmÄram Å”Äds:
SecinÄjums
TÄ«kls caur USB darbojas pÄrsteidzoÅ”i Ätri: 100-120 Mb/s, gaidÄ«ju mazÄk. OpenVPN ŔķÄrso apmÄram 70 Mb/s Å”ifrÄtu trafiku, kas arÄ« nav ļoti daudz, bet manÄm vajadzÄ«bÄm pietiek. MarÅ”rutÄtÄja vÄks neaizveras cieÅ”i, atstÄjot nelielu atstarpi. EstÄti var noÅemt Ethernet un USB Host savienotÄjus no plates, kas ļaus vÄkam pilnÄ«bÄ aizvÄrties un joprojÄm paliks nedaudz vietas.
LabÄk neiesaistÄ«ties Å”ÄdÄ pornogrÄfijÄ un pirkt
Avots: www.habr.com