Kumonekta sa registry port sa pamamagitan ng tunnel, panoorin ang pagsisimula ng handshake, at pagkatapos ay panoorin ang JConsole na nag-time out pa rin. Nangyayari ito dahil ang unang TCP connection ay hindi ang management connection: ito ay isang lookup. Sumasagot ang RMI registry ng reference na nagpapangalan ng host at pangalawang port, at pagkatapos ay pumupunta ang JConsole kung saan sinabihan. Kung ang tunnel ay umaabot lamang sa unang port ng server, o ang reference ay nagpapangalan ng address na umiiral lamang sa sariling LAN ng server, ang client ay natigil pagkatapos ng tila tagumpay.

Ang mito: isang bukas na port ay isang koneksyon

Ang remote JMX sa RMI ay nagsasangkot ng hindi bababa sa dalawang endpoint, at pinipili ang mga ito ng magkaibang bahagi ng system. Ang registry port ang iyong itinatype sa client, at umiiral ito upang ibigay ang stub na naglalarawan ng tunay na connector. Ang ituring ang unang matagumpay na socket bilang patunay na bukas ang management path ang nagpapalit ng dalawang minutong diagnosis sa isang buong hapon ng firewall ticket.

Tingnan ang error ng client mismo sa halip na ang listahan ng listener ng server. Ang pagkabigo pagkatapos magsimula ang handshake ay nagsasabi sa iyo na ang pangalawang koneksyon, hindi ang una, ang hindi natapos.

Ano ang ibinabalik ng registry

Naglalaman ang stub ng address at port na na-serialize sa sandaling nilikha ang connector. Sa server na may ilang interface, maaaring pinili ng stack ang address na maabot mula sa lokal na network at hindi mula sa iyo. Hindi alam ng client ang pagkakaiba; i-dial lang nito ang halagang ibinigay, at sinusundan ng packet ang rutang umiiral para sa address na iyon, na sa isang VPN client ay madalas na wala. Iyon ang sandaling sinusubukan ang pangalawang koneksyon.

Ito rin ang dahilan kung bakit ang pagkabigo ay pabagu-bago sa iba't ibang kapaligiran: ang parehong server ay maaaring mag-asal nang iba para sa isang user sa LAN at isang user sa tunnel, nang walang anumang pagbabago sa JMX configuration.

Dalawang port at dalawang property na nagpapako sa kanila

Ang registry port ay nagmumula sa com.sun.management.jmxremote.port, at ang connector ay maaaring ipako ng com.sun.management.jmxremote.rmi.port sa halip na ipaubaya sa kung ano ang ilalaan ng stack. Itakda ang parehong malinaw kapag may firewall o security group sa pagitan ng client at server, dahil ang hindi mahulaan na pangalawang port ay hindi maaaring payagan nang maaga, at ang malawak na saklaw na bubuksan para tanggapin ito ay mas masama kaysa sa pagpako ng isang halaga.

Pagkatapos ay kumpirmahin gamit ang ss -ltn o netstat -an sa server na nakikinig ang parehong port at sa aling mga address. Ang listener na nakatali sa loopback ay tama para sa lokal na deployment lamang at walang gamit para dito.

Kapag mali ang inanunsyong pangalan

Ang hostname na lumilitaw sa remote reference ay itinakda ng java.rmi.server.hostname. Nakakaapekto ito sa inaanunsyo ng stub; sa sarili nito ito ay hindi utos na itali ang bawat listener sa isang interface, kaya hindi laging nagbubunga ng inaasahang pag-asal na isang port. Itakda ito, i-restart ang proseso, at pagkatapos ay i-verify kung ano talaga ang nilalaman ng stub. Pumili ng pangalan o address na maaaring i-resolve at maabot ng client sa tunnel, at i-restart ang proseso upang muling maitayo ang stub.

Mas pinapalala ito ng container networking, dahil ang address na nakikita ng proseso ay maaaring panloob na walang anumang labas ng container ang makakapag-route. I-publish nang malinaw ang nilalayong hostname sa halip na hayaang pumili ang platform.

Kung nagtu-tunnel ka gamit ang SSH sa halip na VPN, lumilitaw ang parehong problema sa ibang kasuotan: ang pag-forward lamang ng registry port ay iniiwan ang pangalawang endpoint na nakaturo sa address na hindi maabot ng iyong client. I-forward ang parehong port at gawing nagre-resolve ang inanunsyong pangalan sa isang bagay na maaabot ng client nang lokal.

Huwag patayin ang management security para gawing simple

Ang mga snippet na nagpapatay ng authentication at TLS ay madaling mahanap at pinagagana ang koneksyon sa paraang kailangan mong ibalik mamaya. Ang remote JMX ay isang management interface na may parehong pribilehiyo ng prosesong sinusuri nito; panatilihin ang mga access control nito, at kung hindi makapagbigay ng kredensyal ang client, ayusin iyon sa halip.

Kapag tama na ang mga endpoint, itago ang susunod na error na makikita mo. Ang pagtanggi mula sa truststore o account ay isang yugtong mas huli kaysa sa hindi maabot na connector at nangangahulugang tapos na ang gawain sa network.

Kaugnay na mga artikulo