Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router

Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router

Sommige van ons gebruik om die een of ander rede nie die internet sonder 'n VPN nie: iemand benodig 'n toegewyde IP, en dit is makliker en goedkoper om 'n VPS met twee IP's te koop as om 'n adres van 'n verskaffer te koop, iemand wil toegang tot alle webwerwe hê , en nie net diegene wat op die grondgebied van die Russiese Federasie toegelaat word nie, ander benodig IPv6, maar die verskaffer verskaf dit nie ...
Dikwels word 'n VPN-verbinding tot stand gebring op die toestel self wat op 'n sekere oomblik gebruik word, wat sin maak as jy net een rekenaar en een foon het en dit selde op dieselfde tyd gebruik. As daar baie toestelle in u tuisnetwerk is, of daar byvoorbeeld sommige is waarop VPN nie gekonfigureer kan word nie, sal dit geriefliker wees om 'n tonnel direk op die tuisroeteerder te skep om nie daaraan te dink om elke toestel afsonderlik op te stel nie. .

As jy al ooit geïnstalleer het OpenVPN Toe jy 'n router geïnstalleer het, was jy waarskynlik onaangenaam verras deur die spoed daarvan. Selfs goedkoop routers se SoC's hanteer amper gigabit-verkeer sonder enige probleme, danksy die toegewyde roetering en NAT-funksies wat na 'n aparte skyfie afgelaai word. Die hoofverwerkers in hierdie routers is redelik swak, aangesien hulle feitlik geen las het nie. Hierdie kompromie maak voorsiening vir hoë routerspoed en 'n aansienlike vermindering in die prys van die voltooide toestel – routers met kragtige verwerkers is verskeie kere duurder en word nou nie net as internetdeelbokse geposisioneer nie, maar ook as NAS, torrent-aflaaiers en multimediastelsels vir tuisgebruik.

My router, TP-Link TL-WDR4300, kan nie nuut genoem word nie - die model het middel 2012 verskyn en het 'n 560 MHz-verwerker met MIPS32 74Kc-argitektuur, waarvan die krag slegs genoeg is vir 20-23 Mbps geïnkripteerde verkeer deur OpenVPN, wat baie min is volgens moderne tuisinternetspoedstandaarde.
Hoe kan ons die spoed van 'n geënkripteerde tonnel verhoog? My router is redelik funksioneel, ondersteun 3x3 MIMO, en werk oor die algemeen goed, ek sal dit nie wil verander nie.
Aangesien dit nou gebruiklik is om 10-megagreep-internetbladsye te maak, lessenaartoepassings in node.js te skryf en dit in 'n 100-megagreep-lêer te pak, rekenaarkrag in plaas van optimalisering te verhoog, sal ons iets verskrikliks doen - ons sal die VPN-verbinding oordra na 'n produktiewe enkelbord-“rekenaar” Orange Pi One, wat ons in die roeteerderkas sal installeer sonder om bestaande netwerk- en USB-poorte op te neem, vir slegs $9.99*!
* + aflewering, + belasting, + vir bier, + MicroSD.

OpenVPN

Die router se verwerker kan nie heeltemal swak genoem word nie - dit kan data enkripteer en hash met behulp van die AES-128-CBC-SHA1-algoritme teen 'n spoed van 50 Mbps, wat merkbaar vinniger is as hoe dit werk. OpenVPN, en die moderne CHACHA20-stroomkode met die POLY1305-hash bereik 130 megabit per sekonde! So hoekom is die VPN-tonnel so stadig? Dit gaan alles oor kontekswisseling tussen gebruikersruimte en kernruimte: OpenVPN Enkripteer verkeer en kommunikeer met die buitewêreld in die gebruiker se konteks, terwyl die werklike roetering in die kernkonteks plaasvind. Die bedryfstelsel moet voortdurend heen en weer skakel vir elke ontvangde of gestuurde pakkie, en hierdie bewerking is stadig. Hierdie probleem is inherent aan alle VPN-toepassings wat deur die TUN/TAP-drywer loop, en dit is nie asof die lae spoed te wyte is aan swak optimalisering nie. OpenVPN (Alhoewel daar natuurlik 'n paar areas is wat verbetering kan gebruik.) Nie 'n enkele gebruikersruimte-VPN-kliënt lewer selfs 'n gigabit spoed met enkripsie gedeaktiveer op my skootrekenaar nie, wat nog te sê op stelsels met 'n swak verwerker.

