Tunnel orqali reyestr portiga ulanib, qo'l berib ko'rishishning boshlanishini kuzating va keyin JConsole baribir vaqt chegarasidan o'tib ketishini ko'ring. Bu birinchi TCP ulanishi boshqaruv ulanishi emas, qidiruv bo'lgani uchun sodir bo'ladi. RMI reyestri host va ikkinchi portni ko'rsatuvchi havola bilan javob beradi, so'ngra JConsole o'ziga aytilgan joyga boradi. Agar tunnel faqat serverning birinchi portiga yetsa yoki havola faqat serverning o'z mahalliy tarmog'ida mavjud manzilni ko'rsatsa, mijoz tashqi ko'rinishda muvaffaqiyatli bo'lgandan keyin tiqilib qoladi.

Afsona: bitta ochiq port — bitta ulanish

RMI orqali uzoqdagi JMX kamida ikkita chegara nuqtasini o'z ichiga oladi va ularni tizimning turli qismlari tanlaydi. Reyestr porti — mijozga kiritadigan port, u haqiqiy konnektorni tavsiflovchi stubni berish uchun mavjud. Birinchi muvaffaqiyatli soketni boshqaruv yo'li ochiqligining isboti deb qabul qilish ikki daqiqalik diagnostikani firewall chiptalariga to'la tushdan keyinga aylantiradi.

Serverning tinglovchilar ro'yxatiga emas, mijozning o'z xatosiga qarang. Qo'l berib ko'rishish boshlangandan keyingi xato birinchi emas, ikkinchi ulanish tugallanmaganini aytadi.

Reyestr nima qaytaradi

Stub konnektor yaratilgan paytda seriyalashtirilgan manzil va portni saqlaydi. Bir nechta interfeysga ega serverda stek mahalliy tarmoqdan yetib bo'ladigan, siznikidan esa yetib bo'lmaydigan manzilni tanlagan bo'lishi mumkin. Mijoz farqni bilmaydi; u shunchaki olgan qiymatni teradi va paket shu manzil uchun mavjud bo'lgan marshrutni kuzatadi, VPN mijozida bu ko'pincha umuman yo'q. Ikkinchi ulanishga urinish shu paytda bo'ladi.

Xatoning muhitlar orasida beqaror bo'lishining sababi ham shu: bir xil server JMX konfiguratsiyasida hech qanday o'zgarishsiz mahalliy tarmoqdagi foydalanuvchi uchun va tunneldagi foydalanuvchi uchun boshqacha tutishi mumkin.

Ikki port va ularni mahkamlaydigan ikki xususiyat

Reyestr porti com.sun.management.jmxremote.port parametridan keladi va konnektorni stek ajratadigan qiymatga qoldirmasdan com.sun.management.jmxremote.rmi.port bilan mahkamlash mumkin. Mijoz va server o'rtasida firewall yoki xavfsizlik guruhi bo'lsa, ikkalasini ham aniq belgilang, chunki oldindan aytib bo'lmaydigan ikkinchi portga oldindan ruxsat berib bo'lmaydi, uni qondirish uchun ochilgan keng diapazon esa bitta qiymatni mahkamlashdan yomonroq.

Keyin serverda ss -ltn yoki netstat -an bilan ikkala port ham tinglayotganini va qaysi manzillarda ekanini tasdiqlang. Loopback'ka bog'langan tinglovchi faqat mahalliy joylashtirish uchun to'g'ri va buning uchun foydasiz.

E'lon qilingan nom noto'g'ri bo'lganda

Uzoq havoladagi host nomini java.rmi.server.hostname belgilaydi. U stub nimani e'lon qilishiga ta'sir qiladi; o'z-o'zidan har bir tinglovchini bitta interfeysga bog'lash ko'rsatmasi emas, shuning uchun uni belgilash har doim kutilgan bitta portli xatti-harakatni bermaydi. Uni belgilang, jarayonni qayta ishga tushiring va keyin stub aslida nima saqlashini tekshiring. Mijoz hal qila oladigan va tunnel orqali yetib bora oladigan nom yoki manzilni tanlang va stub qayta qurilishi uchun jarayonni qayta ishga tushiring.

Konteyner tarmoqlari buni yanada yomonlashtiradi, chunki jarayon ko'radigan manzil konteynerdan tashqarida hech narsa marshrutlay olmaydigan ichki manzil bo'lishi mumkin. Platformaning tanlashiga yo'l qo'ymasdan, mo'ljallangan host nomini aniq e'lon qiling.

Agar VPN o'rniga SSH bilan tunnel qursangiz, xuddi shu muammo boshqa libosda ko'rinadi: faqat reyestr portini yo'naltirish ikkinchi chegara nuqtasini mijozingiz yetib bora olmaydigan manzilga qaratilgan holda qoldiradi. Ikkala portni ham yo'naltiring va e'lon qilingan nom mijoz mahalliy ravishda yetib bora oladigan narsaga hal bo'lishini ta'minlang.

Soddalashtirish uchun boshqaruv xavfsizligini o'chirmang

Autentifikatsiya va TLSni o'chiradigan parchalar oson topiladi va ulanishni keyinroq bekor qilishingiz kerak bo'ladigan tarzda ishga tushiradi. Uzoqdagi JMX o'zi tekshiradigan jarayon bilan bir xil imtiyozlarga ega boshqaruv interfeysi; uning kirish nazoratini saqlang va mijoz hisob ma'lumotlarini taqdim eta olmasa, aynan shuni tuzating.

Chegara nuqtalari to'g'ri bo'lgach, ko'rgan keyingi xatoni saqlab qo'ying. Ishonch ombori yoki hisob tomonidan rad etish yetib bo'lmaydigan konnektordan keyingi bosqich va tarmoq ishi tugaganini bildiradi.

O'xshash maqolalar