Firefox-ը ցույց է տալիս 127.0.0.1:8000-ին, N2N եզրը աշխատում է, զուգընկերը պատասխանում է ping-ին իր ծածկույթի հասցեով, և դիտարկիչը դեռ հայտնում է, որ պրոքսին մերժել է կապը։ Այդ շղթայում ոչինչ հակասական չէ։ Ծածկույթը հոսթին տալիս է հասանելի հասցե մասնավոր ցանցում՝ այն չի ստեղծում գործընթաց, որը խոսում է պրոքսի արձանագրությամբ։ Դիտարկիչը երթուղի չի խնդրում դեպի զուգընկեր։ Այն տեղական լսող է խնդրում։

Այստեղ երկու կապ են շփոթում, և դրանք առանձին գծելը մաքրում է շփոթության մեծ մասը մեկ րոպեում։

Երկու կապ, ոչ թե մեկ

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

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

Որտեղ պետք է ապրի լսողը

127.0.0.1-ին կապված պրոքսին միտումնավոր տեղական է. այն կապեր է ընդունում միայն այն մեքենայից, որտեղ աշխատում է։ Դա ճիշտ լռելյայն է անհատական պրոքսիի համար և սխալ ձև ծածկույթով այն կիսելու համար։ Ծածկույթի զուգընկերներին սպասարկելու համար պետք է կամ bind հասցե ծածկույթի ինտերֆեյսի վրա, կամ փոխանցող բաղադրիչ, որը վերջացնում է loopback կապը և փոխանցում այն։ Ամեն դեպքում, բացահայտ քաղաքականությունը պետք է որոշի, թե ծածկույթի որ աղբյուրներն իրավունք ունեն օգտվել ծառայությունից, որովհետև բաց պրոքսին համօգտագործվող ցանցում հրավեր է։

Ստուգեք իրական bind-ը սոքեթների ցանկով, ոչ թե կոնֆիգուրացիայի ֆայլով։ Ծածկույթի բարձրանալուց առաջ գործարկված դեյմոնը կարող է դեռ կապված լինել հասցեին, որն այլևս գոյություն չունի։

localhost-ը զուգընկերը չէ

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

Supernode-ները օգնում են եզրերին գտնել միմյանց՝ նրանք պրոքսի ծառայություն չեն։ Supernode-ի հասցեն որպես պրոքսի վերջնակետ դիտելը տալիս է նույն մերժումը՝ շփոթության լրացուցիչ քայլով։

Երթուղին չի կարող handshake կատարել

Անգամ ճիշտ հասցեով, երթուղավորումը պրոքսավորում չէ։ HTTP պրոքսի կապը սկսվում է CONNECT հարցումով կամ բացարձակ ձևի հարցումային տողով, իսկ SOCKS պրոքսին սկսվում է տարբերակի և մեթոդի բանակցությամբ։ Երթուղիչը կամ ծածկույթը փոխանցում է բայթեր՝ այն չի վերլուծում այդ հաղորդագրությունները և ձեր փոխարեն չի բացում հաջորդ կապը։ Այդ պատճառով ping-ի և SSH-ի համար աշխատող երթուղին կարող է ձախողվել դիտարկիչի պրոքսիի համար. դիտարկիչին պետք է համագործակցող գործընթաց, ոչ միայն հասանելիություն։

Եթե նպատակը պարզապես զուգընկերոջ վրա ծառայությանը հասնելն է, հեռացրեք պրոքսի կարգավորումը և ուղղակիորեն օգտագործեք ծառայության ծածկույթի հասցեն։

Փորձարկեք սահմանները հերթականությամբ

Հաստատեք, որ ծածկույթի հասցեն պատասխանում է, ապա հաստատեք, որ կարգավորված պորտում կա լսող, և գրանցեք նրա bind հասցեն։ Կատարեք մեկ վերահսկվող հարցում և կարդացեք պրոքսիի մատյանը, որպեսզի իմանաք՝ ձախողումը լսողի՞ մոտ է, թե՞ հետագա ստացման։ Վերջում ստուգեք պրոքսի հոսթի ուղին և աղբյուրի DNS քաղաքականությունը։

N2N նախագիծը փաստագրում է եզրերը և supernode-ները որպես ծածկույթի բաղադրիչներ։ Այն եզրը հավելվածային պրոքսի չի դարձնում, և ոչ մի երթուղավորման կարգավորում չի ավելացնում արձանագրության մշակիչ, որը ոչ ոք չի գործարկել։

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