JConsole-ը միանում է գրանցամատյանին, հետո RMI-ն այն ուղարկում է այլ տեղ
Գրանցամատյանի պորտի պատասխանը միայն առաջին ցատկն է։ Հեռավոր JMX սերվերը կարող է հայտարարել այլ հոսթ և այլ պորտ, և թունելը պետք է հասնի երկուսին էլ։
Միացիր գրանցամատյանի պորտին թունելի միջով, դիտիր ձեռքսեղմման սկիզբը և հետո տես, թե ինչպես JConsole-ը միևնույն է ժամանակավերջի է ենթարկվում։ Դա տեղի է ունենում, որովհետև առաջին TCP միացումը կառավարման միացումը չէ. դա որոնում է։ RMI գրանցամատյանը պատասխանում է հղումով, որը նշում է հոսթ և երկրորդ պորտ, և JConsole-ը հետո գնում է այնտեղ, ուր իրեն ասել են։ Եթե թունելը հասնում է միայն սերվերի առաջին պորտին, կամ հղումը նշում է հասցե, որը գոյություն ունի միայն սերվերի սեփական լոկալ ցանցում, հաճախորդը կանգ է առնում թվացյալ հաջողությունից հետո։
Առասպել. մեկ բաց պորտը մեկ միացում է
RMI-ի վրայով հեռավոր JMX-ը ներառում է առնվազն երկու ծայրակետ, և դրանք ընտրում են համակարգի տարբեր մասերը։ Գրանցամատյանի պորտը այն է, ինչ մուտքագրում ես հաճախորդում, և այն գոյություն ունի, որպեսզի տրամադրի stub-ը, որը նկարագրում է իրական կոնեկտորը։ Առաջին հաջողված սոքեթը կառավարման ուղու բաց լինելու ապացույց համարելը երկու րոպեի ախտորոշումը վերածում է firewall-ի տոմսերով լի կեսօրի։
Նայիր հաճախորդի սեփական սխալին, ոչ թե սերվերի լսողների ցանկին։ Ձեռքսեղմման մեկնարկից հետո սխալը քեզ ասում է, որ երկրորդ միացումը, ոչ առաջինը, չի ավարտվել։
Ինչ է վերադարձնում գրանցամատյանը
Stub-ը պարունակում է հասցե և պորտ, սերիալացված այն պահին, երբ կոնեկտորը ստեղծվել է։ Մի քանի ինտերֆեյս ունեցող սերվերի վրա ստեկը կարող էր ընտրել հասցե, որը հասանելի է լոկալ ցանցից և անհասանելի քո ցանցից։ Հաճախորդը տարբերությունը չգիտի. այն պարզապես հավաքում է ստացված արժեքը, և փաթեթը հետևում է այն ուղուն, որը գոյություն ունի այդ հասցեի համար, իսկ VPN հաճախորդում հաճախ ընդհանրապես չկա։ Հենց այդ պահին է փորձվում երկրորդ միացումը։
Սա է նաև պատճառը, որ սխալը միջավայրերի միջև ընդհատումներով է ի հայտ գալիս. նույն սերվերը կարող է տարբեր կերպ վարվել լոկալ ցանցում գտնվող օգտատիրոջ և թունելում գտնվող օգտատիրոջ համար՝ առանց JMX կարգավորումների որևէ փոփոխության։
Երկու պորտ և երկու հատկություն, որոնք ամրացնում են դրանք
Գրանցամատյանի պորտը գալիս է com.sun.management.jmxremote.port-ից, իսկ կոնեկտորը կարելի է ամրացնել com.sun.management.jmxremote.rmi.port-ով՝ ստեկին թողնելու փոխարեն։ Երկուսն էլ բացահայտ սահմանիր, երբ հաճախորդի և սերվերի միջև firewall կամ անվտանգության խումբ կա, որովհետև անկանխատեսելի երկրորդ պորտին նախապես թույլտվություն տալ հնարավոր չէ, և դրա համար բացված լայն տիրույթը ավելի վատ է, քան մեկ ամրացված արժեքը։
Այնուհետև սերվերի վրա ss -ltn կամ netstat -an-ով հաստատիր, որ երկու պորտերն էլ լսում են և ինչ հասցեների վրա։ loopback-ին կապված լսողը ճիշտ է միայն լոկալ տեղակայման համար և անօգուտ է այս դեպքի համար։
Երբ հայտարարված անունը սխալ է
Հեռավոր հղումում երևացող հոսթի անունը սահմանում է java.rmi.server.hostname-ը։ Այն ազդում է այն բանի վրա, ինչ հայտարարում է stub-ը. ինքնին դա հրահանգ չէ յուրաքանչյուր լսողի մեկ ինտերֆեյսին կապելու մասին, դրա համար էլ դրա սահմանումը միշտ չէ, որ տալիս է սպասված մեկ պորտով վարքը։ Սահմանիր այն, վերագործարկիր գործընթացը և հետո ստուգիր, թե ինչ է իրականում պարունակում stub-ը։ Ընտրիր անուն կամ հասցե, որը հաճախորդը կարող է լուծել և հասնել թունելի միջով, և վերագործարկիր գործընթացը, որպեսզի stub-ը նորից կառուցվի։
Կոնտեյներների ցանցերը սա վատթարացնում են, որովհետև գործընթացի տեսած հասցեն կարող է ներքին լինել և կոնտեյներից դուրս ոչինչ չի կարող երթուղավորել դրան։ Հրապարակիր նախատեսված հոսթի անունը բացահայտորեն՝ փոխարենը պլատֆորմին թողնելու ընտրությունը։
Եթե թունելը կառուցում ես SSH-ով, ոչ թե VPN-ով, նույն խնդիրը հայտնվում է այլ հանդերձանքով. միայն գրանցամատյանի պորտը փոխանցելը երկրորդ ծայրակետը թողնում է հասցեի վրա, որին քո հաճախորդը չի կարող հասնել։ Փոխանցիր երկու պորտերն էլ և հասիր նրան, որ հայտարարված անունը լուծվի մի բանի, որին հաճախորդը հասնում է լոկալ։
Մի անջատիր կառավարման անվտանգությունը պարզեցնելու համար
Նույնականացումն ու TLS-ը անջատող հատվածները հեշտ է գտնել, և դրանք միացումը աշխատեցնում են այնպես, որ ավելի ուշ ստիպված կլինես չեղարկել։ Հեռավոր JMX-ը կառավարման ինտերֆեյս է նույն արտոնություններով, ինչ այն գործընթացը, որը ստուգում է. պահպանիր դրա մուտքի վերահսկումը, և եթե հաճախորդը չի կարող ներկայացնել հավատարմագրեր, ուղղիր հենց դա։
Երբ ծայրակետերը ճիշտ են, պահպանիր հաջորդ սխալը, որ տեսնես։ Վստահության պահոցի կամ հաշվի մերժումը ավելի ուշ փուլ է, քան անհասանելի կոնեկտորը, և նշանակում է, որ ցանցային աշխատանքն ավարտված է։