Oranje Pi Een

Die Orange Pi One enkelbord van Xunlong is tans die beste waarde vir geld. Vir $9.99* kry jy 'n soliede vierkern ARM Cortex-A7-verwerker wat (stabiel) teen 1008 MHz loop, wat sy prysklasbure, die Raspberry Pi Zero en Next Thing CHIP, duidelik oortref. Dis waar die voordele eindig. Xunlong gee geen aandag aan die sagteware op sy borde nie, en ten tyde van die One se bekendstelling het dit nie eers 'n bordkonfigurasielêer verskaf nie, wat nog te sê van voorafgemaakte beelde. Allwinner, die SoC-vervaardiger, is ook nie besonder daartoe verbind om sy produk te ondersteun nie. Hulle stel slegs belang in minimale OS-funksionaliteit. Android 4.4.4, wat beteken dat ons gedwing word om kernweergawe 3.4 te gebruik met Android-patches. Gelukkig is daar entoesiaste wat verspreidings bou, die kern wysig en kode skryf om borde in die hoofstroomkern te ondersteun—met ander woorde, hulle doen in wese die vervaardiger se werk, wat hierdie gemors aanvaarbaar laat werk. Vir my doeleindes het ek die Armbian-verspreiding gekies; dit word gereeld en maklik opgedateer (nuwe kerns word direk deur die pakketbestuurder geïnstalleer, eerder as deur lêers na 'n spesiale partisie te kopieer, soos gewoonlik die geval is met Allwinner), en dit ondersteun die meeste randapparatuur, anders as ander.

router

Om nie die swak verwerker van die router met enkripsie te laai en ons VPN-verbinding te bespoedig nie, kan ons hierdie taak na die skouers van 'n kragtiger Orange Pi-verwerker verskuif deur dit op een of ander manier aan die router te koppel. Dit kom by my op om óf via Ethernet óf USB te koppel - albei hierdie standaarde word deur albei toestelle ondersteun, maar ek wou nie bestaande poorte gebruik nie. Gelukkig is daar 'n uitweg.

Die GL850G USB-hubskyfie, wat in die router gebruik word, ondersteun 4 USB-poorte, waarvan twee nie bedraad is nie. Dit is onduidelik hoekom die vervaardiger hulle nie ontsoldeer het nie, neem ek aan, om te verhoed dat gebruikers 4 toestelle met hoë stroomverbruik (byvoorbeeld hardeskywe) gelyktydig koppel. Die standaard kragtoevoer van die router is nie ontwerp vir so 'n las nie. Dit is in elk geval tot ons voordeel.
Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router
Om nog 'n USB-poort te kry, moet jy net twee drade aan penne 8(D-) en 9(D+) of 11(D-) en 12(D+) soldeer.

Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router

Dit is egter nie genoeg om bloot twee USB-toestelle te koppel en te hoop dat alles outomaties sal werk, soos met Ethernet nie. Eerstens moet ons een van hulle dwing om in USB-kliëntmodus te werk, nie USB-gasheermodus nie, en tweedens moet ons bepaal hoe die toestelle mekaar sal herken. Daar is baie drywers vir sogenaamde USB-toestelle (vernoem na die substelsel). Linux-kernels) wat die emulasie van verskeie tipes USB-toestelle moontlik maak: netwerkadapters, klankkaarte, sleutelborde en muise, flash drives, kameras en seriële konsoles. Aangesien ons toestel netwerk sal wees, is die emulasie van 'n Ethernet-adapter die beste.

Daar is drie Ethernet-oor-USB-standaarde:

  • Afgeleë NDIS (RNDIS)'n Verouderde standaard van Microsoft, hoofsaaklik gebruik gedurende die Windows xp.
  • Ethernet-beheermodel (ECM). 'n Eenvoudige standaard wat Ethernet-rame binne USB-pakkies omsluit. Ideaal vir bedrade modems met 'n USB-verbinding, waar dit gerieflik is om rame sonder verwerking oor te dra, maar as gevolg van die eenvoud en beperkings van die USB-bus, is dit nie baie vinnig nie.
  • Ethernet-emulasiemodel (EEM). 'n Slimmer protokol wat USB-beperkings in ag neem en veelvuldige rame optimaal in een saamvoeg, en sodoende deurset verhoog.
  • Netwerkbeheermodel (NCM). Die nuutste protokol. Het die voordele van EEM en optimaliseer die buservaring verder.

