Մեքենայի մի ծրագիր դուրս է գալիս VPN-ով, մյուսը՝ ոչ, և երկու օգտատերերն էլ երդվում են, որ ոչինչ չեն փոխել։ Տարբերությունը հաճախ հենց ծրագրի կայացրած կապման որոշումն է՝ սարքին կապված սոկետ, միացումից առաջ ընտրված աղբյուրի հասցե կամ սեփական երթուղային աղյուսակով անվանատարածք։ Յուրաքանչյուրը փոխում է, թե որ ուղին է գործում, և դրանցից ոչ մեկը չի երևում բրաուզերի ընդհանուր IP ստուգման մեջ։

Երեք տարբեր կապում, երեք տարբեր ազդեցություն

Սարքին կապելը և աղբյուրի հասցեին կապելը հարակից գործողություններ են՝ տարբեր հետևանքներով։ Սարքի կապումը կարող է ստիպել երթևեկությանը դուրս գալ մեկ ինտերֆեյսով և շրջանցել այդ սոկետի սովորական երթուղու որոնումը։ Աղբյուրի հասցեի կապումը դեռ անցնում է երթուղու ընտրությամբ, սակայն ընտրված աղբյուրը կարող է համապատասխանել քաղաքականության կանոնին և փաթեթն ուղարկել այլ տեղ։ Տարբերությունը ակադեմիական է թվում, քանի դեռ կանոնը երթուղավորում է ըստ աղբյուրի։ Այնուհետև այն որոշում է ամեն ինչ։

Ցանցային անվանատարածքը երրորդ դեպքն է։ Այն ունի իր ինտերֆեյսները և իր երթուղային աղյուսակը, ուստի դրա ներսում գտնվող ծրագիրը բոլորովին չի ազդվում հոսթի լռելյայնից։ Երեքն էլ որպես նույն բան դիտարկելը ստեղծում է ինքնավստահ բացատրություններ, որոնք չեն դիմանում առաջին փորձությանը։

Որոշեք, թե ծրագիրն իրականում ինչ է սահմանում

Նախքան երթուղիներին դիպչելը կարդացեք ծրագրի ցանցային կազմաձևը կամ նրա փաստաթղթավորված վարքը։ Եթե այն առաջարկում է ինտերֆեյսի ընտրություն, աղբյուրի հասցեի դաշտ կամ անվանատարածքի տարբերակ, հենց այդ կարգավորումն է առաջինը ստուգելու բանը։ Եթե ոչ, կապումը կարող է ներքին լինել և երևալ միայն հետագծման կամ սեփական ախտորոշման միջոցով։

Linux-ում SO_BINDTODEVICE-ի նման սոկետի ընտրանքներն ունեն փաստաթղթավորված շրջանակ և թույլտվության պահանջներ, և արտոնություն չունեցող գործընթացը կարող է ընդհանրապես չկարողանալ դրանք սահմանել։ Այդ սահմանափակումը օգտակար հուշում է. եթե ընտրանքը հնարավոր չէ կիրառել, ամենայն հավանականությամբ ծրագիրը տարբերության աղբյուրը չէ։

Քաղաքականության երթուղավորումը կարդում է աղբյուրը

Երբ քաղաքականության երթուղավորում է կարգավորված, կանոնը կարող է աղյուսակ ընտրել փաթեթի աղբյուրի հիման վրա։ Ուստի աղբյուրի հասցե կապող սոկետը կարող է հետևել կանոնի, որին լռելյայն ուղին երբեք չի դիպչում, նույնիսկ եթե ոչ մի ինտերֆեյս բացահայտ նշված չէ։

Կրկնեք որոնումը նույն հասցեների ընտանիքով, աղբյուրով և անվանատարածքով, որն օգտագործում է ծրագիրը։ Հոսթի անվանատարածքում shell-ից արված ընդհանուր երթուղու որոնումը պատասխանում է այլ հարցի, և հենց այդ անհամապատասխանությունն է աշխատող ուղին կոտրված թվալու ամենատարածված պատճառը։

Բաժանված թունել և օժանդակ գործընթացներ

Ծրագրի համար բաժանված թունելը ավելացնում է ևս մեկ շերտ։ Հաճախորդը կարող է համադրել ծրագրի փաթեթը կամ գործընթացը, իսկ սեփական սոկետ բացող օժանդակը առանձին սուբյեկտ է։ Գործարկիչը և նրա ֆոնային ծառայությունը կարող են տարբեր միացումներ ստեղծել նույն տեսանելի անվան տակ։

Ստուգեք՝ արդյոք բաժանված թունելի կանոնը ծածկում է այն գործընթացը, որն իրականում միանում է։ Եթե ծրագիրը կապվում է որոշակի ինտերֆեյսի, իսկ VPN հաճախորդը համադրում է ըստ փաթեթի, երկու որոշումները կարող են տարբերվել առանց որևէ մեկի սխալ լինելու։

Ստուգեք ծրագրի սեփական ուղին

Յուրաքանչյուր փոփոխությունից հետո ծրագրից նոր հարցում կատարեք։ Ցանկալի ելքը ցույց տվող բրաուզերը համարժեք ապացույց չէ այլ ինտերֆեյսի կապված այլ ծրագրի համար, և քեշավորված միացումները կարող են շարունակել օգտագործել հին ուղին կարգավորումը փոխելուց շատ ավելի ուշ։ Փակեք հին սեսիան նախքան նոր կանոնը գնահատելը։ Հակառակ դեպքում փորձությունը չափում է անցյալը։

Linux-ի սոկետի տեղեկատուն փաստաթղթավորում է SO_BINDTODEVICE-ը և դրա պահանջները։ Նախ կարդացեք ծրագրի սեփական կազմաձևը, կրկնեք որոնումը նույն համատեքստում և միայն այնուհետև որոշեք՝ արդյոք ուղին կամ կապումը պետք է փոխվի։

Առնչվող հոդվածներ