Ինչու է ձեր iPhone հավելվածը ցույց տալիս մի IP, իսկ սերվերը գրանցում է մյուսը
Ինտերֆեյսի հասցեն, սոքետի վերջնակետը և սերվերի գրանցած աղբյուրը պատասխանում են տարբեր հարցերի։ VPN-ը համատեքստ է ավելացնում, այն դրանք մեկ թիվ չի դարձնում։
Գալիս են աջակցության տոմսեր, որտեղ ասվում է, որ հավելվածը ցույց է տալիս մի հասցե, մինչդեռ սերվերը գրանցել է մեկ այլը, և հետո հարցնում են, թե որն է ստում։ Ոչ մեկը՝ դրանք երկու տարբեր բաների երկու դիտարկումներ են։ Ինտերֆեյսին կապված հասցեն, սոքետին կապված հասցեն և հեռավոր ծառայության տեսած աղբյուրի հասցեն պատասխանում են երեք առանձին հարցերի։ VPN-ը հեռախոսին ավելացնում է ցանցային համատեքստ և չի միավորում այդ երեքը մեկ սարքային թվի մեջ։ Կարդացեք տոմսի դաշտերի անունները նախքան հասցեները կարդալը։
Ինչ է սովորաբար նկարագրում տոմսը
Պատկերացրեք հեռախոս Wi-Fi-ում՝ բարձրացված թունելով։ Wi-Fi ինտերֆեյսը պահում է LAN հասցե, թունելի ինտերֆեյսը պահում է հատկացված ներքին հասցե, և թունելով դուրս եկող հարցումը հասնում է հանրային ծառայության այն աղբյուրից, որը ճանապարհին վերապրում է ցանկացած թարգմանություն։ Ներքին հասցեն տպող հավելվածը և թարգմանված աղբյուրը գրանցող սերվերը երկուսն էլ ճշգրիտ հաղորդում են, և այդ երկու արժեքները երբեք չեն համընկնի։
Երեք դիտարկումները տարբերվում են նրանով, ինչ կարող են ապացուցել, ոչ միայն նրանով, ինչ նկարագրում են։
| Observation | What it describes | What it cannot prove |
|---|---|---|
| An address on a local interface | One configured attachment: Wi-Fi, cellular or a tunnel | The source a remote site receives |
| A socket's local endpoint | The binding used by that one connection | The address after translation further along |
| The peer address at a service | What arrived at that observation point | Any other interface on the phone |
Այդ աղյուսակը պահեք այն կոդի կողքին, որը լրացնում է այս արժեքները տոմսի մեջ, որովհետև այստեղ շփոթության մեծ մասը սյունակների շփոթություն է, ոչ թե ցանցի խափանում։
Ինչին կարող է պատասխանել սոքետի կանչը և ինչին՝ ոչ
API մակարդակում getsockname հաղորդում է տեղական վերջնակետը, որը ներկայումս կապված է կոնկրետ սոքետին։ Միացված սոքետի համար դա այն աղբյուրն է, որը միջուկն ընտրել է այդ միացման համար, ինչն արդեն ավելի կոնկրետ է, քան ինտերֆեյսների ցանկացած ցանկ։ Սա հանրային հասցեի որոնում չէ, և չկապված սոքետի վրա այն կանչելը ձեզ գրեթե ոչինչ չի ասում։ Ինչ էլ որ վերադարձնի, այն կարող է ավելի ուշ վերագրվել ճանապարհին, ուստի միայն ծառայության սեփական դիտարկումն է հեղինակավոր այն հարցում, թե ինչ է ստացել ծառայությունը։
Apple հարթակներում ինտերֆեյսների կողմն ունի առանձին մակերես՝ թունելի կարգավորումները թվարկում են թունելի ինտերֆեյսին հատկացված հասցեները։ Դրանք կարդալը ձեզ ասում է, թե ինչպես է կարգավորվել թունելը, և չի ասում, թե որ ուղով է գնացել տվյալ հարցումը, որովհետև երթուղավորումն ու յուրաքանչյուր հավելվածի կանոնները դա որոշում են յուրաքանչյուր միացման համար։
Բաժանված թունելը տեսանելի է դարձնում բացը։ Մի հարցում կարող է դուրս գալ թունելով, մինչդեռ հաջորդը, ուղղված այլ նպատակակետի կամ հասցեների այլ ընտանիքի, չի գնում, ուստի նույն հավելվածից վայրկյանների տարբերությամբ ստացված երկու արդյունք կարող են ազնիվ և տարբեր լինել։
Ընտրեք այն դիտարկումը, որը համապատասխանում է հարցին
Ընտրեք գիտակցաբար՝ ամեն ինչ չափելու փոխարեն։ Այն, ինչ տեսնում է backend-ը, գրանցեք աղբյուրը backend-ում, և որտեղ առջևում կանգնած է հակադարձ պրոքսի, կլիենտի հասցեն կարդացեք այն փոխանցման վերնագրից, որը ձեր տեղակայումն իրոք սահմանում է, և ոչ թե այն ամենից, ինչ ուղարկել է կլիենտը։
Թե արդյոք թունելը կարգավորված է, իմացեք ինտերֆեյսից։ Թե արդյոք այս հավելվածի երթևեկությունը օգտագործել է այն, իմացեք՝ այդ հավելվածից երթևեկություն ուղարկելով ձեր վերահսկած նպատակակետին և համեմատելով աղբյուրը երկու ծայրերում։
Յուրաքանչյուր հավելվածի կանոնները արժանի են իրենց նախադասությանը։ Զննարկիչի արդյունքը ապացույց է այդ զննարկիչի մասին, և կառավարվող հավելվածային թունելը կարող է նույն հեռախոսի երկու հավելվածներին նույն պահին դնել տարբեր ուղիների վրա։ Ծածկույթը ստուգել նշանակում է երթևեկություն ուղարկել տվյալ հավելվածից, տվյալ հասցեների ընտանիքում։
Ինտերֆեյսների անունները դետեկտոր չեն
Ինտերֆեյսի անունը որպես VPN ստուգում նույնպես մի օգտագործեք։ Անունները հանրային պայմանագիր չեն, և հեռախոսը կարող է ունենալ մի քանի կապակցում, մինչդեռ դրանցից միայն մեկն է կրում ձեր հարցումը։
Դաշտը անվանեք այն դիտարկմամբ, որը պահում է։ local_interface_address, socket_local_endpoint և service_observed_source անշնորհք են և միանշանակ, և միանշանակությունը հենց այն է, ինչ ուզում եք, երբ արժեքը մեկ շաբաթ անց հայտնվում է աջակցության տոմսում։ device IP անունով մեկ սյունակը կհավաքի բոլոր երեքը և հետո կվստահեն դրան, կարծես այն մեկն է։
Ինքնությունը հեռու պահեք հասցեի սյունակից
Ընդհանուր VPN ելքը օգտվողի ինքնություն չէ, և մասնավոր հասցեն մուտքի հավատարմագիր չէ։ Երկուսն էլ նկարագրում են ուղի, ոչ թե մարդ, և դրանցից որևէ մեկը որպես նույնականացում դիտարկելը երթուղային պատահարից դարձնում է լիազորման որոշում։
Երբ ինչ-որ մեկը հարցնում է, թե հեռախոսն ինչ հասցե ունի, օգտակար պատասխանը հարցն է այն մասին, թե որ միացումը և որ դիտորդը։ getsockname-ի սահմանումն արժե մեջբերել միջին դեպքի համար, որովհետև այն լուծում է սոքետի հարցը՝ չձևացնելով, թե լուծում է մյուս երկուսը։
Ապա գրեք, թե երեքից որն է ձեր արտադրանքն իրոք պետք ցուցադրի, և ջնջեք մյուս երկուսը ինտերֆեյսից։