Om enige van hierdie protokolle op ons bord te laat werk, sal soos altyd, 'n paar uitdagings verg. As gevolg van die feit dat Allwinner slegs belangstel in Android-dele van die kern, werk slegs normaalweg Android Gadget is die kode wat kommunikasie met adb, toesteluitvoer via MTP-protokol en flash drive-emulasie implementeer. Android-toestelle. Homself Android Die toestel ondersteun ook die RNDIS-protokol, maar dit is gebreek in die Allwinner-kern. As jy probeer om die kern met enige ander USB-toestel te kompileer, sal die toestel eenvoudig nie in die stelsel verskyn nie, maak nie saak wat jy doen nie.
Om die probleem op te los, is dit ideaal gesproke nodig om die plek te vind waar die USB-beheerder geïnisialiseer is in die kode wat deur die ontwikkelaars gewysig is. Android-android.c-toestel, maar daar is ook 'n tydelike oplossing om ten minste Ethernet-emulasie oor USB te laat werk:

--- 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;

Hierdie opdatering forseer USB-kliëntmodus, wat jou toelaat om gewone USB-toestelle van te gebruik. Linux.
Nou moet jy die kern herbou met hierdie pleister en die nodige gadget. Ek het EEM gekies omdat... Volgens toetsresultate het dit geblyk meer produktief te wees as NCM.
Die Armbiese span verskaf baie eenvoudige en gerieflike monteerstelsel vir alle ondersteunde borde in die verspreiding. Laai dit net af, sit ons pleister in userpatches/kernel/sun8i-default/otg.patch, wysig 'n bietjie compile.sh en kies die vereiste gadget:

Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router

Die kern sal saamgestel word in 'n deb-pakket, wat nie moeilik sal wees om via die bord te installeer nie dpkg.
Al wat oorbly is om die bord via USB te koppel en ons nuwe netwerkadapter te konfigureer om 'n adres via DHCP te ontvang. Om dit te doen moet jy iets soos die volgende byvoeg /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'

Dit is beter om die MAC-adres handmatig in te stel, want... dit sal ewekansig wees elke keer as die toestel herlaai word, wat ongerieflik en lastig is.
Ons koppel die MicroUSB-kabel aan die OTG-aansluiting, koppel krag vanaf die router (dit kan aan penne 2 en 3 van die kam voorsien word, en nie net aan die kragaansluiting nie).

Al wat oorbly is om die router te konfigureer. Dit is genoeg om die pakket met die EEM-bestuurder te installeer en ons nuwe USB-netwerktoestel by die brug van die plaaslike firewall-sone te voeg:

opkg install kmod-usb-net-cdc-eem

Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router
Om alle verkeer na die VPN-tonnel te stuur, moet jy óf 'n SNAT-reël by die bord se IP-adres aan die roeteerderkant voeg, óf die bord se adres as 'n poortadres via dnsmasq versprei. Laasgenoemde word gedoen deur die volgende reël by te voeg /etc/dnsmasq.conf:

dhcp-option = tag:lan, option:router, 192.168.1.100

waar 192.168.1.100 - IP-adres van jou bord. Moenie vergeet om die routeradres in die netwerkinstellings op die bord self in te voer nie!

'n Melamienspons is gebruik om die bordkontakte van die roeteerderkontakte te isoleer. Dit het iets soos volg uitgedraai:
Ons versnel OpenVPN vir $9.99* of integreer die Orange Pi One in 'n router

Gevolgtrekking

Die netwerk werk verbasend vinnig via USB: 100-120 Mbps, ek het minder verwag. OpenVPN Dit hanteer ongeveer 70 Mbps geënkripteerde verkeer, wat nie veel is nie, maar dis genoeg vir my behoeftes. Die router se deksel sluit nie styf nie, wat 'n klein gaping laat. Diegene wat estetika verkies, kan die Ethernet- en USB-gasheerverbindings van die bord lossoldeer, sodat die deksel heeltemal kan toemaak en steeds 'n bietjie spasie oorbly.
Dit is beter om nie aan sulke pornografie deel te neem en te koop nie Turris Omnia.

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster