OpenVPN, թե WireGuard՝ որոշեք ինքնությամբ և տրանսպորտով
Բանալիները, մուտքի հոսքերը և միայն UDP-ով տրանսպորտը ձևավորում են ընտրությունը շատ ավելի վաղ, քան թողունակությունը։ Կատարեք չորս ստուգում և չափումը պահեք ազնիվ։
Այս երկու արձանագրությունների համեմատությունը օգտակար է միայն այն դեպքում, երբ համեմատում է այն, ինչ դուք իրականում կշահագործեք։ WireGuard-ը ճանաչում է գործընկերներին հանրային բանալիով և իր արձանագրությունը տեղափոխում UDP-ով, մինչդեռ OpenVPN առաջարկում է նույնականացման ավելի լայն շարք և կարող է աշխատել UDP-ով կամ TCP-ով, երբ սերվերը տրամադրում է երկուսը։ Այդ տարբերությունները ձևավորում են տեղաբաշխումը և պահեստային ուղին շատ ավելի վաղ, քան ձևավորում են թողունակությունը։ Կատարեք ստորև նշված չորս ստուգումները հերթականությամբ՝ առաջին երկուսը սովորաբար որոշում են ընտրությունը, իսկ վերջին երկուսը ասում են՝ որոշումը ճիշտ էր արդյոք։
Սկսեք ինքնությունից, ոչ թե գաղտնալսման ցանկից
WireGuard-ի գործընկերը պահում է մեկ գաղտնի բանալի և թվարկում է հանրային բանալիները, որոնց կարող է հասնել։ Մատակարարը կարող է դրա շուրջ հաշվի պորտալ փաթաթել, բայց արձանագրությունն ինքնին չունի օգտանունի և գաղտնաբառի փոխանակում, ուստի հաշվի կյանքի ցիկլը ապրում է նրանում, ինչը բաժանում է բանալիները։ OpenVPN-ը կարող է օգտագործել վկայագրեր, գոյություն ունեցող գրացուցակի դեմ պլագին կամ ստուգման սկրիպտ, և դրա համար է, որ ինքնության համակարգ ունեցող կազմակերպությունները հաճախ նախընտրում են այն։ Ոչ մի լուծում չի վերացնում այն հարցը, թե ինչպես է հեռացվում կորսված սարքը։
| Decision | OpenVPN | WireGuard |
|---|---|---|
| Identity | Certificates, plugins or scripts against an existing directory | One private key per peer, public keys listed for the peers it may reach |
| Transport | UDP or TCP profiles when the server offers both | UDP only in the native protocol |
| Routing and DNS | Server pushes routes and DNS options | AllowedIPs maps ranges to peers, and tooling installs the routes |
| Where it usually breaks | Profile mismatch, expired certificate, failing plugin | Blocked UDP, wrong AllowedIPs, key not installed |
Կարճ կարգավորումը նույնը չէ, ինչ պարզ տեղաբաշխումը։ Մեկ գաղտնի բանալի մի քանի մարդու տալը հետագա հեռացումը դարձնում է երկիմաստ, քանի որ դրա չեղարկումը հեռացնում է բոլորին միանգամից։ Ընտրությունից առաջ գրեք մարդու՝ բանալի կամ վկայագրի քարտեզագրությունը, և արձանագրության որոշումը զգալիորեն հեշտանում է։
Ապա տեսեք, թե ինչ է թույլ տալիս տրանսպորտը
WireGuard-ի արձանագրությունն օգտագործում է UDP։ OpenVPN ծառայությունները կարող են առաջարկել և UDP, և TCP պրոֆիլներ, և ցանցում, որը արգելափակում կամ վատացնում է UDP-ն, այդ երկրորդ տարբերակը գործնական պահեստային ուղի է, ոչ թե տեսական։ Սերվերը պետք է աջակցի ձեր ընտրած պրոֆիլին, և պորտի համարը փոխելը թունելը HTTPS չի դարձնում և չի համոզում հրային պատին թույլ տալ այն։
TCP-ն TCP-ի մեջ տեղափոխելը նույնպես փոխում է վարքը կորստի դեպքում, որովհետև երկու շերտերն էլ ինքնուրույն կրկնում են փորձը և վերադասավորում։ TCP պրոֆիլը, որն աշխատում է սահմանափակ ցանցում, կորստով ցանցում դեռևս կարող է վատ աշխատել, և դա պատճառ է երկու պրոֆիլներն էլ հասանելի պահելու՝ մեկը գերազանց հայտարարելու փոխարեն։
Ապա ստուգեք երթուղավորումը և անունների լուծումը
WireGuard-ի AllowedIPs-ը քարտեզագրում է հասցեների տիրույթները գործընկերներին և գործում է որպես երթուղավորման որոշում արձանագրության ներսում, և շրջակա գործիքները օգտագործում են այդ տիրույթները երթուղիներ տեղադրելիս։ OpenVPN-ը սերվերից մղում է երթուղիներ և DNS ընտրանքներ։ Երկու դեպքում էլ հաճախորդը կարող է բարձրանալ, մինչ նախատեսված քաղաքականությունը կիսով չափ է կիրառված։
ip route show
ip -6 route show
resolvectl status
wg show
Կարդացեք ելքը նախքան միացված ցուցիչին վստահելը։ ip route show թվարկում է, թե հաճախորդն ինչ է տեղադրել IPv4-ի համար, և IPv6 տարբերակը բռնում է թունել, որը տեղափոխում է միայն մեկ ընտանիք։ resolvectl status ցույց է տալիս, թե հաճախորդն իրականում որ լուծիչին կհարցնի, և wg show տպում է այն AllowedIPs-ը, որը WireGuard-ը համարում է իրենը։ Եթե լուծիչը դեռևս ցույց է տալիս տեղական ցանցին, մինչ երթուղիները պնդում են ամբողջական ծածկույթ, DNS-ը դուրս է գալիս թունելից։
Ապա չափեք այն առաջադրանքը, որ ձեզ համար կարևոր է
Սարքը, ցանցը և նպատակակետը պահեք անփոփոխ և գրանցեք օգտագործված հաճախորդներն ու վերջնակետերը։ Եթե երկու ծառայությունները ելնում են տարբեր քաղաքներից կամ աշխատում են տարբեր սարքաշարով, ասեք դա, որովհետև այդ դեպքում արդյունքը նկարագրում է այդ ծառայությունները, ոչ թե արձանագրությունները։
iperf3 -c 203.0.113.20 -t 30
mtr -rwzbc 50 203.0.113.20
Երկու հրամաններն էլ գործարկեք երկու անգամ՝ մեկ անգամ յուրաքանչյուր պրոֆիլազույգի համար, նույն ցանցում և նույն սարքում։ iperf3-ը տալիս է թողունակության թիվ, իսկ mtr-ը՝ ուղին և այն, թե որտեղ է հայտնվում կորուստը, ինչը մեկ ներբեռնման թիվ չի կարող ցույց տալ։ Ներբեռնման թիվը նաև բաց է թողնում այն, ինչ նկատում է զանգը՝ ավելացած ուշացում, ցնցում և թե որքան է տևում վերամիացումը։ Գրանցեք դրանք առանձին, որովհետև թողունակությամբ հաղթող արձանագրությունը դեռևս կարող է պարտվել այն առաջադրանքում, որը դուք իրականում գործարկում եք։
Կառավարվող միացման համար համատեղելիությունը, աջակցությունը և թարմացման ջանքը կարող են գերազանցել չափման փոքր տարբերությունը։ Անձնական ելքի համար օպերատորի գրանցումը և իրավազորությունը ավելի կարևոր են, քան արձանագրության պիտակը։ Երկու արձանագրություններն էլ կարող են լավ միացում տեղափոխել՝ ծառայությունն ու դրա կարգավորումն են որոշում, թե ինչ եք ստանում։
Գրեք պրոֆիլազույգը նախքան փորձարկելը
Չափելուց առաջ ընտրեք մեկ պրոֆիլ յուրաքանչյուր արձանագրության համար և գրեք, թե ինչ պետք է անի յուրաքանչյուրը՝ միայն գաղտնի ենթացանցերը, թե ամբողջ երթևեկությունը որոշակի ելքով։ Թեստը, որը համեմատում է բաժանված թունելի պրոֆիլը ամբողջական թունելի պրոֆիլի հետ, չափում է պրոֆիլները, ոչ թե արձանագրությունները։ Նույն գրառման մեջ դրեք հաճախորդի անունը, հաճախորդի տարբերակը և ելքի գտնվելու վայրը։
Ապա գործարկեք նույն առաջադրանքը երկուսի վրա, նույն ցանցում, նույն նստաշրջանում։ Եթե մեկը ընդհանրապես չի կարողանում միանալ, այդ ձախողումն է արդյունքը և այն պատճառի հետ միասին պատկանում է գրառմանը։ Պահեք գրառումը ծառայության փաստաթղթերի հետ, որպեսզի հաջորդը համեմատի նույն զույգը՝ սկսելու փոխարեն։